我正在尝试设置 UFW 来阻止传出连接,但特定接口和特定 IP 除外。一切似乎都按预期工作,除了我仍然可以向 IPV6 地址发送 ping - 我希望这些被阻止。我没有看到任何冲突的规则,所以我不确定我是否做错了什么,或者这是否是一个错误,或者这是否是预期的。
我断开 tun0 接口,并看到已成功阻止 IPV4 ping:
$ ping 192.30.255.113 # github.com
PING 192.30.255.113 (192.30.255.113) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
我尝试了 IPV6 地址,但没有被阻止:
ping 2001:41d0:701:1100::29c8 # ipv6-test.com
PING 2001:41d0:701:1100::29c8(2001:41d0:701:1100::29c8) 56 data bytes
64 bytes from 2001:41d0:701:1100::29c8: icmp_seq=1 ttl=42 time=181 ms
64 bytes from 2001:41d0:701:1100::29c8: icmp_seq=2 ttl=42 time=181 ms
这是我的 UFW 配置:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22 LIMIT IN Anywhere
Anywhere on tun0 ALLOW IN Anywhere
22 (v6) LIMIT IN Anywhere (v6)
Anywhere (v6) on tun0 ALLOW IN Anywhere (v6)
Anywhere ALLOW OUT Anywhere on tun0
1.2.3.4 1234 ALLOW OUT Anywhere
Anywhere (v6) ALLOW OUT Anywhere (v6) on tun0
这是为什么?
答案1
根据您的ip6tables-save
输出,您的所有 IPv6 策略都是ACCEPT
。此外,除了ufw
不执行任何操作的预定义表之外,您没有任何实际启用的 IPv6 规则。
请确保/etc/default/ufw
包含IPV6=yes
并运行sudo ufw reload
。
我已关注您的错误报告,没有错误。默认 ufw IPv6 策略包含一条允许 ping 网络上任何主机的规则(icmp6 类型 128)。
来自文档:
当您打开 UFW 时,它会使用一组默认规则(配置文件),这对于普通家庭用户来说应该没问题。这至少是 Ubuntu 开发人员的目标。简而言之,所有“传入”都被拒绝,一些例外让家庭用户的事情变得更容易。
也许您需要编辑一些文件才能禁用这些规则或添加DROP/REJECT
目标作为传入/传出链的第一条规则:
请检查:
https://wiki.ubuntu.com/UncomplicatedFirewall#Advanced_Functionality
https://help.ubuntu.com/community/UFW#Working_with_numbered_rules