之前是基本的匹配,现在可以看看扩展匹配,扩展匹配是实现更加高级的功能。
只要是.so这类的文件,都是扩展模块。
[root@localhost ~]# rpm -ql iptables | grep ".so"
/usr/lib64/libip4tc.so.0
/usr/lib64/libip4tc.so.0.1.0
/usr/lib64/libip6tc.so.0
/usr/lib64/libip6tc.so.0.1.0
/usr/lib64/libiptc.so.0
/usr/lib64/libiptc.so.0.0.0
/usr/lib64/libxtables.so.10
multiport模块
- multiport 模块可以添加多个不连续的端口:-m multiport <--sports|--dports|--ports> 端口1,端口2,端口n(之前--deport只能添加一个端口)
示例∶10.0.0.10 访问本机 20、21、80、443允许通过;
扩展匹配是实现更加高级的功能,扩展模块,这些模块在在IP tables中非常的多,之前--deport只能添加一个端口,或者说是一个连续的端口,mutiport可以添加不连续的端口。
示例: 允许10.0.0.10访问本机的20-22、21、80、443
[root@localhost ~]# iptables -t filter -I INPUT -s 10.0.0.10 -p tcp -m multiport --dport 20:22,80,443 -j ACCEPT
-p不属于扩展模块的动作,所以不能放里面。
[root@localhost ~]# iptables -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 10.0.0.10 0.0.0.0/0 multiport dports 20:22,80,443
iprange模块
iprange 模块可以指定"一段连续的IP地址范围";用于匹配报文的源地址或者目标地址, iprange扩展
模块中有两个扩展匹配条件可以使用。
- --src-range from【-to】∶原地址范围
- --dst-range from【-to】∶目标地址范围
示例∶10.0.0.5 - 10.0.0.10地址段ping本机,则丢弃
[root@localhost ~]# iptables -t filter -I INPUT -p icmp -m iprange --src-range "10.0.0.5-10.0.0.10" -j drop
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 source IP range 10.0.0.5-10.0.0.10
ACCEPT tcp -- 10.0.0.1 0.0.0.0/0 multiport dports 20:22,80,443