我发现如果我尝试访问家庭网络内部的基于 Web 的服务,那么 Chrome 将无法正确解析 URL。例如,如果我尝试使用其 fqdn 浏览到我的 Plex 服务器;plex.mydomain.com。仅当启用“安全 DNS”设置时。它似乎将我的网络请求定向到我的网络之外的 DNS 服务器。实际上,我不会将我带到我的 Plex 服务器 Web 前端,而是将我重定向到我的 pfsense 路由器上的一个页面,并显示错误警告我潜在的 DNS 重新绑定攻击。
我运行自己的内部 DNS 服务器。它是一个简单的 Windows 2012r2 服务器。我内部网络上的所有内容都指向此服务器,该服务器配置为将请求转发到 Google 的 DNS 服务器以获取它不知道的记录。
我喜欢使用安全 DNS(或基于 HTTPS 的 DNS)的想法。但由于上述原因,我似乎无法使用它。不过我想知道,如果我要配置我的内部 DNS 服务器以支持 DNSSEC,那么这可能会解决问题。我想我还需要调整我的 Chrome 设置以使用我的内部 DNS 服务器来提供安全 DNS 服务。这一切听起来都正确吗?
有没有其他人观察到这个问题?
您需要在 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,这会解析您的公共 IP。然后,您的客户端会尝试连接到您的公共 IP,而不是内部 IP,并且 pfsense 会阻止可能被视为重新绑定攻击的行为。如果您使用的是台式机,而不是有时需要外部连接的笔记本电脑,您可以通过将 Plex 服务器的本地 IP 添加到主机文件中来解决此问题。通常主机文件中的条目永远不会进入操作系统级别的 DNS。但考虑到 Chrome 已经在使用自己的 DNS 解析器,你可能不走运。
有关 DoH 如何在 Chrome 中工作的更多信息: https ://www.chromium.org/developers/dns-over-https
特别是从该页面: