内容提要
本文介绍了iptables的基本操作,包括查询、添加、删除和替换规则。iptables用于管理网络流量,默认情况下INPUT和FORWARD链为DROP,OUTPUT链为ACCEPT。建议在严格模式下使用白名单。可以通过iptables -F命令清空规则,添加规则时使用-A或-I选项。
延伸解读
默认策略与防失联实践
iptables 的 INPUT、FORWARD、OUTPUT 链有默认策略,匹配不上规则时使用。文章建议严格模式下将 INPUT 和 FORWARD 设为 DROP,OUTPUT 设为 ACCEPT。但新手若直接设 DROP 可能导致失联。文章提供防失联方法:先写好白名单规则,最后再执行 iptables -P INPUT DROP。这样即使规则有误,已有连接也不会中断。
清空表操作的实际应用
文章提到,通常将 iptables 命令写在 shell 脚本中,开机自动执行,因此习惯在脚本开头清空规则。使用 iptables -F 清除所有链规则,-X 删除用户定义的空链,-Z 将计数和包大小统计归零。对于 nat 表,需指定 -t nat 再执行 -F 和 -X。这种清空操作也用于服务重启时删除自定义规则,避免残留规则干扰。
规则管理:添加、替换与删除
添加规则时,-A 在链尾追加,-I 在链头或指定位置插入。替换规则可用 -R 直接替换指定序号的规则,也可先删除再添加。删除规则可按序号(如 -D INPUT 2)或按匹配条件和动作(如 -D INPUT -s 192.168.1.2 -j DROP)。操作前建议用 --line-numbers 查看规则序号,确保准确修改。
Q&A
iptables的默认规则是什么?
默认情况下,INPUT和FORWARD链为DROP,OUTPUT链为ACCEPT。
如何清空iptables中的所有规则?
可以使用命令iptables -F来清空所有链的规则。
添加规则时,如何在链的尾部添加?
使用-A选项可以在链的尾部添加规则,例如:iptables -t filter -A INPUT -s 192.168.1.2 -j DROP。
如何删除iptables中的规则?
可以通过序号或匹配条件来删除规则,例如:iptables -t filter -D INPUT 2按序号删除,或使用iptables -t filter -D INPUT -s 192.168.1.2 -j DROP按条件删除。
在iptables中,如何替换已有的规则?
可以使用-R选项直接替换规则,例如:iptables -t filter -R INPUT 2 -s 192.168.1.2 -j ACCEPT。
使用iptables时,为什么建议使用白名单?
建议在严格模式下使用白名单,以确保只有允许的流量通过,增强安全性。