day 51

1.iptables防火墙概述介绍

概念: 防火墙将不安全的网络流量信息进行隔离
实现: 硬件(思科 华为) 软件(iptable firewalld)
准备:
1) 网络知识 OSI (2(mac) 3(IP) 4(port))
2) 名词概念 什么是容器 iptables防护墙服务组成
防火墙服务(容器) --- 表概念
防火墙服务表(容器) --- 链概念
防火墙链(容器) --- 规则
配置防火墙: 开启防护墙服务 --- 指定表 --- 指定链 --- 指定规则
表的概念 4张表 filter(过滤) NAT(映射/转发) mangle(流量数据包进行标记)
raw(取消标记)
链的概念 5个链 INPUT FORWARD OUTPUT PREROUTING POSTROUTING OUTPUT INPUT FORWARD OUTPUT PREROUTING POSTROUTING
PREROUTING OUTPUT

vlan 虚拟局域网
sw 01 - 10 vlan10 hostA data数据包 --> 01 sw vlan10 --> data数据包+tag:10
sw 11 - 21 vlan20

2. iptables防火墙工作原理

基础工作原理:
1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2. 如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则。
3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
4. 防火墙的默认规则是所有规则执行完才执行的。
扩展工作原理:

3. iptables表和链关系详细说明:

filter表: 真正起到防火墙功能
INPUT链: 流量在进入时进行访问控制
OUTPUT链: 流量在出去是进行访问控制
forward链: 流量是否可以经过防火墙

nat表: 实现访问映射/流量转发 实现内网访问外网/外网访问映射到指定内网主机

4.iptables防火墙filter表 3个链中规则配置方法

准备工作:
01. 安装部署iptables服务
yum install -y iptables-services
02. 查看一些默认iptables配置策略
iptables -L -n
iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    
[root@firewall-server ~]# iptables -nL -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  860 1379K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    4   381 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 754 packets, 108K bytes)
 pkts bytes target     prot opt in     out     source               destination 

iptable初始化操作: 清除操作

iptables -F
iptables -X
iptables -Z

练习01:

阻止任意用户访问22端口  -- INPUT
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
阻止任意用户访问22端口  -- OUTPUT
iptables -t filter -A OUTPUT -p tcp --sport 22 -j DROP

练习02:
允许10.0.0.1主机访问22端口,其他网段,其他主机不能访问  -- INPUT
iptables -A INPUT -s 10.0.0.1 -d 10.0.0.81 -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j DROP  
允许10.0.0.1主机访问22端口,其他网段,其他主机不能访问  -- OUTPUT
iptables -A OUTPUT -d 10.0.0.1 -s 10.0.0.81 -p tcp --sport 22 -j ACCEPT 
iptables -A OUTPUT -d 10.0.0.0/24 -p tcp --sport 22 -j DROP

练习03:
允许所有通过eth0流量访问22端口, 拒绝通过eth1接口访问22端口  --INPUT链
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
            iptables -A INPUT -i eth1 -p tcp --dport 22 -j DROP
            允许所有通过eth0流量访问22端口, 拒绝通过eth1接口访问22端口  --OUTPUT链
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT
            iptables -A OUTPUT -o eth1 -p tcp --sport 22 -j DROP

练习04:
除了10.0.0.1这个地址可以访问22端口,其余所有地址都不能通过eth0端口访问22端口  ---INPUT
方法一: 做取反操作  --- 默认策略是允许
iptables -A INPUT ! -s 10.0.0.1 -i eth0 -p tcp --dport 22 -j DROP

方法二: 修改默认策略
iptables -A INPUT    -s 10.0.0.1 -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -t 表 -P 链 动作

5. iptables命令常用参数说明

查询参数
--list    -L [chain [rulenum]]     List the rules in a chain or all chains
                                   列出链上规则配置信息(默认查看filter表上信息)
--table   -t table                 table to manipulate (default: `filter')  
                                   指定操作处理哪张表  默认处理 filter表  
--verbose -v                       verbose mode 
                                   显示详细规则配置信息                                      
--numeric -n                       numeric output of addresses and ports
                                   查询信息中 地址和端口以数字形式显示

清除参数:
--flush   -F [chain]               Delete all rules in  chain or all chains 
                                   清除链上所有规则信息    
--zero    -Z [chain [rulenum]]     Zero counters in chain or all chains
                                   清除计数器信息(排查) 
                                   pkts:   匹配了几个包                 5个包 每个包1500字节
                                   bytes:  匹配数据包总共尺寸/访问流量  5*1500字节
          -X [chain]               Delete a user-defined chain
                                   删除用户自定义链 ???

添加规则参数:
--append   -A chain                Append to chain
                                   指定规则添加到哪个链上
           -I ???                              

--protocol -p proto                protocol: by number or name, eg. `tcp'
                                   指定规则匹配的协议: tcp udp icmp ???
                                   
--dport 端口                       规则匹配的目标端口信息    
--sport 端口                       规则匹配的源端口信息 

--source    -s address[/mask][...]    source specification
                                      指定规则匹配的源地址信息
--destination -d address[/mask][...]  destination specification 
                                      指定规则匹配的目标地址信息
                                      
--in-interface -i input name[+]       network interface name ([+] for wildcard)
                                      根据进入流量,在网卡进行规则配置
--out-interface -o output name[+]     network interface name ([+] for wildcard)
                                      根据流出流量,在网卡进行规则配置
                                  

--jump     -j target               target for rule (may load target extension)
                                   指定处理策略动作: ACCEPT *  DROP *  REJECT 

修改默认策略:
--policy  -P chain target          Change policy on chain to target
                                   修改指定链上默认策略
                                   
策略处理方法:
ACCEPT     允许接收
DROP       丢弃     *  更安全
REJECT     拒绝      

你可能感兴趣的:(day 51)