1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| # 当默认链中的规则非常多时,不方便我们管理。所以要自定义规则链 # 自定义链并不能直接使用,而是需要被默认链引用才能够使用
* 创建自定义链 [root@bogon ~]# iptables -t filter -N IN_WEB # "-t filter"表示操作的表为filter表,与之前的示例相同,省略-t选项时,缺省操作的就是filter表。"-N IN_WEB"表示创建一个自定义链,自定义链的名称为"IN_WEB" [root@bogon ~]# iptables --line -nvxL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 2 386 26796 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 3 4087 278278 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 44 packets, 4228 bytes) num pkts bytes target prot opt in out source destination
Chain IN_WEB (0 references) num pkts bytes target prot opt in out source destination # 查看filter表中的链,这条自定义链的引用计数为0 (0 references),也就是说,这条自定义链还没有被任何默认链所引用,所以,即使IN_WEB中配置了规则,也不会生效
* 创建自定义链规则 [root@bogon ~]# iptables -I IN_WEB -s 10.5.5.249 -j REJECT [root@bogon ~]# iptables --line -nvxL IN_WEB Chain IN_WEB (0 references) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 10.5.5.249 0.0.0.0/0 reject-with icmp-port-unreachable # 自定义链中已经有了一条规则,但是目前,这条规则无法匹配到任何报文,因为我们并没有在任何默认链中引用它。
* 引用自定义链 [root@bogon ~]# iptables -I INPUT -p tcp --dport 80 -j IN_WEB # 在INPUT链中添加了一条规则,访问本机80端口的tcp报文将会被这条规则匹配到,而上述规则中的"-j IN_WEB"表示:访问80端口的tcp报文将由自定义链"IN_WEB"中的规则进行处理。此处,我们将"动作"替换为了"自定义链",当"-j"对应的值为一个自定义链时,就表示被当前规则匹配到的报文将交由对应的自定义链处理。当IN_WEB自定义链被INPUT链引用以后,可以发现,IN_WEB链的引用计数已经变为1,表示这条自定义链已经被引用了1次,自定义链还可以引用其他的自定义链 [root@bogon ~]# iptables --line -nvxL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 IN_WEB tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 2 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 663 46156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 4 5196 351595 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 76 packets, 7396 bytes) num pkts bytes target prot opt in out source destination
Chain IN_WEB (1 references) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 10.5.5.249 0.0.0.0/0 reject-with icmp-port-unreachable
|