刷新 iptables 破坏了我的管道,我该如何挽救我的实例?

刷新 iptables 破坏了我的管道,我该如何挽救我的实例?

当我执行 iptables -F 时,我正在设置我的 iptables,但我的 ssh 管道断了。

这是我的会话的最后输出:

root@alfapaints:~# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW,ESTABLISHED tcp dpt:2222
ACCEPT     tcp  --  li465-68.members.linode.com  anywhere             state NEW,ESTABLISHED tcp dpt:nrpe
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:9200 state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http state NEW,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain

Chain FORWARD (policy DROP)
target     prot opt source               destination             

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state ESTABLISHED tcp spt:2222
ACCEPT     tcp  --  anywhere             anywhere             state ESTABLISHED tcp spt:nrpe
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:9200 state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:http state ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
root@alfapaints:~# iptables -F
Write failed: Broken pipe

我之前测试过我的连接,我能够使用 ssh 连接。现在我进行了 nmap 扫描,发现没有一个端口打开。我知道我的 VPS 在 VMWare ESXi 上运行,重新启动有帮助吗?

或者如果不行,我可以将磁盘连接并安装到另一个虚拟机来保存数据吗?

有人能给点建议吗?或者能解释一下发生了什么或者是什么原因导致我的管道破裂?

ps:我没有将规则保存在 iptables 的配置目录中。但是我使用存储在 ~/rules.config 中的文件来应用我的规则,如下所示:iptables-restore < rules.config 那么重新启动可能会有帮助吗?

提前致谢。

答案1

您的所有三个策略都是DROP,因此通过刷新链,您已经删除了所有可能修改特定数据包配置的规则,并将它们全部保留为默认策略:实际上,您已经说过所有进出和通过机器的数据包都应被丢弃。

重启是否有用取决于您机器的启动状态。如果您有一套合理的规则设计为在重启时出现,那么就重启它。另一方面,如果您设置了重启代码来保存和恢复防火墙的运行状态,或者您有一套高度限制的启动规则,那么重启将无济于事。

假设你把它拿回来了,我发现在制定iptables规则时经常有帮助的是

at now+5min
 service iptables stop
 ^D

当我尝试做一些巧妙的事情时,这常常能帮我解围。我可以把事情搞砸,把自己锁在外面,因为我知道五分钟后防火墙就会关闭,然后我就可以回来把事情处理好。

答案2

您似乎正在使用 Linode。在这种情况下,请使用Linode Shell以访问虚拟机的控制台。然后您可以登录并修复防火墙。

使用其他提供商,提供商可以为您提供等效的虚拟控制台访问权限。例如,VMware 完全可以做到这一点。

相关内容