一、COMMAND


1、列出所有链的规则:iptables -L ,显示某条链的规则就是iptables -L INPUT

09rUIvk3Sl6


详细信息:iptables -vnL

09rUIubX4zY


2、清楚所有链的规则 :iptables -F


3、设置默认规则策略:iptables -P INPUT DROP,iptables -P OUTPUT DROP , iptables -P FORWARD DROP(拒绝所有数据包)

09rUIszhh0S


在虚拟机上改成:iptables -P INPUT ACCEPT ,远程连接才可用。


4、添加规则,在INPUT链上添加规则,协议是tcp,目标端口号是21:iptables -A INPUT -p tcp –dport 21

09rUIRQ7YMS


5、插入规则,在INPUT链上插入规则,协议是tcp,目标端口号是23,规则号是1:iptables -I INPUT 1 -p tcp –dport 23

09rUIP1ShPs


6、替换规则,在INPUT链上替换规则号1的iptables规则,将目标端口号更改为24:iptables -R INPUT 1 -p tcp –dport 24

09rUIQ7F2FU


7、删除规则,在INPUT 链上删除规则号是1的iptables规则


二、match:基本规则匹配器


1、指定协议:iptables -A INPUT -p tcp -j ACCEPT

09rUISs7W5Y


2、指定ICMP类型:iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT

09rUISs7W5Y


3、指定ip地址:iptables -A INPUT -s 192.168.1.109 -j ACCEPT

09rUIVFMyOW


4、指定接口:iptables -A FORWARD -o eno16777736 -j ACCEPT

09rUIWuNYmG


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

09rUIVen0D2


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

09rUIhBEIfg


3、time :指定某个时间范围内可以。

09rUIYgLmHg


4、multiport :多个端口

09rUIZlgq92


5、string :对报文中的字符串做匹配检查,一些敏感词汇。

09rUIb47DwO


6、state:根据”连接追踪机制“去检查连接的状态。

09rUIcWnqtc


练习:INPUT 和 OUTPUT 默认策略为 DROP;

09rUIdmJcm0


1、限制本地主机的 web 服务器在周一不允许访问;新请求的速率不能超过 100 个每秒;web 服务器包含了 admin 字符串的页面不允许访问;web 服务器仅允许响应报文离开本机;


周一不允许访问

09rUIfKnKGu


新请求速率不能超过100个每秒

09rUIrwS2yG


web包含admin字符串的页面不允许访问,源端口:dport

09rUIieVy6K


web服务器仅允许响应报文离开主机,放行端口(目标端口):sport

09rUIjOSgXQ


2、在工作时间,即周一到周五的 8:30-18:00,开放本机的 ftp 服务给 172.16.0.0 网络中的主机访问;数据下载请求的次数每分钟不得超过 5 个;

09rUIqFMATI


3、开放本机的 ssh 服务给 172.16.x.1-172.16.x.100 中的主机,x 为你的学号,新请求建立的速率一分钟不得超过 2 个;仅允许响应报文通过其服务端口离开本机;

09rUIoqA97w


4、拒绝 TCP 标志位全部为 1 及全部为 0 的报文访问本机;

09rUIkorUQ4


5、允许本机 ping 别的主机;但不开放别的主机 ping 本机;

09rUImByEym


文章来源:马哥教育

官方微信:马哥linux运维