如果我使用自己的 VPN 并使用第三方 DNS - 我可以信任它吗?
例如,攻击者是否有可能通过联系 DNS 托管(假设攻击者有订单且 DNS 托管有日志)来跟踪请求,并找出我访问过的站点?因为 DNS 请求绕过了 VPN?
而如果存在这样的风险,如何解决这个问题?我应该使用自己的 DNS 服务器而不是第三方来增加安全性吗?
如果我使用自己的 VPN 并使用第三方 DNS - 我可以信任它吗?
例如,攻击者是否有可能通过联系 DNS 托管(假设攻击者有订单且 DNS 托管有日志)来跟踪请求,并找出我访问过的站点?因为 DNS 请求绕过了 VPN?
而如果存在这样的风险,如何解决这个问题?我应该使用自己的 DNS 服务器而不是第三方来增加安全性吗?
不,你不能。
就像您搜索有关“DNS 泄漏”主题的信息一样简单。当您使用 VPN 时,您有 DNS 泄漏的风险。换句话说,您的 DNS 解析将在您的 VPN 之外进行。
其次,VPN 服务器(以某种方式)知道您是谁、您来自哪里以及您想去哪里。Tor 网络的出口节点也存在同样的风险。
无论如何,这取决于你今天醒来的偏执程度。
你不应该相信他们。您可能会遭受“DNS 泄漏”的困扰。理想情况下,您的计算机应该通过 VPN 发送 DNS 请求,但它可能会直接请求它。您的 IP 地址将被公开。任何窥探到 DNS 服务器连接的人都会看到您正在访问的站点。这也让您面临危险的中间人攻击。使用DNSCrypt 协议。它从字面上加密您对 OpenDNS 或类似提供商的 DNS 请求。
这里有两件事你需要信任:DNS 响应的真实性和隐私。
如果满足以下所有条件,您可以合理地确定返回的数据的真实性:
将 DNS 响应设为私有更加困难。我看到两个解决方案。要么使用支持DNSCurve的服务器,要么通过 VPN 隧道传输 DNS 流量。
请注意,无论哪种情况,您都可能需要更改您使用的 DNS 服务器,因为 ISP 的 DNS 服务器不太可能支持 DNSSEC,而且几乎可以肯定它不支持 DNSCurve。但是,您不需要使用自己的,您可以使用信誉良好的公共服务器,例如 Google DNS 或 OpenDNS。
编辑:请注意,响应在私有时会变得更加真实,因为更改响应变得更加困难(您使用的 DNS 服务器需要受到损害,或者 VPN 服务器需要获得 Man-In-The-Middle'd ,取决于您选择的解决方案。
在使用您自己的 VPN 时,您可以提高安全性,将 DNS 服务器放在 VPN 服务的网络一侧,并强制任何 DNS 请求通过您自己的本地 DNS 服务/代理。
但是,托管 DNS 的服务器/网络的 ISP/DNS 提供商可以记录、拦截和修改您的 DNS 查询。
设置一个不与普通根名称服务器对话的 DNS 服务器/缓存/代理服务器,而是通过 TLS 与启用 dnscrypt 的服务器对话,您可以一次性解决 DNS 请求的隐私元素和任何潜在的泄漏问题。
为了提高安全性,您还应该设置额外的防火墙规则来拦截来自您的场所/您的 DNS 客户端的不使用您的 DNS IP 地址的 DNS 请求,并强制将 DNS 请求发送到您的 DNS 服务(例如,一台机器手动设置 Google DNS 服务器 8.8.8.8 将被迫与您的 DNS 服务通信)。
作为一项额外的安全措施,请注意,例如,OS/X 和 iPhone 允许通过按需 VPN 配置文件进行设置。换句话说,任何新的连接请求都不会在没有 VNP 上升的情况下得到满足,从而在 VPN 未建立时否定任何意外连接。
作为旁注,我在家里运行一个为我的设备提供服务的 DNS 服务器,并经常使用我自己的家庭 VPN、我管理的工作 VPN 和商业 VPN。在这种情况下,当我通过 dnscrypt/TLS 与外国 DNS 服务器交谈时,本地 ISP 不会有 DNS 泄漏。
还值得注意的是,虽然像https://www.dnsleaktest.com这样的服务会测试泄漏,但“不存在”泄漏并不能保证您的设置;当他们确实发现泄漏时,这些测试会更有用。
最后提醒一下,我还要补充一点,VPN 客户端添加的策略/防火墙规则,尤其是商业 VPN 软件添加的默认规则,可能会改变您的基础设施的预期行为。