DNS泄漏(原因和修复)

浏览器使用域名系统(DNS)来桥接Internet IP地址(数字)和网站域名(单词)之间的鸿沟。

DNS泄漏

输入Web名称后,它将首先发送到DNS服务器,该域名与相关IP地址匹配,以便可以将请求转发到正确的计算机。

这是一个巨大的隐私问题,因为所有标准的互联网流量都必须通过记录发件人和目的地的DNS服务器。

该DNS服务器通常属于用户的ISP,并且受国家法律管辖。例如,在英国,必须按需将ISP持有的信息交给执法部门。在美国也发生了类似的情况,但是增加了ISP将数据出售给营销公司的选项。

虽然可以使用SSL / TLS加密用户的本地计算机与远程网站之间的通信内容(URL中显示为“ https”),但是无法加密发送者和接收者的地址。结果,只要具有合法(或刑事)访问DNS日志的权限的人都将知道每个访问的目的地-也就是说,在正常情况下,用户对其上网位置没有隐私权。

VPN旨在通过在用户计算机和目标网站之间留出一定距离来解决此问题。但是它们并不总是能完美运行。一系列问题意味着在某些情况下,DNS数据可能会泄漏回ISP,从而泄漏到政府和营销公司的权限范围内。

这些问题称为DNS泄漏。为了进行有关DNS泄漏的讨论,我们将主要假设你的VPN使用最通用的VPN协议OpenVPN。

什么是DNS泄漏?

VPN在你的计算机和VPN服务器之间建立加密连接(通常称为“隧道”);然后VPN服务器将你的请求发送到所需的网站。如果VPN正常工作,则你的所有ISP都会看到你正在连接到VPN –它看不到VPN将你连接到何处。Internet窥探者(政府或犯罪分子)无法看到任何内容,因为该内容已加密。

如果发生意外,并且绕过或忽略了VPN服务器,则会发生DNS泄漏。在这种情况下,DNS服务器运营商(通常是你的ISP)会在你认为自己无法访问Internet的情况下看到你要上网的地方。

这是一个坏消息,因为它破坏了使用VPN的目的。Web通信的内容仍然是隐藏的(通过VPN的加密),但是最重要的匿名部分-你的位置和浏览数据-没有受到保护,很可能由ISP记录。

如何判断我的VPN是否存在DNS泄漏?

检测DNS泄漏有好消息也有坏消息。好消息是,检查VPN是否泄漏了DNS请求是快速,容易和简单的。坏消息是,如果不检查,你将永远不会知道泄漏,除非为时已晚。

安全浏览器中有很多工具可以测试你的VPN是否存在DNS或其他形式的数据泄漏,包括一些由VPN提供商(例如AirVPN或VPN.ac )制造的泄漏。如果你不确定该怎么办,可以在认为你的VPN可以正常运行的情况下直接访问ipleak.net。该站点将自动检查DNS泄漏(并且附带地,还会提供很多信息)。

  • 在浏览器的地址栏中输入ipleak.net
  • 网页加载后,测试将自动开始,并且将显示一个IP地址。
  • 如果你看到的地址是你的IP地址并显示了你的位置,并且你正在使用VPN,则表明你存在DNS泄漏。如果显示你的VPN的IP地址,则表明该VPN正常工作。

如果可能的话,最好与多个在线检查器一起测试。

图1显示ipleak.net与配置错误的VPN一起使用。它返回正确的IP地址。这是DNS泄漏。

你的IP地址

图2显示了ipleak与ExpressVPN一起使用,该iVPN被配置为使用比利时服务器(ExpressVPN允许你从多个不同的国家中进行选择)。没有明显的DNS泄漏。

对于大多数用户而言,在继续浏览其他站点之前执行此检查就足够了。对于某些用户来说,这不是一个完美的解决方案,因为它要求你连接到Internet并发送DNS请求以访问检查器工具。

无需使用这些网站之一就可以测试DNS和其他漏洞,尽管它要求你知道自己的IP地址以及如何使用Windows命令提示符,而且还需要受信任的测试服务器才能直接“ ping” ; 这可能是你知道并信任的私有服务器,也可能是以下公共测试服务器之一:

  • whoami.akamai.net
  • resolver.dnscrypt.org
  • whoami.fluffcomputing.com
  • whoami.ultradns.net

