Vpn

Linux上的Surfshark vpn洩漏

  • April 19, 2021

我今天設置了 surfshark vpn,但似乎亞馬遜能夠檢測到它。

您的設備使用 VPN 或代理服務連接到 Internet。請禁用它並重試。如需更多幫助,請訪問 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。

您目前有 5nameserver個條目/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 的設置。

如果只有一個名為NetworkManagerin 的文件/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 status可能是 VPN 客戶端直接操作其中之一或兩者。

如果在任何地方都沒有與啟用/禁用 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

引用自:https://unix.stackexchange.com/questions/608227