昨天我从自己的服务器上自我locking。 而且我试图刷新从另一台服务器的iptables得到解锁,因为这个问题的答案3次失败,然后locking
之后,我无法login到服务器。 我问客户服务的支持,最后我可以像以前一样login。
他(客户服务)重新启动服务器并执行iptables -A INPUT -p tcp -dport 22 -j ACCEPT并closures防火墙。
现在我想让防火墙恢复到与之前一样的状态。
有可能这样做吗? 以及如何做到这一点?
我从其他论坛阅读,他们说刚刚重新启动机器,它的IP表将恢复到以前的状态。 这样对吗?
由iptablesconfiguration的防火墙是非法的。 它从来没有保存,必须重新加载每次启动。 通常在init.d中有一个脚本在启动时加载iptables规则。 当用iptables -F刷新规则时,只刷新内核知道的内容,但不影响在下次启动时如何设置防火墙。 每个分配是不同的。 Fedora使用了一个名为/etc/init.d/iptables的init.d脚本,它只运行iptables-restore / etc / sysconfig / iptables或类似的东西。 Ubuntu使用ufw,它根据本地configuration调用一系列iptables命令。 如果你所做的只是运行iptables命令,并没有将任何东西存储到文件中,那么重新启动应该还原防火墙。 如果你知道哪个init.d脚本,你可能只需重新加载该脚本来恢复,而不是完全重新启动。
嗯。 在冲洗之前不能保存它吗? http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s1-iptables-saving.html ?
+ =如果没有,那几乎是不可能的,除非里面有一些丢失的fw规则的磁盘文件。
在12.04的Ubuntu上,iptablesconfiguration永久存储在/ etc / default / iptables-rules中
您应该检查保存的iptables-rules是否仍然包含您的规则,并在停止iptables服务之前复制该文件或准备好备份该文件。
sudo service iptables stop sudo cp <my backup of iptables> /etc/default/iptables-rules sudo service iptables start 我认为这一切都取决于你的iptables规则如何设置之前,你做的冲洗。 我的意思是你的连锁店INPUT,OUTPUT和FORWARD的默认政策。
所以,为了确保在刷新iptables规则时不会被locking,请首先确保链条的默认策略是完全打开的。 像这样:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
然后才可以安全地冲洗你的规则:
iptables -F
如果您的问题是您的连锁店的默认政策与ACCEPT不同,这将起作用。
当然,在你刷新它们之前,你应该把你的规则备份到一个文件中:
iptables-save > /route/to/file.anyextension
在testing之后,您可以恢复您的旧规则:
iptables-restore < route/to/file.anyextension
如果您添加或删除规则,并且希望它是永久性的(即使您重新启动,它也会保留),您将不得不根据您的发行版做不同的事情。