为此,请打开命令提示符(转到“开始”菜单,键入“ cmd”,然后按Enter),然后输入以下文本:

ping [服务器名称] -n 1
将[服务器名称]替换为所选测试服务器的地址(例如“ ping whoami.akamai.net -n 1”),然后按Enter。如果在结果文本中找到任何IP地址与你的个人IP或本地IP相匹配,则表明存在DNS泄漏;仅显示你的VPN的IP地址。

图3显示了运行ExpressVPN的结果。请注意,返回的唯一IP地址是比利时IP,如图2所示。没有明显的DNS泄漏。

如果你发现你的VPN发生DNS泄漏,是时候停止浏览,直到找到原因并解决问题为止。下面列出了一些最可能导致DNS泄漏的原因及其解决方案。

DNS泄漏问题和解决方案

问题1:网络配置不正确

DNS泄漏问题和修复

对于通过不同网络连接到Internet的用户,这是DNS泄漏的最常见原因之一;例如,经常在家庭路由器,咖啡店的WiFi和公共热点之间切换的人。在连接到VPN的加密隧道之前,你的设备必须首先连接到本地网络。

如果没有适当的设置,你可能会面临数据泄漏的危险。连接到任何新网络时,DHCP设置(确定网络中计算机IP地址的协议)可以自动分配一个DNS服务器来处理你的查找请求-一个可能属于ISP,或者一个可能不正确。安全的。即使你连接到此网络上的VPN,你的DNS请求也会绕过加密的隧道,从而导致DNS泄漏。

解决方法:

在大多数情况下,将计算机上的VPN配置为使用VPN提供或首选的DNS服务器将迫使DNS请求通过VPN,而不是直接来自本地网络。但是,并非所有的VPN提供商都拥有自己的DNS服务器,在这种情况下,使用独立的DNS服务器(例如OpenDNS或Google Public DNS)应该允许DNS请求通过VPN而不是直接从你的客户端计算机通过。不幸的是,以这种方式更改配置在很大程度上取决于你的特定VPN提供商和所使用的协议–无论你连接到哪个本地网络,你都可以将它们设置为自动连接到正确的DNS服务器。否则你可能每次都必须手动连接到首选服务器。检查你的VPN客户端的支持以获取特定说明。

如果必须手动配置计算机以使用所选的独立DNS服务器,则可以在下面的“将设置更改为受信任的独立DNS服务器”部分中找到分步说明。

问题2:IPv6

通常,当你想到IP地址时,会想到由4组(最多3位)组成的32位代码,例如123.123.123.123(如上所述)。这是IP版本4(IPv4),是当前最常见的IP地址形式。但是,可用的未使用的IPv4地址池变得非常小,并且IPv4正在(非常缓慢地)替换IPv4。

IPv6地址由8组4个字符组成,可以是字母或数字,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。

互联网仍处于IPv4和IPv6之间的过渡阶段。这带来了很多问题,尤其是对于VPN。除非VPN明确支持IPv6,否则通过IPv6向你的计算机发送或从你的计算机发出的任何请求(或使用双栈隧道将IPv4转换为IPv6的请求(请参见下面的Teredo))都将完全绕过VPN隧道,从而使你的个人数据不受保护。简而言之,IPv6会在你不知情的情况下破坏你的VPN。

大多数网站同时具有IPv6地址和IPv4地址,尽管仍有很大一部分仍仅是IPv4。也有一些仅使用IPv6的网站。你的DNS请求是针对IPv4还是IPv6地址,通常取决于你的ISP,你的网络设备(例如无线路由器)和你要访问的特定网站(由于IPv6的实施仍不完整,并非所有用户都能访问仅限IPv6的网站)。大多数DNS查找仍将是IPv4,但是大多数用户将无法同时知道是否正在发出IPv4或IPv6请求。

罗马的Sapienza大学和伦敦的玛丽大学(University of Rome)的研究人员在2015年进行的一项研究对14个商业VPN提供商进行了调查,发现其中10个(比例高得令人不安)受到IPv6泄漏的影响。

  • HideMyAss
  • IPVanish
  • Astrill
  • ExpressVPN
  • StrongVPN
  • PureVPN
  • AirVPN
  • Tunnelbear
  • ProXPN
  • Hotspot Shield Elite

尽管IPv6泄漏与标准DNS泄漏并不完全相同,但对隐私的影响却几乎相同。任何VPN用户都应该注意的一个问题。

解决方法:

如果你的VPN提供商已经完全支持IPv6流量,那么这种泄漏对你来说应该不是问题。相反,某些不支持IPv6的VPN可以选择阻止IPv6流量。在任何情况下都建议使用支持IPv6的VPN,因为可以想象到双栈隧道仍可以绕过IPv6块。(不幸的是,请参见下面的Teredo。)不幸的是,大多数VPN都没有为IPv6进行配置,因此总是会泄漏IPv6流量。在使用商用VPN之前,请确保你知道它们是否已为IPv6做好了准备,并且仅选择完全支持该协议的一项。

问题3:透明的DNS代理

如果用户将设置更改为使用第三方服务器,则某些ISP采取了强制其自己的DNS服务器进入图片的策略。如果检测到DNS设置更改,则ISP将使用透明代理(一个单独的服务器来拦截和重定向Web流量),以确保将DNS请求发送到自己的DNS服务器。这实际上是ISP“强制” DNS泄漏并试图掩盖用户。大多数DNS泄漏检测工具将能够以与标准泄漏相同的方式检测透明DNS代理。

解决方法:

幸运的是,OpenVPN协议的最新版本提供了一种与透明DNS代理作斗争的简便方法。首先,找到你要连接的服务器的.conf或.ovpn文件(这些文件存储在本地,通常位于C:\ Program Files \ OpenVPN \ config中;有关更多详细信息,请参见OpenVPN手册),在文本编辑器(如记事本)并添加以下行:

外部DNS

较旧版本的OpenVPN的用户应更新到最新的OpenVPN版本。如果你的VPN提供商不支持此功能,则可能是时候寻找较新的VPN了。除了OpenVPN修复程序外,许多性能更好的VPN客户端还将内置自己的配置,以对抗透明的DNS代理。有关更多详细信息,请参考你特定的VPN支持。

问题4:Windows 8、8.1或10的不安全“功能”
从8开始的Windows操作系统引入了“智能多宿主名称解析”功能,旨在提高Web浏览速度。这会将所有DNS请求发送到所有可用的DNS服务器。最初,仅当收藏夹(通常是ISP自己的服务器或用户设置的服务器)无法响应时,这才会接受来自非标准DNS服务器的响应。这对VPN用户来说已经很糟糕了,因为它大大增加了DNS泄漏的可能性,但是从Windows 10开始,默认情况下,此功能将接受来自响应速度最快的DNS服务器的响应。这不仅具有相同的DNS泄漏问题,而且使用户容易遭受DNS欺骗攻击。

解决方法:

这也许是最难解决的DNS泄漏,尤其是在Windows 10中,因为它是Windows的内置部分,几乎不可能更改。对于使用OpenVPN协议的 VPN用户,免费提供的开源插件(在此处可用)可能是最好,最可靠的解决方案。

除非你使用Windows Home Edition,否则可以在Windows的本地组策略编辑器中手动关闭“智能多宿主名称解析”。在这种情况下,Microsoft根本不允许你选择关闭此功能。即使你能够以这种方式关闭它,Windows仍会在第一个服务器无法响应的情况下将请求发送到所有可用服务器。强烈建议使用OpenVPN插件来完全解决此问题。

也可以在此处查看US-CERT的指南。智能多宿主名称解析具有与之相关的重大安全问题,因此政府机构对此主题发出了自己的警报。

问题五:Teredo

Teredo是Microsoft改善IPv4和IPv6兼容性的技术,并且是Windows操作系统的内置功能。对于某些人来说,这是一项必不可少的过渡技术,它允许IPv4和IPv6并存而不会出现问题,从而可以在v4连接上发送,接收和理解v6地址。对于VPN用户,更重要的是一个明显的安全漏洞。由于Teredo是隧道协议,因此它通常可以优先于VPN自己的加密隧道,从而绕过它,从而导致DNS泄漏。

解决方法:

幸运的是,Teredo是一项很容易从Windows内部禁用的功能。打开命令提示符并键入:

netsh 接口teredo设置状态已禁用

