一、常规匹配
1、协议匹配
-p协议名
例:若要丢弃通过icmp协议访问防火墙本机的数据包、允许转发经过防火墙的除icmp协议的数据包
iptables -I INPUT -p icmp -j DROP
iptables -A FORWARD -P ! icmp -j ACCEPT
2、地址匹配
例:拒绝转发源地址为192.168.1.11的数据、允许转发源地址位于192.168.7.0/24网段的数据
iptables -I FORWAED -s 192.168.1.11 -j REJECT
iptables -I FORWAED -s 192.168.7.0/24 -j ACCEPT
3、网络接口匹配
例: 丢弃从外网接口(eth1)访问防火墙本机且源地址为私有地址的数据包
iptables -I INPUT -i eth1 -s 10.0.0.0/8 -j DROP
iptables -I INPUT -i eth1 -s 172.16.0.0/12 -j DROP
iptables -I INPUT -i eth1 -s 192.168.0.0/16 -j DROP
二、隐含匹配
1、端口匹配
例:允许为网段192.168.4.0/24转发DNS查询数据包
iptables -A FORWAED -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWAED -d 192.168.4.0/24 -p udp --sport 53 -j ACCEPT
例:构建Vsftpd服务器时,要开放20、21端口,以及用于被动模式的端口范围24500~24600
iptabels -I INPUT -p tcp --dport 20:21 -j ACCEPT
iptabels -I INPUT -p tcp --dport 24500:24600 -j ACCEPT
2、ICMP类型匹配
代码8为请求  0为回显  3为目标不可达
例:禁止其他主机ping本机,但是允许本机ping其他主机
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
三、显示匹配
1、多端口匹配
使用“-m multiport --dports 端口列表”、“-m multiport --sports 端口列表”的形式,来检查数据包的源端口和目标端口,端口直接以逗号分隔。
例:允许本机开放25、80、110、143端口
iptables -I INPUT -p tcp -m multiport --dports 25,80,110,143 -j ACCEPT
2、ip范围匹配
使用“-m iprange --src-range IP范围”、“-m iprange --dst-range IP范围”的形式,用来检查数据包的源地址和目标地址。
例:禁止转发源地址位于192.168.4.21与192.168.4.28之间的tcp数据包
iptables -A FORWAED -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j DROP