Chrome v83 中的“安全 DNS”设置中断了对内部网站的访问

Chrome v83 中的“安全 DNS”设置中断了对内部网站的访问

我发现,如果我尝试访问家庭网络内部的基于 Web 的服务,Chrome 将无法正确解析 URL。例如,如果我尝试使用其 fqdn plex.mydomain.com 浏览我的 Plex 服务器。这仅在启用“安全 DNS”设置时才会发生。它似乎将我的 Web 请求定向到我网络之外的 DNS 服务器。我实际上会被重定向到 pfsense 路由器上的一个页面,并出现错误警告我可能存在 DNS 重新绑定攻击。

我运行自己的内部 DNS 服务器。它是一台简单的 Windows 2012r2 服务器。我内部网络上的所有内容都指向此服务器,该服务器配置为将请求转发到 Google 的 DNS 服务器以获取其不知道的记录。

我喜欢使用安全 DNS(或 HTTPS 上的 DNS)。但由于上述原因,我似乎无法使用它。不过,我想知道,如果我将内部 DNS 服务器配置为支持 DNSSEC,那么可能会解决问题。我想我还需要调整 Chrome 设置以使用内部 DNS 服务器提供安全 DNS 服务。这些听起来正确吗?

还有其他人注意到这个问题吗?

答案1

您需要在 DNS 服务器上启用 DNS-over-HTTPS 支持才能使其正常工作。如果您的本地 DNS 服务器不支持 DoH,Chrome 将自动升级请求并绕过您的本地 DNS 设置,并使用 Google 首选的 DoH 服务器。遗憾的是,Microsoft DNS 目前不提供此功能。

假设您为 plex.mydomain.com 设置了公共 DNS,那么 Chrome 会测试您的 Windows DNS 服务器是否支持 DoH。Chrome 发现不支持,然后使用 DoH 向 8.8.8.8 发出请求,DoH 会解析您的公共 IP。然后,您的客户端会尝试连接到您的公共 IP,而不是内部 IP,而 pfsense 会阻止可能被视为重新绑定攻击的行为。如果您使用的是台式机,而不是有时需要外部连接的笔记本电脑,您可以通过将 Plex 服务器的本地 IP 添加到 hosts 文件中来解决这个问题。通常,hosts 文件中的条目永远不会进入操作系统级别的 DNS。但鉴于 Chrome 已经用自己的 DNS 解析器替代,您可能就没那么幸运了。

有关 DoH 在 Chrome 中的工作原理的更多信息: https://www.chromium.org/developers/dns-over-https

具体来说,来自该页面:

  1. Chrome 将有一个表来将非 DoH DNS 服务器映射到其等效的 DoH DNS 服务器。
  2. 根据此表,如果已知系统的递归解析器支持 DoH,Chrome 将升级到该解析器的 DoH 版本。换句话说,这将升级用于 DNS 解析的协议,同时保持用户的 DNS 提供商不变。同样值得注意的是,DNS over HTTPS 并不妨碍其运营商提供家庭安全过滤等功能。
  3. 在某些平台上,这可能意味着 Chrome 以前使用操作系统 DNS 解析 API,现在使用自己的 DNS 实现来实现 DoH
  4. 将提供组策略,以便管理员可以根据需要禁用该功能
  5. 最终用户将能够从设置页面控制该功能(例如禁用、自动升级、选择或指定特定提供商)

相关内容