iptables:使用!反转IP,协议或接口测试!
时间:2020-01-09 10:41:05 来源:igfitidea点击:
在编写基于iptables的shell脚本时,如何反转协议或ip地址测试?
iptables命令自带!操作员。
这些规则中的大多数可以以!开头。!表示匹配取反。
匹配项可以是:
- 源或目的IP地址
- 接口名称
- 协议名称等
例子
以下内容将匹配除UDP之外的所有协议:
iptables -A INPUT -p ! UDP
以下匹配允许IP地址范围匹配,并且可以使用!取反。
标志:
iptables -A INPUT -d 192.168.0.0/24 -j DROP iptables -A OUTPUT -d ! 192.54.1.2 -J ACCEPT # we trust 192.54.1.5 so skip it iptables -A OUTPUT -s ! 192.54.1.5 -J DROP
感叹号会将匹配项反转,因此,如果IP是给定范围192.168.1.0/24中的IP以外的任何其他内容,则将导致匹配项:
iptables -A INPUT -s ! 192.168.1.0/24 -p tcp --dport 80 -J DROP
您可以从字符串测试中跳过自己的IP:
iptables -A FORWARD -i eth0 -p tcp ! -s 192.168.1.2 --sport 80 -m string --string '|7F|ELF' -j DROP
接受除连接到Internet的eth1之外的所有接口上的端口22流量:
iptables -A INPUT -i !eth1 -p tcp --dport 22 -j ACCEPT