Provoz na eth0 neznamená, že tunel VPN uniká
Veřejné adresy na fyzickém adaptéru jsou obvykle vlastní obálkou tunelu. Porovnejte rozhraní a potom se zeptejte jádra, které zařízení zvolí.
Vidět veřejné adresy na eth0, zatímco je tunel zapnutý, působí jako důkaz, že něco uniklo. Obvykle je to naopak: vlastní pakety tunelu musí projít tímto adaptérem, aby se dostaly na server, a vypadají jako běžné toky UDP nebo TCP. Vnitřní paket se objeví jen na zařízení tunelu. Rozlišit obojí znamená číst obálku, ne věřit počtu bajtů.
Každý paket tunelu přesto přechází drát
Tunel je rozhraní, ne drát. Klient vezme vnitřní paket, zabalí ho a výsledek pošle na adresu a port serveru z profilu. Na fyzickém adaptéru vidíte obal; na zařízení tunelu vidíte to, co bylo zabaleno.
V režimu UDP je vnější tok jediná dvojice adresy a portu v každém směru, a proto zdravý tunel vypadá na eth0 téměř nudně. Právě tuto jedinou dvojici je třeba hledat nejdřív.
Snímejte vždy jen jedno rozhraní
Snímejte vždy jen jedno rozhraní, když chcete porovnávat počty. Pseudo-rozhraní any sbírá všechna zařízení najednou, takže předávaný paket se objeví na vstupu i výstupu a lokálně vytvořený se objeví dvakrát ve dvou různých podobách. Stejné počty paketů při nestejných počtech bajtů jsou normální, protože obal je větší než to, co nese. ARP, DHCP a oznámení směrovače IPv6 patří na místní spoj a o vaší aplikaci nic neříkají.
sudo tcpdump -i eth0 -n host 203.0.113.10 and udp port 1194Nahraďte adresu a port vlastními hodnotami z profilu. Pokud je tento tok stálý, tunel něco nese.
Zeptejte se jádra, které zařízení zvolí
Zeptejte se jádra, které zařízení by zvolilo, a potom to potvrďte na drátu. Hledání v routovací tabulce je rozhodnutí a záznam je důkaz, že se rozhodnutí dodrželo. Odpovídají na různé otázky a chcete obojí.
ip route get 1.1.1.1
ip -6 route get 2606:4700:4700::1111Rozdělený výsledek je běžný nález: IPv4 jde do tunelu a IPv6 jde na fyzický adaptér, protože profil protlačil jen trasy IPv4. To je skutečný únik a v záznamu pouze IPv4 je neviditelný. Filtrujte IPv6 a sledujte adresy, které nejsou server a nejsou link-local.
Spusťte obě hledání před připojením a po něm, abyste viděli, co klient skutečně změnil. Rozdíl mezi oběma běhy je skutečný efekt klienta.
Když je záznam opravdu únik
Někdy záznam říká pravdu. Užší trasa, která posílá jeden prefix mimo tunel, podsíť, kterou klient dostal za úkol vyloučit, nebo povolení ve firewallu, které běží před politikou tunelu, mohou dostat provoz na drát v otevřené podobě. Pravidlo, které odpovídá skupině procesů, také může být záměrnou výjimkou. Přečtěte si jeho rozhraní a rozsah cíle, než to nazvete závadou.
Opravte trasu nebo výjimku, ne firewall. Potom znovu snižte z nového připojení a zkontrolujte IPv4 a IPv6 zvlášť, protože oprava jednoho nic neříká o druhém. Příručka tcpdump popisuje selektory rozhraní a směru použité výše.