Linux防火牆--iptables(下)

編寫防火牆規則

  • 基本語法、控制類型

    • 語法:
      • iptables [-t 表名] 選項 鏈名 條件 -j 控制類型 //選項、鏈名、控制類型大寫
      • iptables -t filter -I INPUT -p icmp -j DROP
      • 控制類型
        • ACCEPT:允許通過
        • DROP:不迴應任何
        • REJECT:拒絕迴應ICMP請求
        • LOG:記錄日誌信息,然後傳給下一條規則鏈繼續匹配,不對數據包進行控制。
      • 注意事項
        • 1、不指定表名時,默認指filter表
        • 2.、指定鏈名時,默認指表內的所有鏈
        • 3、除非設置鏈的默認策略,否則必須指定匹配條件
        • 4、選項名,鏈名,控制類型使用大寫字母,其餘均爲小寫
  • 添加、查看、刪除規則
    • 添加新的規則
      • -A:在鏈的末尾追加一條規則
      • -I:在鏈的開頭或指定序列號插入一條規則
      • iptables -I INPUT 2 -p icmp -j ACCEPT //添加到表中某一個位置 2--序列號 使用--line-numbers查看序列號
      • -p 協議
        • 協議類型:TCP,UDP,ICMP
    • 查看規則
      • iptables -L -n --line-numbers -v
        • -L 列出所有的規則條目
        • -n 以數字形式顯示地址,端口等信息
        • -n -L 可合寫爲 -nL //必須爲-nL
        • -v 以更詳細的方式顯示規則信息
        • --line-numbers 查看規則時,顯示規則的序列號
    • 刪除規則
      • -D 刪除鏈內的指定序列號的一條規則
        • iptables -D INPUT 8
        • iptables -t filter -D INPUT 1
      • -F 清空所有規則
        • iptables -F //默認filter表
  • 設置默認策略

    • 默認策略只有ACCEPT或者DROP
    • -P爲指定的鏈設置默認策略(規則)
    • iptables -t filter -P INPUT DROP
    • iptables -P INPUT DROP
  • 規則的匹配條件

    • 通用匹配:
      • 可直接使用,不依賴於其他條件或拓展
      • 包括網絡協議、IP地址、網絡接口等條件
      • 常見的匹配條件:
        • 協議匹配:-P 協議名
        • ! 取反
        • iptables -I INPUT ! -p icmp -j ACCEPT //除了icmp 之外都是允許通過
        • 地址匹配:-s 源地址、-d 目的地址
          • iptables -A INPUT -s 192.168.8.167 -p icmp -j ACCEPT //只允許這個地址通過
          • iptables -I INPUT -s 192.168.8.0/24 -p icmp -j ACCEPT //允許這個網段通過
        • 接口匹配:-i 入站網卡、-o出站網卡
          • iptables -I INPUT -i etho -p icmp -j DROP //以eth0進站的都不允許通過
    • 隱含匹配:
      • 要求以特定的協議匹配作爲前提
      • 包括端口、TCP標記、ICMP類型等條件
      • 常用匹配
        • 端口匹配 --sport 源端口 --dport 目的端口
          • iptables -I INPUT -s 192.168.8.167 -p tcp --dport 22 -j ACCEPT //允許此地址連接22號端口
          • iptables -I INPUT -p tcp --dport 80 -j ACCEPT //允許TCP 80端口通過
        • TCP標記匹配 --tcp-flags 檢查範圍,被設置的標記
        • ICMP類型匹配 --icmp-type ICMP類型
          • 0-回顯 3-端口不可達 8-icmp請求
          • iptables -I INPUT -p icmp --icmp-type 8 -j DROP
    • 顯示匹配:
      • 要求以 -m 拓展模塊 的形式明確指出類型
      • 包括多端口、MAC地址、IP地址、數據包狀態等條件
      • 常用匹配
        • 多端口匹配 -m multiport -sport/-dport
          • iptables -I INPUT -m multiport -p tcp --dports 80,443 -j REJECT //拒絕80,443端口
        • ip 範圍 -m IPrange --src-range
        • MAC範圍: -m mac --mac source
          • iptables -I INPUT -m mac --mac-source 6C-2B-59-76-F1-03 -p icmp -j DROP //不允許此MAC地址通過
        • 狀態匹配: -m statr --state 連接狀態
          • iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章