1. iptable [-t 表] 命令選項 [連名] 匹配條件 [-j 動作]
2.常用命令選項如下:
-A 【append】 在指定的連的結尾添加規則--line-number 查看規則連是,顯示列表號
-Z 清空計數器值二.舉例
# iptable -t filter -F【清空filter表中所有規則】# iptable -A FORWARD -p udp -j ACCEPT 【允許轉發udp的所有數據包】
2. 地址匹配:用于檢查數據包的地址是否符合規則,包括源地址和目的地址?!?s 源地址, -d 目的地址】
# iptable -A FORWARD -s 10.0.0.0/8 -j DROP 【拒絕轉發來自10.0.0.0/8 網段的數據包】# iptable -A FORWARD -d 80.0.0.0/8 -j DROP 【 拒絕轉發目的是80.0.0.0/8 網段的數據包】
3.端口匹配:用于檢查數據包的tcp或udp端口,需要和 “-p 協議類型” 一起使用【-sport 源端口,-dport 目的端口】
# iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT 【允許轉發來自10.0.0.0/8網段,目的端口是80的數據包】# iptables -I FORWARD -s 10.0.0.0/8 -p tcp --sport 21 -j ACCEPT【允許轉發來自10.0.0.0/8網段,源端口是21的數據包】
4.接口匹配:用于檢查數據包從防火墻那個接口進入或出去,來判斷是否允許。
# iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT# iptables -A INPUT -i eth0 -s 80.0.0.0/8 -j DORP 【拒絕從eth0進入,來自80.0.0.0/8的數據包】
5.SNAT轉換:一般linux充當網關服務器時使用
SNAT只能用在nat表的POSTROUTING連,用于對源地址進行轉換。要結合 --to 使用。# iptables -t nat -A POSTROUTING -i eth0 -s 80.0.0.0/8 -p tcp --dport 25 -j SNAT --to 202.106.1.1
6.DNAT轉換:只能用在nat表中的PREROUTING連,用于對目的地址或端口進行轉換。
# iptables -t nat -A PREROUTING -i eth1 -d 202.106.1.1 -p tcp --dport 80 -j DNAT --to 10.0.0.10【將從eth1 進入,目的地址是202.106.1.1,使用tcp 協議,目的端口是80的數據包的目的地址轉為10.0.0.1】
7.MASQUERADE:偽裝,是SNAT的特例。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j MASQUERADE【拒絕轉發來自該MAC地址的數據包】
2.按多端口或連續端口匹配
20: 表示20以后的所有端口# iptables -A INPUT -p tcp -sport :80 -j ACCEPT
3.還可以按數據包速率和狀態匹配
-m limit --limit 匹配速率 如: -m limit --limit 50/s -j ACCEPT新聞熱點
疑難解答