Linux 上的 Surfshark VPN 泄漏

Linux 上的 Surfshark VPN 泄漏

我今天设置了 surfshark vpn,但似乎亚马逊能够检测到它。

您的设备使用 VPN 或代理服务连接到互联网。请禁用它并重试。如需更多帮助,请访问 amazon.com/pv-vpn。

我联系了客户支持并手动将 resolv.conf 点更改为 surfshark 服务器,但仍然无法正常工作。

如何检测泄漏并配置我的 VPN?

更新: 看来我的 dns 泄漏了。我正在尝试遵循这个邮政修复我的网络,但尚未成功。

mengo@mengo-desktop:~$ grep hosts /etc/nsswitch.conf
hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname

mengo@mengo-desktop:~$ head /etc/resolv.conf 
nameserver 162.252.172.57
nameserver 149.154.159.92
nameserver 162.252.172.57
nameserver 149.154.159.92
nameserver 127.0.0.53

mengo@mengo-desktop:~$ head /etc/resolvconf/interface-order 
# interface-order(5)
lo.inet6
lo.inet
lo.@(dnsmasq|pdnsd)
lo.!(pdns|pdns-recursor)
lo
tun*
tap*
hso*
vpn*

mengo@mengo-desktop:~$ cat /etc/NetworkManager/NetworkManager.conf 
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

更新2:

mengo@mengo-desktop:~$ resolvectl status
Global
...
   Current DNS Server: 162.252.172.57      
         DNS Servers: 162.252.172.57      
                      149.154.159.92
...
// This entry is shown when vpn is active
Link 3 (tun0)
      Current Scopes: none
DefaultRoute setting: no  
       LLMNR setting: yes 
MulticastDNS setting: no  
  DNSOverTLS setting: no  
      DNSSEC setting: no  
    DNSSEC supported: no
Link 2 (enp0s25)
...
  Current DNS Server: 192.168.1.1
         DNS Servers: 192.168.1.1

// connect vpn will create a new file `tun0.openvpn` which contains their server address
mengo@mengo-desktop:~$ ls /run/resolvconf/interface/
systemd-resolved  tun0.openvpn
mengo@mengo-desktop:~$ cat /run/resolvconf/interface/tun0.openvpn 
nameserver 162.252.172.57
nameserver 149.154.159.92
// I don't see vpn related entry here
mengo@mengo-desktop:~$ nmcli c show tun0 | grep -i dns
connection.mdns:                        -1 (default)
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      100
ipv4.ignore-auto-dns:                   no
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      100
ipv6.ignore-auto-dns:                   no
// DNSOverTLS seems enabled by default
mengo@mengo-desktop:~$ cat /etc/systemd/resolved.conf | grep DNSOverTLS
#DNSOverTLS=no

更新3 似乎有些数据包在 VPN 启动或关闭时记录到控制台。这种情况会定期发生。

sudo tcpdump -i any -s0 -Knpvv host 192.168.1.1 and \(tcp port 53 or udp port 53\)
18:00:28.037630 IP (tos 0x0, ttl 64, id 35268, offset 0, flags [DF], proto UDP (17), length 86)
    192.168.1.24.42322 > 192.168.1.1.53: 62333+ [1au] AAAA? connectivity-check.ubuntu.com. ar: . OPT UDPsize=512 (58)
18:00:28.049945 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 147)
    192.168.1.1.53 > 192.168.1.24.42322: 62333 q: AAAA? connectivity-check.ubuntu.com. 0/1/1 ns: ubuntu.com. SOA ns1.canonical.com. hostmaster.canonical.com. 2018053142 10800 3600 604800 3600 ar: . OPT UDPsize=512 (119)
18:01:56.945889 IP (tos 0x0, ttl 64, id 37261, offset 0, flags [DF], proto UDP (17), length 86)
    192.168.1.24.50380 > 192.168.1.1.53: 11200+ [1au] A? connectivity-check.ubuntu.com. ar: . OPT UDPsize=512 (58)
18:01:56.958968 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 118)
    192.168.1.1.53 > 192.168.1.24.50380: 11200 q: A? connectivity-check.ubuntu.com. 2/0/1 connectivity-check.ubuntu.com. A 35.222.85.5, connectivity-check.ubuntu.com. A 35.224.99.156 ar: . OPT UDPsize=512 (90)

操作系统:Linux Mint 20。

答案1

您当前有 5 个nameserver条目/etc/resolv.conf,其中 2 个是重复的。通常支持的最大条目数为 3 个。这可能不是泄漏的原因,但它可能会使您的 DNS 解析以未定义的方式运行,从而很难弄清楚发生了什么。或者额外的条目可能会被忽略...但是系统会使用前 3 个还是后 3 个?

您还将 127.0.0.53 列为最后一个条目,这表明systemd-resolved.service可能存在;请运行systemctl status systemd-resolved以查看它是否正在运行,如果正在运行,resolvectl status请查看它配置为使用哪些 DNS 服务器;它的配置可能与 不同/etc/resolv.conf

DNS 泄漏可能与亚马逊能够检测到您的 VPN 无关。正如 MariusMatutiae 评论的那样,他们可能只是检测到连接尝试来自已知 SurfShark 退出点的 IP 地址,并因此拒绝连接。

由于/etc/resolvconf/interface-order存在于您的系统上,这意味着resolvconf可能已安装。如果确实如此,ls /run/resolvconf/interface则应显示一个或多个包含通过 DHCP 和/或其他配置方法接收的 DNS 设置的文件。如果激活 SurfShark 会使其中出现另一个文件,则 SurfShark VPN 客户端可能会绕过 NetworkManager,并且您可能需要调整resolvconf设置以使其在 VPN 处于活动状态时仅使用 SurfShark 的设置。

如果只有一个文件以 命名NetworkManager/run/resolvconf/interface/则 NetworkManager 负责全面控制操作系统级别的 DNS 配置。在这种情况下,一些诊断步骤将是:

  • 运行nmcli c show以查看 NetworkManager 已知的所有网络连接的名称。 SurfShark VPN 是否列在其中?

  • 如果列出了 SurfShark,请记下其列出的名称,然后激活 SurfShark VPN 并运行nmcli c show "place the actual connection name of SurfShark VPN here" | grep -i dns。如果 SurfShark VPN 连接已为 NetworkManager 提供任何 DNS 服务器信息,则此命令应列出它。

如果这两种方法都不会显示与 SurfShark 相关的任何 DNS 设置,您应该检查当您启用/禁用 SurfShark VPN 时,其内容/etc/resolv.conf和/或输出是否会发生变化。 resolvectl statusVPN 客户端可能直接操纵其中之一或两者。

如果没有与在任何地方启用/禁用 VPN 相关的明显 DNS 设置更改,SurfShark VPN 客户端可能会将内核级别的任何 DNS 流量重定向到 SurfShark 服务器。它可能在本地可见,也可能不可见,具体取决于它的完成方式;在最棘手的情况下,您可能需要外部流量嗅探器来确认 DNS 流量实际上已重定向到 SurfShark。

另请注意,现代 Web 浏览器可能使用 DNS-over-HTTPS 或 DNS-over-TLS。这些技术将绕过整个操作系统级主机名解析基础设施,并与 DoH 或 DoT 提供商建立直接加密连接。这可能是您的 DNS 泄漏测试检测到的内容。

(如果在 中启用了systemd-resolved该设置,也可以使用 DNS-over-TLS 。)DNSOverTLS/etc/systemd/resolved.conf

相关内容