在不重启的情况下添加 iptables 规则就足够了吗?

cew*_*gil 29 iptables

(Ubuntu 服务器)我正在运行

sudo iptables -A INPUT -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 4/sec -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

进而

sudo iptables-save
Run Code Online (Sandbox Code Playgroud)

要获得iptables规则的功能,只做上面的命令(不重启iptables)就够了吗?

小智 16

为清楚起见,该iptables-save命令的功能不是激活规则,其目的是保存规则以备后用。常见用途有:

iptables-save > iptables.dat

这会将当前规则保存到iptables.dat. 您可以使用以下命令恢复此规则集:

iptables-restore < iptables.dat

您可以rc.local在重新启动后放入此行以恢复规则,因为默认情况下重新启动会清除所有规则。

  • 如果你想保持冷静,不要忘记 [`iptables-apply`](http://man.he.net/man8/iptables-apply)。(默认 10 秒) (8认同)

Reg*_*ser 15

@cewebugil 就您最初的问题而言,应用 IPTABLE 规则就足够了。应用 IPTABLE 规则的那一刻,它立即变为活动状态。但它不会在重新启动后继续存在。

为了能够在您的网络配置文件 /etc/network/interfaces 文件(我指的是 Debian/Ubuntu 系统)中重新启动 IPTABLES,您需要在其中添加一些
pre-up iptables-restore < firewall.txt

在桥上设置防火墙时检查这个线程混淆和这个链接 http://www.debian-administration.org/articles/445

从锁中拯救自己的两个好习惯

1) 在测试 IPTABLES 时,最好有一个 cron 作业条目,每 15 分钟左右刷新一次您的规则。这样,如果您在 15 分钟后偶然应用错误的规则,该规则将被删除,您可以再次登录。那如果某些 IPTABLE 规则错误,将使您免于锁定。

2)这也可以通过

 iptables-restore < iptables_rules; sleep 30; iptables-restore < clean_rules
Run Code Online (Sandbox Code Playgroud)

这个想法是应用规则,等待 30 秒并应用一组规则以允许所有访问。执行此行时,按 Enter 几次,可能会发生两件事:

您的规则将您锁定(按 Enter 不会在屏幕上显示,因此请等待时间用完它们将被清除;如果您的规则有效并且您可以在屏幕上看到新行,请在睡眠结束前按 CTRL+C你很好。

  • 您也可以使用`iptables-apply -t 30 iptables_rules`。`iptables-apply` 会等待你正面确认应用的规则,如果 30 秒后你没有回复,它会恢复到之前的规则。 (15认同)

use*_*517 14

是的,一旦你向 iptables 添加了规则,它就会立即生效——这就是为什么你应该小心你的规则,因为它有可能把自己锁在外面。