概念和原理请参考上一篇文章“”。
本文讲解如果管理iptables中的链和策略。
下面的代码格式中,下划线表示是一个占位符,需要根据实际情况输入参数,不带下划线的表示是固定的命令,方括号内表示是可选参数。
管理chain
清空chain中所有的策略:
iptables [-t table] -F [chain]
删除指定chain中的所有策略,如果不指定清空哪个chain,则清空table中的所有chain,当不指定是哪个tables时,默认为filter。
新增自定义chain:
iptables [-t table] -N chain
当不指定是哪个tables时,默认把新chain添加到filter table
删除自定义chain:
iptables [-t table] -X [chain]
删除自定义的chain,注意内置chain是不能删除的,删除的chain必须是一个空的chain,也就是说如果chain中有策略的话是不能删除的。当不指定删除哪个chain,会删除所有空的chain。
重命名chain:
iptables [-t table] -E old-chain new-chain
给自定义chain改名,改名时chain内的策略和chain间的跳转不会发生变化。
设置默认policy:
ipables [-t table] -P target
在filter table中,target可以是DROP或者ACCEPT,其它table默认都是ACCEPT,貌似无法修改(存疑)。
管理策略:
策略(rule-specification)由匹配规则(match)和目标(target)组成,关于表、链和策略请看教程(一)。
追加策略:
iptables [-t table] -A chain rule-specification
在chain的末尾追加策略,当不指定是哪个tables时,默认为filter。
插入策略:
iptables [-t table] -I chain [rule-num] rule-specification
在chain指定位置插入策略,原来位于该位置的策略自动下移,如果不指定策略的位置(rule-num),则默认在首部插入。位置序号可以用在后面的“”章节中的命令查看。
删除策略:
iptables [-t table] -D rule-specificationiptables [-t table] -D rule-num
可以有两种形式,第一种匹配策略,如果该策略存在则删除,否则报错,第二种匹配位置。位置序号可以用在后面的“”章节中的命令查看。
修改策略:
iptables [-t table] -R chain rule-num rule-specification
修改/覆盖一条指定位置的策略。位置序号可以用在后面的“”章节中的命令查看。
显示策略
iptables [-t table] -S [chain]
这条命令可以显示指定的chain中当前生效的策略,如果不指定chain,那么显示table中所有的chain,如果不指定table,默认为filter table。
显示所有iptables中生效的策略可以使用下面的命令:
iptables-save
这条命令显示包括所有table中的策略
还有一种不直接显示策略配置命令,而是按照表格形式显示当前生效策略的方法:
iptables [-t table] -L [-v] [-n] [--line-number ]
默认情况下显示协议、源目的地址、目标等信息,使用-v参数可以显示额外的进出接口、包和流量统计信息。
使用-n参数表示用数字表示IP和端口号,默认会尝试查找dns
使用--line-number参数显示策略行号,可以在插入、修改策略时用此参数查看rule-num
原文地址:
果觉得本文对您有帮助,请扫描后面的二维码给予捐赠,您的支持是作者继续写出更好文章的动力!