iptables防火牆

防火牆
        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不能直接通信


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章