这是完全重置 iptables 的最全面的命令吗?

这是完全重置 iptables 的最全面的命令吗?

我正在运行 VPS,并且想将 iptables 规则重置为出厂默认状态。以下是我想出的命令:

#!/bin/sh
echo "Resetting all iptables rules..."

#Reset default table policies
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#Reset nat table policies
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P INPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#Reset mangle table policies
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT 
iptables -t mangle -P FORWARD ACCEPT

#Reset raw table policies
iptables -t raw -P PREROUTING ACCEPT
iptables -t raw -P OUTPUT ACCEPT

#Flush all rules and delete empty chains
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -t raw -X

问题:

  1. 这些规则够全面吗?我的 iptables 已经乱七八糟了,我只想从头开始。

  2. 如果我重新启动,我的 VPS 会被锁定吗?

  3. 我是否需要在每个表上使用 -Z 命令来将链中所有规则的数据包和字节计数器清零?例如“iptables -t nat -Z”(并对所有其他表重复相同操作)?

谢谢!

答案1

  1. 我认为这些都非常好;我一下子想不出有哪条规则可以逃脱这种修剪。

  2. 视情况而定。您目前对重启规则的安排是什么?如果它们相当于删除所有内容,那么是的,您将把自己锁定在外。您上面展示的脚本很棒(参见 1.),但它不会在重启时神奇地运行。

  3. 这取决于您是否希望将计数器归零。

至于不被锁定,我同意 pauska 的观点,即进行远程防火墙工作可能很棘手。这就是为什么在提交对远程系统的防火墙所做的任何更改之前,我会

# at now+5min
at> service iptables stop
at> ^D

如果我随后提交的更改将我锁定,那么,我可以在五分钟内重新登录。如果没有,我可以使用atrm删除我刚刚提交的作业。它救了我好几次!(注意:该service命令适用于 Red Hat Linux,您可能需要找到适用于其他 Linux 的等效命令。)

相关内容