iptables -F 是否永久删除所有 iptables 规则?

iptables -F 是否永久删除所有 iptables 规则?

在 RHEL 培训文档中,作者说道:

...运行以下命令禁用当前系统上的防火墙:iptables-F

他明确地使用了“禁用”一词,这对我来说意味着重新启用它会很简单。在阅读 iptables 的手册页时,我看到了这一点:

刷新选定的链(如果没有给出,则刷新表中的所有链)。这相当于删除所有规则一一列出。

我可以澄清预期行为吗?

答案1

这些iptables规则存储在 Red Hat 系统上的两个位置:

  • 在运行内核的内存中,防火墙代码在网络 I/O 上检查它们。用 刷新规则iptables -F只会删除此规则集。

  • 它们在启动时从中/etc/sysconfig/iptables加载。您可以使用service iptables reload或强制重新加载而不重新启动...restart

所以答案是否定的,刷新规则iptables -F并不是永久的。

当您进入setup并修改防火墙规则时,它会将它们保存在/etc/sysconfig/iptables.您不应该直接编辑该文件,但如果您知道iptables命令行格式,您可以很容易地找出该文件的格式。

答案2

另外,作为参考,以下是如何刷新所有当前 iptables 规则:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT

相关内容