首先,我的服务器上没有使用 IPv6,并且 IPv6 已被禁用。
但是,如果我运行firewall-cmd --list-all-policies
,我可以看到有一个名为的默认策略allow-host-ipv6
。
它到底起什么作用?我也不知道这个策略是怎么来的。我确定这个/etc/firewalld/policies/
目录是空的。我该怎么把它删掉?
# firewall-cmd --list-all-policies
allow-host-ipv6 (active)
priority: -15000
target: CONTINUE
ingress-zones: ANY
egress-zones: HOST
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv6" icmp-type name="neighbour-advertisement" accept
rule family="ipv6" icmp-type name="neighbour-solicitation" accept
rule family="ipv6" icmp-type name="router-advertisement" accept
rule family="ipv6" icmp-type name="redirect" accept
根据规则描述,“允许运行防火墙的主机使用基本的 IPv6 功能”。协议级别的 IP 功能:邻居发现、路由器通告、重定向。ICMPv6 远不止回显功能。
保持此防火墙规则处于启用状态,以避免在难以找到的位置禁用 IPv6 而产生技术负担。此特定规则位于策略的系统默认路径中:/usr/lib/firewalld/policies/allow-host-ipv6.xml
如果您的路由器不发送 RA,那么将无法使用 IPv6 网络。如果您确实不想在网络上使用 v6,则必须这样做,因为其他主机可能无法通过防火墙阻止 ICMP。
丢弃 ICMP 的安全价值非常有限,因为多播消息的数量是可控的,而且 Linux 对此有成熟的实现。与过滤 ICMP 回显(ping)类似,它主要只是使 IP 运行变得困难,而收益却不大。