防火墙
        iptables
        firewalld
过滤数据包
默认策略:拒绝所有数据包从入口方向进入
内核态
        netfilter
用户态
        iptables
        firewalld
centos7:
        yum -y install iptables iptables-services iptables-devel
清空防火墙规则
        iptables -F
清空规则计数
        iptables -Z
删除自定义链:不能有关联  不能有规则
        iptables  -X   自定义链名
语法
        iptables -t 表名  动作  链名  匹配条件  -j  目标动作
        (默认不指定表名的情况下是filter表)
       四表五链
       表名:
                raw         数据包跟踪
                mangle    标记数据包
                nat          网络地址转换
                filter        数据包过滤
                读表顺序:按上面的顺序从上到下
        链名:
                PREROUTING      路由之前
                INPUT                 数据包流入
                FORWARD          数据包经过
                OUTPUT              数据包流出
                POSTROUTING    路由之后
           raw:
                PREROUTING      路由之前
                INPUT                 数据包流出
           mangle:
                PREROUTING      路由之前
                INPUT                 数据包流入
                FORWARD          数据包经过
                OUTPUT              数据包流出
                POSTROUTING    路由之后
           filter:
                INPUT                 数据包流入
                FORWARD          数据包经过
                OUTPUT              数据包流出
 实例:
            -A     追加规则 (在最后加入)
            iptables -t filter -A INPUT  -p icmp  -j REJECT
            -L                列出规则
            -n                以数字的形式显示协议和主机
            --line            显示规则行号        --line-numbers的另外一种写法
            -t                 可以跟不同的表
            -v    verbose   重点是数据包的统计(计数)信息
            #iptables  -nL  --line-numbers -t nat -v
            #iptables  -nL  INPUT  1 -v   
            -R     修改规则
            #iptables  -R  INPUT 1 -p tcp -j REJECT    //链后面必须跟上数字,指定修改第几个规则
            -D     删除规则
            #iptables  -D  INPUT  1      //链后面必须跟上数字,指定删除第几个规则
            -I       插入规则
            # iptables -I INPUT -p tcp --dport 23  -j DROP        //--dport指定目标端口
            # iptables -I INPUT  2 -p tcp --dport 23  -j DROP
  创建自定义链
        iptables   -N    链名  (链名自定义)
        #iptables   -N   wing
  修改自定义链名称  
        iptables  -E    旧链名   新链名
        iptables  -E    wing   WING
  添加规则到自定义链
        iptables  -A   链名  动作
        #iptables  -A  WING -p icmp -j DROP     //DROP同REJECT
  关联自定义链  
        iptables -A  自带链名 -j  自定义链名
        #iptables  -A  INPUT  -j  WING
   删除自定义链:不能有关联和规则          //如果有关联和规则,先清空
  
   企业环境:

  我们内网                    互联网
高安全区域    防火墙   低安全区域

进来的数据包默认全部拒绝,只放行你想接收的包

修改默认策略:只能写DROP或者ACCEPT
     iptables  -P  链名  策略
     #iptables  -P  INPUT  DROP
 查看规则:显示形式与-L不同
      #iptables  -S  INPUT
    
      #iptables  -A INPUT -p  tcp  --dport 80  -j ACCEPT
      #iptables  -A INPUT -p  tcp  --sport 80  -j ACCEPT
      #iptables  -A INPUT -p  tcp  --dport 22  -j ACCEPT
 
 
匹配条件
协议:
    -p  tcp
    -p  udp
    -p  icmp
端口:必须和协议一起写
       --dport     目标端口
       --sport      源端口
       #iptables  -A  INPUT  -p tcp --dport  80 -j DROP
      
       端口范围匹配:
        --sport     源端口1:源端口2
        --dport     目标端口1:目标端口2
      
       多端口匹配:
        -m  multiport    --dports  23,80,3306
        -m  multiport    --sports   23,80,3306
        #iptables  -A  INPUT  -p  tcp   -m  multiport --dports 23,80,3306  -j  DROP
  
IP  
         -s  源ip1,源ip2,...
         -d  目标ip
         ip地址范围:
            -m  iprange   --src-range  192.168.1.8-192.168.1.29
            -m  iprange   --dst-range  192.168.1.8-192.168.1.29  
            //范围自己指定
           #iptables  -A  INPUT -p tcp --dport 80 -m iprange  --src-range  192.168.1.8-192.168.1.29 -j DROP
          
 mac
            #iptables  -A  INPUT  -p tcp  -m  mac   --mac-source  00:0c:29:22:eb:ff -j DROP
  测试forward       
            1.8------------->1.2--路由--3.2-------->3.8
            echo 1 > /proc/sys/net/ipv4/ip_forward    //开启路由转发
      目标动作:
            DROP
            REJECT
            ACCEPT
            LOG
           
           网关10.0.1.3                                         10.0.2.2
            10.0.1.2 ---->10.0.1.3/10.0.2.2------->10.0.2.3
           SNAT
           修改源ip地址
           #iptables  -t  nat  -A POSTROUTING -s 192.168.1.0/24  -j  SNAT --to 202.106.18.8
           DNAT
           修改目标ip地址
           #iptables  -t nat -A  PREROUTING  -d  202.168.18.8 -j  DNAT to 192.168.1.8
           注:
           因为外网ip可能是随机分配,所有无法固定外网ip,此时我们应该修改源ip为:
           # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
           注意:私有IP和共有IP不能直接通信