简介
- 当iptables规则特别多时,我们需要具备模块化思想,需要将不同目的iptables规则进行归类。
- 将同一类型的iptables规则作为一个模块(web类,mysql类....),使其更加具有条理性,清爽整洁。
- 自定义链是除了iptables自带的5个链外,由我们自己定义的新链。
- 在自定义链中定义的规则不会生效,他需要被内置链引用才可以生效。
- 删除自定义链,需要将自定义链中的规则先清除,后再删除自定义链。
iptables添加自定义链的方法
- -N:new, 自定义一条新的规则链 。
- -E:重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除 。
- -X:delete,删除自定义的空的规则链 。
- -P:Policy,设置默认策略;对filter表中的链而言,其默认策略有:ACCEPT:接受, DROP:丢弃。
范例一:在filter表上添加一条新的链。
iptables -t filter -N chain_name
范例二:重命名这条链。
iptables -t filter -E chain_NAME CHAIN_NAME
范例三:删除这条链。
iptables -t filter -X CHAIN_NAME
iptables使用自定义链的方法
步骤一:创建自定义链。
iptables -t filter -N WEB_CHAIN
步骤二:查看创建好的自定义链WEB_CHAIN
。
iptables -vnL
.......
.......
Chain WEB_CHAIN (0 references)
pkts bytes target prot opt in out source destination
步骤三:在自定义链中添加规则。
iptables -A WEB_CHAIN -s 192.168.10.10 -p tcp --dport 80 -j REJECT
iptables -A WEB_CHAIN -s 192.168.10.10 -p tcp --dport 8080 -j REJECT
步骤四:查看自定义链(WEB_CHAIN)中定义的规则。
iptables -vnL WEB_CHAIN
Chain WEB_CHAIN (0 references)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- * * 192.168.10.10 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 192.168.10.10 0.0.0.0/0 tcp dpt:8080 reject-with icmp-port-unreachable
步骤五:将自定义好的链关联至内置链上。
iptables -AINPUT -j WEB_CHAIN
步骤六:关联后查看。
iptables -vnL
Chain INPUT (policy ACCEPT 31 packets, 2572 bytes)
pkts bytes target prot opt in out source destination
31 2572 WEB_CHAIN all -- * * 0.0.0.0/0 0.0.0.0/0
......
......
Chain WEB_CHAIN (1 references)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- * * 192.168.10.10 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable
0 0 REJECT tcp -- * * 192.168.10.10 0.0.0.0/0 tcp dpt:8080 reject-with icmp-port-unreachable