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


8

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

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

他明确使用了“禁用”一词,对我而言,它暗示重新启用将很容易。在阅读iptables的手册页时,我看到以下内容:

冲洗选定的链(如果没有给出表中的所有链)。这等效于删除所有规则。

我可以澄清预期的行为吗?


2
请注意,iptables -F刷新“过滤器”表中的所有规则,不会刷新其他表(nat,mangle ...),也不会将策略还原为其默认值,因此不能说真的禁用了这些策略防火墙
斯特凡Chazelas

Answers:


13

iptables规则被存储在Red Hat系统两个地方:

  • 在运行内核的内存中,防火墙代码在其中检查网络I / O。使用刷新iptables -F规则仅摆脱该规则集。

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

因此答案是否定的,刷新规则iptables -F不是永久的。

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


很棒的答案。我感谢细节和澄清。谢谢沃伦。
Mike B

9

另外,作为参考,以下是刷新所有当前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

4
实际上有更多的表。至少-t raw-t security。而不是硬编码,请使用/proc/net/ip_tables_names
derobert
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.