Debian“忽略”/etc/network/if-pre-up.d/iptables

Debian“忽略”/etc/network/if-pre-up.d/iptables

我希望我的 iptables 规则在启动时自动加载。根据 Debian 上的 wiki,可以通过在 /etc/network/if-pre-up.d/ 中放置一个名为 iptables 的脚本来实现。所以我这样做了,它看起来是这样的:

cat /etc/network/if-pre-up.d/iptables 
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules

此脚本有效:如果我以 root 身份运行它,我的防火墙规则就会应用。但重新启动时没有防火墙规则。我做错了什么?

根据要求:/etc/network/interfaces(我没有碰过这个文件)

user@DebianVPS:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

答案1

使用该iptables-persistent包完成这项任务。

/etc/iptables/rules.4在和中定义您的规则/etc/iptables/rules.6,并且不要忘记激活服务(使用update-rc.dchkconfig或您最喜欢的工具)。

答案2

此问题可能与脚本的权限位有关。此命令的输出是什么?它包含您的文件吗?

run-parts --test /etc/network/if-pre-up.d

答案3

为什么不采用简单的方法来做呢?

1-创建你的 iptables 规则

2 - 运行“sudo apt-get install iptables-persistent”,它会询问您是否要保存规则并在启动后恢复它们。

3- 您已完成

相关内容