編寫防火牆規則
-
基本語法、控制類型
- 語法:
- 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 查看規則時,顯示規則的序列號
- iptables -L -n --line-numbers -v
- 刪除規則
- -D 刪除鏈內的指定序列號的一條規則
- iptables -D INPUT 8
- iptables -t filter -D INPUT 1
- -F 清空所有規則
- iptables -F //默認filter表
- -D 刪除鏈內的指定序列號的一條規則
- 添加新的規則
-
設置默認策略
- 默認策略只有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
- 端口匹配 --sport 源端口 --dport 目的端口
- 顯示匹配:
- 要求以 -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
- 多端口匹配 -m multiport -sport/-dport
- 通用匹配: