在救援模式下手动刷新 iptables

在救援模式下手动刷新 iptables

我破坏了 iptables,无法连接到我的 Ubuntu 12.04.03 服务器...我激活了救援模式(grml),当我尝试刷新它时,我得到了以下结果:

root@grml:/# iptables -F
FATAL: Could not load /lib/modules/3.7-1-grml-amd64/modules.dep: No such file or directory
iptables v1.4.12: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

我在谷歌上找不到任何东西。这真的很重要,如果你能帮忙,请...

答案1

grml实际上不会加载主机的 iptables 规则,因此它们不可用。

如果您遵循一些流行的指南并使用 NetworkManager,那么您可能会发现规则位于中/etc/iptables.*,因此在启动时删除它们(或提供一个空文件)可能是您最好的选择。

这一切都归结为您一开始是如何保存规则的,因此有关您一开始如何到达那里的任何细节都会有所帮助。

您也可以尝试将此段附加到服务器的启动中,可能是/etc/rc.local

#!/bin/sh -e
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

请记住,当grml您在运行另一个版本的 Linux 时,因此您必须挂载磁盘并修改那些文件,而不是正在运行的 grml 环境。

答案2

如果你通过 webmin 配置了 ip 表并选中了“在启动时启用防火墙”,那么你应该删除此行:

post-up iptables-restore < /etc/iptables.up.rules

etc/network/interfaces

Debian 上确实如此,因此我认为 Ubuntu 也一样

相关内容