DNS泄漏(原因和修复)

什么是DNS泄漏浏览器使用域名系统(DNS)桥接Internet IP地址(数字)和网站域名(单词)之间的差距.

输入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将您连接到何处。互联网窥探者(政府或犯罪分子)无法看到任何内容,因为它已加密.

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

这是一个坏消息,因为它破坏了使用VPN的目的。您的网络流量内容仍处于隐藏状态(通过VPN加密),但是最重要的匿名部分-您的位置和浏览数据-不受保护,很可能由ISP记录.

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

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

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

  1. 输入 ipleak.net 进入浏览器的地址栏.
  2. 网页加载后,测试会自动开始,并且会显示一个IP地址.
  3. 如果您看到的地址是您的IP地址并显示了您的位置,并且您正在使用VPN,则表明您存在DNS泄漏。如果显示您的VPN的IP地址,则表明该VPN正常运行.

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

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

您的IP地址2

图1

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

您的IP地址

图2

对于大多数用户而言,在继续浏览其他站点之前执行此检查就足够了。对于某些用户来说,这不是一个完美的解决方案,因为它要求您连接到互联网并发送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泄漏。.

自由

图3

如果您发现您的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被IPv6替换(非常缓慢).

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请求,则大多数用户将不知道他们是在发出IPv4还是IPv6请求.

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

  • HideMyAss
  • IPVanish
  • 阿斯特里尔
  • ExpressVPN
  • 强VPN
  • PureVPN
  • 空中VPN
  • 隧道熊
  • ProXPN
  • 热点盾牌精英

尽管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设置,请执行以下操作:

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

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

IPV 4

图4

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

2.使用防火墙或您的VPN阻止非VPN流量

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

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

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

视窗

图5

3.定期执行DNS泄漏测试

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

4.考虑VPN“监控”软件

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

5.必要时更改您的VPN

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

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me