虽然在连接到某些网站或服务器或使用torrent应用程序时可能会遇到一些问题,但是对于VPN用户而言,禁用Teredo是一种更为安全的选择。还建议你在路由器或网络适配器的设置中关闭Teredo和其他IPv6选项,以确保没有流量可以绕过VPN的隧道。

防止将来的泄漏

防止DNS

VPN泄漏既然你已经测试了DNS泄漏并且可以清除,或者发现并纠正了泄漏,那么现在该着眼于最大程度地减少将来VPN引发泄漏的机会。

首先,请确保已预先执行所有上述修复程序;禁用Teredo和Smart Multi-Homed Name Resolution,确保你的VPN支持或阻止IPv6流量等。

1.将设置更改为受信任的独立DNS服务器

你的路由器或网络适配器应具有更改TCP / IP设置的方法,你可以在其中通过其IP地址指定特定的受信任DNS服务器。许多VPN提供商将拥有自己的DNS服务器,使用VPN通常会自动将你连接到这些服务器;检查你的VPN支持以获取更多信息。

如果你的VPN没有专有服务器,一种流行的替代方法是使用开放的第三方DNS服务器,例如Google Open DNS。要在Windows 10中更改DNS设置,请执行以下操作:

  • 转到控制面板
  • 点击“网络和互联网”
  • 点击“网络和共享中心”
  • 单击左侧面板上的“更改适配器设置”。
  • 右键点击你网络的图标,然后选择“属性”
  • 在打开的窗口中找到“ Internet协议版本4”;单击它,然后单击“属性”
  • 单击“使用以下DNS服务器地址”

现在,你可以输入DNS服务器的首选和备用地址。它可以是你希望使用的任何服务器,但对于Google Open DNS,首选DNS服务器应为8.8.8.8,而备用DNS服务器应为8.8.4.4。

你可能还希望更改路由器上的DNS设置-有关更多信息,请参考你的手册或对特定设备的支持。

使用防火墙或你的VPN阻止非VPN流量

某些VPN客户端将包括一项功能,该功能可自动阻止任何不通过VPN的流量-查找“ IP绑定”选项。如果你还没有VPN,请考虑从此处获取一个翻墙软件

另外,你可以将防火墙配置为仅允许通过VPN进出流量。你还可以更改Windows防火墙设置:

  • 确保你已经连接到VPN。
  • 打开网络和共享中心,并确保你可以同时看到ISP连接(应显示为“网络”)和VPN(应显示为VPN的名称)。“网络”应该是家庭网络,而你的VPN应该是公共网络。如果将它们中的任何一个设置为其他值,则需要单击它们,然后在打开的窗口中将它们设置为适当的网络类型。
  • 确保你已以计算机上的管理员身份登录并打开Windows防火墙设置(具体步骤取决于你所运行的Windows版本)。
  • 单击“高级设置”(参见图5)。
  • 在左侧面板上找到“入站规则”,然后单击它。
  • 在右侧面板的“操作”下,你应该看到“新规则…”的选项。点击这个。
  • 在新窗口中,选择“程序”,然后单击“下一步”。
  • 选择“所有程序”(或选择要阻止其非VPN流量的单个程序),然后单击“下一步”。
  • 选择“阻止连接”,然后单击“下一步”。
  • 勾选“域”和“私人”,但要确保未勾选“公共”。点击下一步。
  • 你应该回到Windows防火墙的“高级设置”菜单;找到“出站规则”,然后重复步骤6到10。

定期执行DNS泄漏测试

请参阅上面的“如何确定我的VPN是否存在DNS泄漏?”部分。预防措施并非铁定,重要的是要经常检查所有预防措施是否仍然有效。

考虑VPN“监控”软件

这可能会在现有VPN订阅的基础上增加额外的费用,但是能够实时监视VPN流量的功能使你可以一目了然地查看DNS检查到错误的服务器。一些VPN监视产品还提供了其他自动工具来修复DNS泄漏。

必要时更改你的VPN

你需要最大程度的隐私权。理想的VPN将具有内置的DNS泄漏保护,完全的IPv6兼容性,对最新版本的OpenVPN或你选择的协议的支持,并具有抵消透明DNS代理的功能。尝试thebestvpn.com的深入比较和评论,以找到提供所需的一切以使浏览数据保持私密性的VPN。

参与讨论

2000
  Subscribe  
提醒
error: