Doj*_*ojo 0 ipv6 firewall dns ufw ping
我想设置一个策略来默认拒绝传出连接。
所以我设置了以下规则:
sudo ufw default deny outgoing
sudo ufw allow out 53
sudo ufw allow out from any to 123.123.123.123
Run Code Online (Sandbox Code Playgroud)
查看:
sudo ufw status numbered
Run Code Online (Sandbox Code Playgroud)
输出:
Status: active
To Action From
-- ------ ----
[ 1] 123.123.123.123 ALLOW OUT Anywhere (out)
[ 2] 53 ALLOW OUT Anywhere (out)
[ 3] 53 (v6) ALLOW OUT Anywhere (v6) (out)
Run Code Online (Sandbox Code Playgroud)
当我 ping google.com 时,我希望 DNS 解析能够正常工作,但实际 ping 失败。但整个 ping 功能正常工作。我注意到它使用 IPv6 进行 pining。而在禁用防火墙的情况下,它使用 IPv4。
PING google.com(fra15s12-in-x0e.1e100.net (2a00:1450:4001:815::200e)) 56 data bytes
64 bytes from fra15s12-in-x0e.1e100.net (2a00:1450:4001:815::200e): icmp_seq=1 ttl=115 time=3.90 ms
64 bytes from fra15s12-in-x0e.1e100.net (2a00:1450:4001:815::200e): icmp_seq=2 ttl=115 time=3.96 ms
64 bytes from fra15s12-in-x0e.1e100.net (2a00:1450:4001:815::200e): icmp_seq=3 ttl=115 time=3.94 ms
^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 3.903/3.936/3.965/0.025 ms
Run Code Online (Sandbox Code Playgroud)
看来防火墙已成功阻止 IPv4,因此 ping 命令尝试使用 IPv6 并成功。防火墙没有阻止 IPv6。
ufw您在命令中看到的 UFW 防火墙规则并不是UFW 实际实现的完整规则集。在幕后,iptables/是 UFW 操纵的内容,并且默认 UFW 规则允许netfilter很多事情,以便您的互联网等行为正常。不幸的是,要修复这些规则,您必须编辑一些配置文件。
/etc/ufw/before6.rules是您要编辑的文件。找到这两行:
-A ufw6-before-output -p icmpv6 --icmpv6-type echo-request -j ACCEPT
-A ufw6-before-output -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
您可以执行以下两种操作之一:将 更改ACCEPT为DROP此处,或者简单地注释掉这两行以继承一般策略设置的默认策略(通常是 DROP 我相信您的情况?)。如果您绝对不想PING通过 ICMP 接收或发送,那么您需要将它们更改为DROP.
所以这些行看起来像这样(是的,添加我在这个块中添加的注释):
# Drop ICMPv6 outbound for echo replies and echo requests (PING)
-A ufw6-before-output -p icmpv6 --icmpv6-type echo-request -j DROP
-A ufw6-before-output -p icmpv6 --icmpv6-type echo-reply -j DROP
Run Code Online (Sandbox Code Playgroud)
列表中的其余 ICMPv6 项目应单独保留 - 与 IPv4 中的 ICMP 不同,IPv6 互操作性需要发送/接收某些其他类型的数据包才能在 IPv6 支持下正常运行,因此 IPv6 更加依赖于其 ICMP比 IPv4 更重要。因此,您应该保留 UFW 的其余规则。
然后您应该运行sudo ufw disable && sudo ufw enable && sudo ufw reload以确保 UFW 实际上根据更改的定义更新了其规则。
请注意,如果您的目的是禁用IPv6 支持,那么您需要进行一些网络配置级别的更改,以使内容正常运行并默认禁用 IPv6 支持。这样,即使 DNS 解析为 IPv6 记录,系统也不支持 IPv6,也不会尝试使用它。(话虽这么说,ufw其设计并不复杂,并且彻底禁用 IPv6 比您想象的要困难得多 - 也超出了这个问题的范围)
| 归档时间: |
|
| 查看次数: |
3714 次 |
| 最近记录: |