我有一台 ubuntu 服务器 (serverA),它有几个 IPv6 地址。其中一个基于其 MAC 地址,并且为网络所知,另一个我推测是 ubuntu 创建为“私有”地址,用于隐藏 MAC 地址。
我有另一台服务器(serverB),它托管一个数据库,并且需要来自 serverA 的传入连接。serverB 有防火墙,只允许来自 serverA 的传入连接。我在 serverB 的防火墙例外中指定了 serverA 的基于 MAC 的 IP 地址,但由于不知道私有地址,所以没有添加它。但是,来自 serverA 的打包程序似乎默认来自私有地址。
私有地址是否确定?如何禁用它?我应该禁用它吗?
答案1
隐私地址应该是随机的,并且经常更改。它不应该是确定性的;这与概念背道而驰。它应该用于传出连接。
我不建议禁用它,因为它有助于避免像 SLAAC(MAC 派生地址的正确术语)那样泄露您的 MAC。但是,有些重视确定哪个主机随后建立连接的能力的人更喜欢禁用它。
如果您必须使用基于 IP 的 ACL,则必须禁用它。您可以通过添加到 的ip6-privacy=0
ipv6 部分来做到这一点/etc/NetworkManager/system/connections/
。您可能还想检查/etc/sysctl.d/10-ipv6-privacy.conf
这是否不能阻止它。
答案2
我将重点讨论你的最后一个问题:您是否应该禁用私人地址?
我同意@Falcon的观点,隐私扩展的定义RFC 4941很有用。我会始终在可能连接到互联网服务的客户端/工作站上启用它们,我希望手机生产商很快会在所有设备上默认启用它们。
但是在您的设置中,您谈论的是两台服务器,其中一台(我认为不只是)充当另一台服务器的客户端。首先要问的问题是:您的设置是什么?这些服务器在您的公司网络内吗?它们将具有哪些外部访问权限?是否会serverA
连接到互联网(不使用代理)?如果所有流量都是内部的,并且您没有看到对手映射内部网络流量模式的威胁,则只需在服务器上禁用隐私扩展。根据定义,服务器必须至少有一个客户端熟知的地址(主要是通过 DNS),因此攻击者可以使用此地址攻击服务器。隐藏其地址不是服务器的有效攻击缓解策略。(当然,将负载平衡器放在其地址前面是有效的。)
这美国“国防部 IPv6 标准配置文件,适用于支持 IPv6 的产品”(抱歉,我找不到 5.0 以上版本的链接)还要求主机/工作站“在需要隐私地址扩展或需要保持匿名的网络上运行”时使用隐私扩展,并强烈建议其他主机/工作站也使用它们。此要求适用于服务器除非它们还可以充当客户端(如您的设置中一样)和需要保持匿名(您必须决定)。因此,一般服务器不需要激活隐私扩展。
关于 ACL:如果必须在多个地方使用硬编码 IPv6 地址,我甚至会考虑在服务器上定义固定 IPv6 地址。您可以在服务器和 DNS 上设置它们,也可以通过 DHCPv6 分发它们,但与 SLAAC 地址相比,如果您必须更换 NIC 或服务器,您的工作量会更少。
简而言之:如果您的服务器仅进行内部通信,并且没有针对流量分析的高级安全要求,则应禁用隐私扩展。在任何其他情况下,您都必须权衡利弊。
嗨嗨。
答案3
十年后的你好......
如果 serverA 和 serverB 位于同一家公司的网络中,即使使用防火墙进行细分,也可以在 fd00::/8 网络(或其子网)中创建“私有”地址。
例如,如果服务器 A 具有附加地址 fd00::a,而服务器 B 具有附加地址 fd00::b,并且针对 fd00::/8 适当定义了路由,则服务器 A 通过该 fd00 地址到达服务器 B 将使其显示自己的静态 fd00 地址,而任何与外部的连接(例如,位于 2a00:1450:4016:80b::200e 的 google.com)仍将使用非常量私有动态地址。