当默认链中的规则非常多时,不方便我们管理,此时可以考虑用自定义链。
比如将所有针对80端口的web入站规则都写入到IN_WEB自定义链中,
将所有针对sshd的出站规则都写入到OUT_SSH自定义链中。
创建自定义链
# 在filter表中创建IN_WEB自定义链
iptables -t filter -N IN_WEB
引用自定义链
# 在INPUT链中引用刚才创建的自定义链
iptables -t filter -I INPUT -p tcp --dport 80 -j IN_WEB
引用后,IN_WEB链的引用计数已经变为1,表示这条自定义链已经被引用了1次,自定义链还可以引用其他的自定义链。
”动作”在iptables中被称为”target”,这样描述并不准确,因为target为目标之意,报文被规则匹配到以后,target能是一个”动作”,target也能是一个”自定义链”,当target为一个动作时,表示报文按照指定的动作处理,当target为自定义链时,表示报文由自定义链中的规则处理。
查看自定义链中的规则
# 查看filter表自定义链IN_WEB中的规则
iptables -t filter --line -nvL IN_WEB
重命名自定义链
# 将IN_WEB自定义链重命名为WEB
iptables -E IN_WEB WEB
删除自定义链
需要满足两个条件:
1.自定义链没有被引用
2.自定义链中没有任何规则
# 删除引用计数为0并且不包含任何规则的WEB链
iptables -X WEB