iptables規則的用法

1、基本語法:
iptables [-t 表名] 管理選項 [鏈名] [匹配條件] [-j 控制類型]

其中,表名,鏈名用來指定iptables命令所操作的表和鏈,未指定表名時將默認使用filter表;
管理選項表示iptables規則的操作方式,如插入,增加,刪除,查看等;
匹配條件用來指定要處理的數據包的特徵,不符合指定條件的數據包將不會處理;
控制類型指的是數據包的處理方式,如允許、拒絕、丟棄等。

在iptables中最常見的幾種控制類型:
■ACCEPT:允許數據包通過
■DROP:直接丟棄數據包,不給出任何迴應信息
■REJECT:拒絕數據包通過,必要時返回一個相應信息。
■LOG:在/var/log/messages文件中記錄日誌信息,然後將數據包傳遞給下一條規則。
實例:
1、1在fileter表的input鏈中恥辱一條規則拒絕發給本機的使用ICMP協議的數據包(效果:其他主機無法ping通本機)
iptables -t filter -I INPUT -p icmp -j REJECT
2.2.添加,查看,刪除規則等基本操作:
-A:追加規則
-I:插入規則
實例:
在filter表的末尾添加一條規則:
iptable -t filter -A INPUT -p tcp -j ACCEPT
-I可以指定添加位置,不指定既爲第一條:
iptables -t filter -I INPUT 2 -p udp -j ACCEPT
-L -N(顯示序號) 查看規則列表;
刪除指定規則:
iptables -D -INPUT 3 刪除filter表中input鏈的第三條規則
iptables -F INPUT 清空filter表中input鏈中的規則
iptables -F 清空filter表中的所有規則
iptables -t nat -F 清空nat表中的所有規則
2.3.關於默認策略:
默認策略既當找不到匹配的規則時默認應用該策略。
實例:
將filter鏈中的forward鏈默認設置爲丟棄,output默認設置爲允許
iptables -t filter -p FORWARD DROP
iptables -t filter -p OUTPUT ACCEPT

2.4關於規則的匹配條件:
1、-p 協議匹配:tcp,udp,icmp,all
2、地址匹配:-s 源地址 -d 目標地址
實例:
拒絕轉發源地址爲192.168.1.11的數據,允許轉發源地址位於192.168.7.0/24網段的數據。
iptables -A FORWARD -s 192.168.1.11 -j REJECT
iptables -A FORWARD -s 192.168.7.0/24 -j ACCEPT
封鎖某些地址的頻繁掃描與登錄窮舉
iptables -A INPUT -s 192.168.0.0/24 -j DROP
iptables -A FORWARD -s 192.168.7.0/24 -j DROP
3、網絡接口匹配:用於檢測數據包從防火牆的哪一個接口進入或發出
-i 接口名 (入站網卡)
-o 接口名 (出站網卡)
實例:丟棄從外網接口(eth1)訪問防火牆本機且源地址爲私有地址的數據包。
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
4、隱含匹配:這種匹配方式要求以指定的協議匹配作爲前提條件,相當於子條件因此無法獨立使用。
4.1端口匹配–sport(源端口)或–dport(目標端口),針對tcp、udp協議
實例:允許爲網段192.168.4.0/24轉發DNS查詢數據包。
iptables -A FORWARD -s 192.168.4.0/24 -p udp –dport 53 -j CCEPT
iptables -A FORWARD -s 192.168.4.0/24 -p udp –sport 53 -j CCEPT
開放被動端口24500–24600
iptables -A INPUT -p tcp –dport 24500;24600 -j ACCEPT
4.2。ICMP類型匹配:“–icmp-type icmp類型”用來檢查ICMP數據包的類型。ICMP類型使用字符串或數字代碼表示,如“Echo-Request”請求報文(代碼爲8),“Echo-Replay”應答報文(代碼爲0),“,Destination-Unreachable”不可達(代碼爲3)。
實例:禁止其他主機ping本機,允許本機ping其他主機
iptables -A INPUT -p icmp –icmp-type 8 -j DROP
iptables -A INPUT -p icmp –icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp –icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
5、顯示匹配:這種匹配要求額外的模塊支持,必須手動以“-m 模塊名稱”的形式調用
5.1.多端口匹配:
編寫iptables規則時使用”-m multiport –dports 端口列表“,”-m multiport –sports 端口列表“的形式,來檢查數據包的源端口,目標端口,多個端口之間以逗號進行分割。
例:
iptables -A INPUT -p tcp -m multiport –dport 23,80,110,143 -j ACCEPT
5.2.IP範圍匹配:
使用”-m iprange –src-range ip範圍””-m iprange –dst-range IP 範圍“的形式來檢查數據包的源地址,目標地址,其中ip範圍採用”起始地址-結束地址“的形式表示
例:禁止轉發源ip位於192.168.4.21與4.28之間的tcp數據包:
iptables -A FORWARD -p tcp -m iprange –src-range 192.168.4.21-192.168.4.28 -j ACCEPT
5.3.MAC地址匹配
使用”-m mac –mac-source MAC地址”的形式,來檢查數據包的源mac地址,一般用於內部網絡。
iptables -A INPUT -m mac –mac-source (mac) -j DROP
5.4.狀態匹配
使用“-m state –state 鏈接狀態”的形式,常見的鏈接狀態包括NEW(與任何鏈接無關的)ESTABUSHED(享用請求或者已建立鏈接的)和RELATED(與已有鏈接有相關性的)
例:
禁止轉發與正常tcp鏈接無關的非–syn請求數據包:
iptables -A FORWARD -m state –state NEW -p tcp ! –syn -j DROP

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