Debian 8 - IPTables 恢复每个数据包的状态

Debian 8 - IPTables 恢复每个数据包的状态

问题: iptables无法更改。在我的电脑上,我可以运行iptables -F.iptables -L显示它已被冲洗。

当任何数据包进出机器时,所有规则都会恢复!如果我执行 a ,也会发生同样的行为iptables-restore < new_settings。它们会在那里停留一秒钟,但一旦有数据包通过,iptables它就会恢复原样。

我在用着德班8该操作系统是从Debian 7。原来是别人的电脑。

我检查过,认为这将是以下事情之一:

  • iptables-persistent不存在
  • /etc/iptables/不存在
  • 当我查看进程时,它的名称中systemctl甚至没有任何内容ip

/# systemctl --all | grep ip run-rpc_pipefs.mount loaded active mounted /run/rpc_pipefs systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named Pipe

  • # firewalld系统上没有。

我们在哪里可以找到服务或正在更改系统配置的东西?

答案1

也许你可以使用audit. Fedora 默认启用它,并且它会用 NETFILTER_CFG 行淹没日志。

看这个问题:

审核正在运行的 iptables 配置的更改

在所示的示例中,相关过程是iptables,这可能没有太大帮助。然而它也记录了ppid父进程(以及明显的pid)。

如果父进程立即退出...

您可以轻松地使用进程记帐(包)来跟踪每个现有进程(命令)acct的名称。lastcomm然而,这比您想象的要少。我在这里想到“bash”。

最好运行fatrace来跟踪打开的文件,其中包括程序执行。只是不要尝试通过 grep 进行管道传输 - 它将无法生成任何输出,我不知道为什么。

还有一个页上execsnoop。如果您可以使用该程序或其建议的任何替代方案,那么这将是最容易解释的。

从技术上讲,我不允许fork().但我想不出你为什么fork()exec()创建 netfilter 规则的充分理由。

答案2

长话短说当您遇到配置文件不断更改的奇怪问题时,请检查您的/etc/network/if-*.d文件(如果您已经检查过systemd配置)。

事实证明,可以更改iptables命令(或实际上任何内容)的另一个选项位于if-up.dif-down.d文件夹中,这些文件夹根据互联网连接进行更改。

里面/etc/network/有一个文件夹,用于存放if-pre-up.dif-up.d等。

if-*每个都包含一组在满足条件时运行的脚本。因此,每当互联网连接发生变化(这似乎是 中的任何变化iptables)时,它都会运行一个脚本,该脚本会使用中的/sbin/iptables-restore < /etc/network/iptables文件重置 iptables 。iptables/etc/network/

相关内容