我想在 Ubuntu 12.04 服务器启动时使用 iptables-restore 重新加载以前的防火墙规则。我使用的是 VPS,虚拟化后端写入/etc/init.d/networking
,所以我无法pre-up
在那里使用命令(因为它将被覆盖)。阅读文档,我尝试使用if-preup.d
和if-up.d
来运行防火墙脚本。但是,在重新启动服务器后,我放置在这两个目录中的脚本都没有运行。
这是一个无 GUI 的基本 Ubuntu 12.04 服务器虚拟机,没有安装网络管理器。
答案1
我会使用iptable
前端,而不是iptables
直接编写 -commands。我通常使用ufw
或shorewall
。我ufw
在服务器和shorewall
转发网络的机器上使用,因为 iptables 本身对于简单的单接口防火墙来说过于复杂。上述两个前端通常都会处理所有需要的设置。ufw
还为 IPv6 设置防火墙。
if-pre-up.d
和if-up.d
仅针对 管理的接口运行ifupdown
。也就是说,它们必须在 中提及/etc/network/interfaces
。如 的手册页中所述interfaces
,它们在要启动的接口设置之前和设置期间执行。