Linux之iptables(三)iptables的匹配条件

 

如上图,iptables命令风格,第一部分指定表名,第二部分指定对规则的增删改查的动作。

第三部分指定规则的匹配条件,第四部分指定数据包匹配该规则时执行的动作。

其中:命令的第一部分第二部分没啥好说的了,现在总结第三部分,匹配条件。

一:-s 匹配报文的原地址

#示例如下
1.匹配多个IP
iptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROP

2.匹配一个网段
iptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPT

3.匹配该网段以外的
iptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT

二:-d匹配报文目标地址

#示例如下
iptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT

三:-p匹配报文协议类型

#示例如下
iptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPT
iptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT

四:-i匹配报文流入的网卡

该匹条件进匹配报文流入的网卡,所以在output链和postrouting链中不能使用该选项。
#示例如下
iptables -t filter -I INPUT -p icmp -i eth4 -j DROP
iptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP

五:-o匹配报文流出的网卡

匹配报文将要从哪个网络接口流出本机,匹配条件只是用于匹配报文流出的网卡,所以在input链与prerouting中不能使用这个选项
#示例如下
iptables -t filter -I OUTPUT -p icmp -o eth4 -j DROP
iptables -t filter -I OUTPUT -p icmp ! -o eth4 -j DROP

六:拓展匹配条件

tcp常用拓展模块

-p tcp -m tcp --sport用于匹配tcp协议报文的源端口,可以使用冒号指定一个连续的端口范围

-p tcp -m tcp --dport用于匹配tcp协议报文的目标端口,可以使用冒号指定连续端口范围

其中-m tcp可以省略,

#示例如下
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECT
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp ! --sport 22 -j ACCEPT

 


版权声明:本文为qq1319713925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。