清空防火牆操作:
# 清除所有規則
iptables -F
# 清楚自定義規則
iptables -X
# 清楚計數器
iptables -Z
一些例子:
(1)允許指定IP地址訪問22端口:
iptables -I INPUT -s 192.168.0.0/24 -d 10.0.0.11 -p tcp --dport 22 -j ACCEPT
(2)全局封22端口:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
(3)指定位置插入規則鏈:
iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT
(4)修改默認跳轉規則:
iptables -P/--policy INPUT DROP
(5)查看每個規則鏈的序號:
iptables -L -n --line-numbers
(6)刪除指定位置規則鏈:
iptables -D INPUT 2
(7)指定IP外的所有地址都拒絕:
iptables -I INPUT ! -s 10.0.0.0/24 -p -tcp --dport 22 -j DROP
(8)禁ping:
iptables -I INPUT -p icmp --icmp-type 8/any -j DROP
(9)從eth0網卡流入流出的數據都ACCEPT:
iptables -A INPUT -d 192.168.56.136 -i eth0 -j ACCEPT
iptables -A OUTPUT -s 192.168.56.136 -o eth0 -j ACCEPT
擴展匹配實例:
(1)封端口範圍:
iptables -I INPUT -m multiport --dports 22,80,8080 -j DROP
(2)指定IP地址範圍訪問目的IP的某些端口:
iptables -I INPUT -d 192.168.56.136 -p tcp -m multiport --dports 22,23,80 -m iprange --src-range 192.168.56.1-192.168.56.100 -j ACCEPT
iptables -I OUTPUT -s 192.168.56.136 -p tcp -m multiport --sports 22,23,80 -m iprange --dst-range 192.168.56.1-192.168.56.100 -j ACCEPT
(3)當用戶訪問本機某個網頁時,網頁內容包含某些字符串的時候拒絕訪問
需要用到string字符串匹配:
--algo {bm|kmp}算法
bm=Boyer-Moore
kmp=knuth-pratt-Morris
[!] --string 'Pattern' 注意需要用單引號,而非雙引號
iptables -I INPUT -m string --algo bm --string 'movie' -j REJECT
(4)服務器在14:00-16:00不允許訪問
iptables -I INPUT -d 192.168.56.136 -p tcp --dport 80 -m time --timestart 14:00 --timestop 16:00 -j REJECT
NAT例子
(1)把訪問外網IP及端口的請求映射到內網某個服務的IP端口上
iptables -t nat -A PREROUTING -d 10.10.10.25 -p tcp --dport 80 -j DNAT --to-destination 192.168.56.136:8080