iptables練習
一、COMMAND
1、列出所有鏈的規則:iptables -L ,顯示某條鏈的規則就是iptables -L INPUT
詳細信息:iptables -vnL
2、清楚所有鏈的規則 :iptables -F
3、設置默認規則策略:iptables -P INPUT DROP,iptables -P OUTPUT DROP , iptables -P FORWARD DROP(拒絕所有數據包)
在虛擬機上改成:iptables -P INPUT ACCEPT ,遠程連接才可用。
4、添加規則,在INPUT鏈上添加規則,協議是tcp,目標端口號是21:iptables -A INPUT -p tcp –dport 21
5、插入規則,在INPUT鏈上插入規則,協議是tcp,目標端口號是23,規則號是1:iptables -I INPUT 1 -p tcp –dport 23
6、替換規則,在INPUT鏈上替換規則號1的iptables規則,將目標端口號更改為24:iptables -R INPUT 1 -p tcp –dport 24
7、刪除規則,在INPUT 鏈上刪除規則號是1的iptables規則
二、match:基本規則匹配器
1、指定協議:iptables -A INPUT -p tcp -j ACCEPT
2、指定ICMP類型:iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
3、指定ip地址:iptables -A INPUT -s 192.168.1.109 -j ACCEPT
4、指定接口:iptables -A FORWARD -o eno16777736 -j ACCEPT
5、指定端口號:iptables -A INPUT -p tcp –sport 80 -j ACCEPT
三、match:擴展規則匹配器
1、limit :限制速率。iptables -I INPUT -d 192.168.1.109 -p icmp –icmp-type 8 -m limit –limit 3/minute –limit-burst 5 -j ACCEPT
2、iprange :一整段連續的ip都可以:iptables -A INPUT -d 172.16.100.67 -p tcp –dport 80 -m iprange –src-range 172.16.100.5-172.16.100.10 -j DROP
3、time :指定某個時間范圍內可以。
4、multiport :多個端口
5、string :對報文中的字符串做匹配檢查,一些敏感詞匯。
6、state:根據”連接追蹤機制“去檢查連接的狀態。
~]# iptables -A INPUT -d 172.16.100.67 -p tcp -m multiport --dports 22,80 -m state --state NEW,ESTABLISHED -j ACCEPT ~]# iptables -A OUTPUT -s 172.16.100.67 -p tcp -m multiport --sports 22,80 -m state --state ESTABLISHED -j ACCEPT
練習:INPUT 和 OUTPUT 默認策略為 DROP;
iptables -P INPUT DROP iptables -P OUTPUT DROP
1、限制本地主機的 web 服務器在周一不允許訪問;新請求的速率不能超過 100 個每秒;web 服務器包含了 admin 字符串的頁面不允許訪問;web 服務器僅允許響應報文離開本機;
周一不允許訪問
#iptables -A INPUT -p tcp --dport 80 -m time ! --weekdays Mon -j ACCEPT #iptables -A OUTPUT -p tcp --dport 80 -m state --state ESTABLISHED -j ACCEPT
新請求速率不能超過100個每秒
# iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/s
web包含admin字符串的頁面不允許訪問,源端口:dport
# iptables -A INPUT -p tcp --dport 80 -m string --algo bm --string 'admin' -j REJECT
web服務器僅允許響應報文離開主機,放行端口(目標端口):sport
# iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
2、在工作時間,即周一到周五的 8:30-18:00,開放本機的 ftp 服務給 172.16.0.0 網絡中的主機訪問;數據下載請求的次數每分鐘不得超過 5 個;
# iptables -A INPUT -p tcp --dport 21 -s 172.16.0.0 -m time ! --weekdays 6,7 -m time --timestart 8:30 --timestop 18:00 -m connlimit --connlimit-above 5 -j ACCEPT
3、開放本機的 ssh 服務給 172.16.x.1-172.16.x.100 中的主機,x 為你的學號,新請求建立的速率一分鐘不得超過 2 個;僅允許響應報文通過其服務端口離開本機;
# iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 172.16.0.1-172.16.0.100 -m limit --limit 2/m # iptables -A OUTPUT -p tcp --sport 22 -m iprange --dst-range 172.16.0.1-172.16.0.100 -m state --state ESTABLISHED -j ACCEPT
4、拒絕 TCP 標志位全部為 1 及全部為 0 的報文訪問本機;
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
5、允許本機 ping 別的主機;但不開放別的主機 ping 本機;
# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT # iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/64323