如何在 ufw 中允许本地 IPv6 子网?

use*_*232 7 firewall networking ufw

我最近在家里获得了 IPv6 连接,现在我想只允许从 LAN 通过 IPv6 连接到我的家庭服务器。诀窍是分配给服务器的 IPv6 地址/前缀是动态的。是否有某种方法可以编写仅允许来自直接连接的子网的 UFW 规则?

Tho*_*ard 6

请记住,没有 IPv6“本地范围”——每个 IPv6“本地范围”都是它自己的(至少)/64 段在特定定义的前缀中的 v6 地址。因此,您收到的任何“专用范围”地址都将特定于您的路由器为您设置的子网,而不是您拥有的外部 v6 地址(路由器内部有自动设置子网的逻辑,但是当您进入具有高级防火墙、路由器、交换机等的企业级路由,IPv6 必须手动配置和设置。

当您添加到等式中时,您很可能(并且经常)始终拥有一个不断变化的子网,如果不接受所有 IPv6 入站连接,就无法动态接受所有这些 - 至少在消费级网络设置中(使用一个更复杂和更昂贵的防火墙设备,您可以明确地进行 VLAN 分离以防止事物与外部通信并仅接受内部 v6,但您不能在消费级路由器技术上做到这一点)。

同样,防火墙规则ufw(以及ufw 使用的底层iptablesnetfilter技术)被设计为具有特定规则(例如ALLOW aaaa:bbbb:cccc:dddd::dead:beef INBOUND TO dddd:eeee:ffff:0000::dead:beef PORT 22/tcp(显然不是规则,而只是一个示例))并且如果您在不同的 v6 子网上总是有不同的地址,(无论是内部还是外部,尤其是内部),它打破了防火墙对此类规则的要求。

因此,您需要知道您将获得的所有子网,并添加ufw适用于每个单独子网的规则。如果该子网一直在变化,而您不知道将获得哪个子网,那么您无法在任何设置中可靠地创建防火墙规则,该规则可以在动态不断变化的基础上完成您希望完成的任务。

这也适用于家庭端口转发——除非内部 IP 地址(v4 或 v6)不会改变,否则您无法可靠地设置端口转发。(路由器自己透明地处理来自 Internet 的 INBOUND,只要您在静态设置中设置内部 v6,但是您不能保证在没有更多耗时的网络配置和设置的情况下会发生这种情况,并且可能更多企业级设备可能会变得昂贵)

  • 谢谢,但我正在寻找更多类似于 Windows 防火墙提供的功能。它允许您指定要允许[仅本地子网](https://i.imgur.com/m902JPe.png)。 (2认同)

小智 5

老问题,但谷歌让我来到这里,所以我认为值得注意的是,您可以添加 IPv6 本地链接范围:

ufw allow from fe80::/64
Run Code Online (Sandbox Code Playgroud)

如果您通过 LAN 进行连接,则应使用本地链路地址而不是您的全球 IPv6 地址。