(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
进而
sudo iptables-save
要获得 iptables 规则的功能,仅执行上述命令就足够了吗(无需重新启动 iptables)?
答案1
为了清楚起见,该iptables-save
命令的功能不是激活规则,其目的是保存规则以供以后使用。常见用途有:
iptables-save > iptables.dat
这会将当前规则保存到iptables.dat
。您可以使用以下命令恢复此规则集:
iptables-restore < iptables.dat
您可以输入此行rc.local
以在重启后恢复规则,因为重启默认会清除所有规则。
答案2
@cewebugil 就您最初的问题而言,应用 IPTABLE 规则就足够了。应用 IPTABLE 规则后,它会立即生效。但重启后它将无法继续存在。
为了能够在重启网络配置文件 /etc/network/interfaces 后继续使用 IPTABLES(我指的是 Debian/Ubuntu 系统),你需要在以下位置添加一些内容:
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
这个想法是应用规则,等待 30 秒,然后应用一组规则以允许所有访问。执行此行时,按几次回车键,可能会发生两件事:
您的规则将您锁定(按下回车键不会显示在屏幕上,因此请等待时间用完,然后它们将被清除;如果您的规则有效并且您可以在屏幕上看到新行,请在睡眠结束前按 CTRL+C,这样就好了。
答案3
是的,一旦你向 iptables 添加了规则,它就会立即生效 - 这就是为什么你应该小心你的规则,因为可能会将自己锁定在外。