技术概述:防止在切换网络接口时出现DNS泄漏

[ware_item id=33][/ware_item]

防止在切换网络接口时出现DNS泄漏


为了有效地提供用户隐私和安全性,VPN应用程序必须确保用户的DNS请求在与VPN的整个连接过程中保持私有状态。应用程序通常通过保证所有DNS请求都通过VPN隧道加密发送并由VPN提供商的DNS服务器处理来实现此目的.

为了维持这一保证,重要的是要了解在什么情况下可能发生DNS泄漏。仅考虑简单的情况(例如网络连接稳定时)是不够的。在现实世界中,网络通常是不稳定的,或者它们的配置可以更改,通常,这是发生泄漏的时间。因此,调查复杂的情况是设计防泄漏VPN应用程序过程中的关键部分.

在ExpressVPN,我们花费大量时间和精力来研究VPN应用程序可能泄漏的复杂情况。在本文的其余部分中,我们讨论一种特殊的情况,该情况我们发现了可能发生DNS泄漏的地方。我们将解释DNS泄漏的发生方式和原因,并为您提供一种自行测试泄漏的方法.

方案:网络接口切换后DNS泄漏

在网络接口之间切换是DNS泄漏可能发生的常见情况。考虑以下示例:

  • 您可以在家中使用笔记本电脑并连接到Wi-Fi
  • 您连接到VPN应用程序
  • 稍后,您插入以太网电缆

大多数VPN应用程序都不会检测到此网络配置更改。他们会继续告知您,您的隐私和安全性仍受到100%的保护,但是实际情况可能大不相同。.

在幕后,您的DNS请求可能会不断泄漏给ISP或其他第三方,您可能永远也不会意识到.

技术故障

什么时候真的可以发生?

让我们以Mac为例(不过请注意,Windows设备也会发生这种泄漏)。假设您有Wi-Fi和以太网连接。打开“系统偏好设置”应用程序,然后导航到“网络”。您将看到类似以下内容的内容:

Wi-Fi DNS泄漏

这表明您已连接到Wi-Fi和以太网,但是以太网是您的首选连接.

进一步假设您的DNS被设置为“本地” IP地址。您可以通过在以太网连接突出显示时单击“高级”来进行检查,然后导航至“ DNS”。您应该看到以下内容:

查看DNS服务器

如果“ DNS服务器”下的IP地址格式为10.x.x.x,192.168.x.x或172.16.x.x和172.31.x.x之间,则它们是“本地” IP地址。这很可能意味着您的路由器正在充当DNS服务器,因此,如果没有VPN,ISP可以看到您的所有DNS请求。如果您有这样的设置,那么您可能容易受到此DNS泄漏的影响.

请注意,即使您的DNS服务器没有本地IP地址,您仍可能容易受到DNS泄漏的攻击。在这种情况下,DNS请求可能会通过VPN隧道。但是,它们不会被路由到VPN的DNS服务器,而是被路由到其他DNS服务器,例如您的ISP或第三方DNS提供商的DNS服务器。.

如何检查是否泄漏?

最简单的方法是使用ExpressVPN的DNS泄漏工具并执行以下操作:

  • 确保拔掉以太网电缆
  • 确保您已连接到Wi-Fi网络
  • 连接您的VPN应用程序
  • 使用ExpressVPN的DNS泄漏测试仪或第三方测试仪
  • 您应该只会看到一台DNS服务器
  • 如果您使用的是ExpressVPN,那么我们的测试人员还会告诉您它是我们公认的服务器
  • 插入您的以太网电缆
  • 刷新DNS泄漏页面。如果您正在泄漏DNS,则现在将看到其他DNS服务器列表

您还可以通过使用tcpdump来检查DNS泄漏,而无需依赖我们的网页,如下所示.

首先,找到与您的以太网连接相对应的网络接口:

  • 打开终端窗口
  • 键入networksetup -listallhardwareports
  • 查找类似“硬件端口:Thunderbolt以太网”的行,例如.
  • 硬件端口:Thunderbolt以太网

  • 以太网连接的网络接口显示在“设备”旁边。在此示例中,它是en4

现在,让我们运行测试:

  • 确保拔掉以太网电缆
  • 通过Wi-Fi连接您的VPN应用程序
  • 插入您的以太网电缆
  • 打开终端窗口
  • 输入sudo tcpdump -i en4 port 53并输入密码
  • sudo为tcpdump提供捕获网络流量所需的特权
  • -我en4告诉tcpdump在以太网接口上侦听
  • 用上面发现的接口替换en4
  • 端口53是用于DNS流量的端口,因此仅显示DNS请求
  • 如果您看到任何流量,则说明DNS泄漏,例如.
  • DNS泄漏流量

    这里到底发生了什么?

    造成此泄漏的根本原因在于操作系统如何确定要使用的DNS服务器。系统使用的DNS服务器始终是与最高优先级活动网络服务相关联的DNS服务器-这对应于上图中列表顶部的绿色服务。.

    在禁用以太网的情况下,将接收您的DNS查询的服务器是与Wi-Fi服务关联的服务器,因为它现在是优先级最高的活动网络服务。连接到VPN时也是如此。为了将您的DNS流量正确发送到VPN的DNS服务器,大多数VPN提供商会将优先级最高的DNS服务器更改为自己的DNS服务器。在这种情况下,这意味着它们将更改与您的Wi-Fi网络服务关联的DNS服务器.

    当您插入以太网电缆时,以太网网络服务将跳回到活动列表的顶部,因为它现在是优先级最高的网络服务。然后,操作系统将尝试使用与该服务关联的DNS服务器进行任何DNS查找.

    许多VPN应用程序不会注意到此问题,因为您的Wi-Fi网络仍然可以正常运行,并且从未中断过。但是,尽管他们可能通过Wi-Fi网络发送加密的数据,但您的DNS请求将未加密地发送给ISP.

    如果您的VPN应用程序无法防范这种情况,那么这意味着您的DNS请求将从隧道泄漏到ISP.

    在终端中检查DNS名称服务器

    作为附带说明,您可以使用scutil命令自己调查DNS服务器的行为。要简单地查看系统使用的DNS服务器:

    • 打开终端窗口
    • 键入scutil --dns
    • 在输出的顶部,您应该看到“解析器#1”和“名称服务器”列表,例如.
    • 解析器#1名称服务器

    • 每个“名称服务器”旁边的IP地址指示系统将用于DNS请求的内容

    有兴趣了解更多吗?有问题或意见?

    我们的工程团队很乐意收到您的来信,只需给我们发送邮件至[email protected]

    技术概述:防止在切换网络接口时出现DNS泄漏
    admin Author
    Sorry! The Author has not filled his profile.