我有相当复杂的iptables
/ip6tables
影响多个接口的规则。我想确保防火墙规则始终有效。由于甚至可以为(在那一刻)不存在的接口(例如iptables -A INPUT -i eth999 -j ACCEPT
)创建规则,因此我认为我不会将规则与物理接口相关联,而是与lo
始终存在的接口相关联:
# head /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
pre-up /sbin/iptables-restore < /etc/network/IPv4_fw_rules
pre-up /sbin/ip6tables-restore < /etc/network/IPv6_fw_rules
#
这有什么缺点吗?
不能保证 lo 首先被初始化(它现在可能碰巧是这样配置的,但这并不意味着它必须那样并且它可能在将来的某个时候确实被更改)。
但为什么要把它与网络接口联系起来呢?只需添加您在网络初始化之前加载的自定义初始化脚本或系统服务,并运行这两个命令来初始化防火墙。你完成了。无论如何,这就是我配置防火墙的方式......