Jak ověřit, zda linuxový VPN tunel skutečně běží
Příznaky rozhraní, vyhledávání tras, tabulka 220 a časové značky handshake odpovídají na různé otázky. Každý krok skriptu podmiňte testem, který prokazuje jeho předpoklad.
Cron restartuje každých deset minut dokonale zdravý VPN a stejná úloha nechá mrtvý tunel běžet celý týden. Obě selhání pramení z toho, že se «běží» bere jako jediný fakt, i když je to nejméně čtyři. Zařízení může být administrativně zapnuté, správně směrované, plně šifrované a přesto nepřenášet nic užitečného. Nejdřív pozorování oddělte a kontrola se téměř napíše sama.
Příznaky spoje popisují zařízení, ne cestu
Kontrola, kterou všichni kopírují, hledá hardwarovou adresu samých nul. Ten trik v některých ovladačích oddělí skutečné rozhraní od zástupného a ve zbytku neprokáže nic, protože zařízení tun nemá vůbec MAC, který by hlásilo. ip -brief link show tun0 místo toho dává příznaky: UP znamená, že správce zařízení povolil, a LOWER_UP znamená, že ovladač považuje spoj za použitelný. Čteny společně říkají, že zařízení existuje a není administrativně vypnuté. Ani jeden z nich neříká, že paket má kam jít.
OpenVPN vytváří své zařízení tun dřív, než se nainstalují trasy, takže příznaky mohou vypadat dokonale, zatímco nic není směrováno. Berte je jako předpoklad, nikdy ne jako odpověď.
Zeptejte se, kam by paket šel
Vyhledání trasy odpovídá na otázku, kterou příznaky nezvládnou. ip route get 10.8.0.1 from 10.8.0.2 pojmenuje rozhraní, zdrojovou adresu a tabulku, kterou by jádro použilo, a to je přesně to, proti čemu se rozdělený tunel musí ověřovat. Bez zdrojové adresy se ptáte na něco jiného a u směrování podle zásad se odpověď může lišit podle zdroje. Je to nejlevnější poctivý test, protože se dotazuje stejných pravidel, jaká použije váš provoz.
U WireGuardu přidejte handshake. wg show vypisuje časovou značku posledního handshake pro každý protějšek a značka, která přestala postupovat, znamená, že protějšek zmizel, ať příznaky rozhraní říkají cokoli. Konfigurované rozhraní bez nedávného handshake je jednou z nejčastějších falešných pozitivit v domácím monitoringu.
Tabulka 220 vypráví příběh IPsec
strongSwan instaluje trasy pro vyjednané selektory do tabulky 220, když je instalace tras povolena. ip route list table 220 proto odděluje vyjednané od směrovaného: prázdná tabulka vedle načteného spojení znamená, že IKE a CHILD SA se zvedly, zatímco do nich žádný provoz nesměřuje. Zkontrolujte ip xfrm state vedle ní, protože vypisuje nainstalované bezpečnostní asociace a jejich koncové body.
Pastová zásada je případ, na který si dát pozor. Čeká na zajímavý provoz místo toho, aby ho směrovala, takže tabulka zůstává prázdná, dokud něco tunel nespustí.
Stav správce a stav daemona jsou různé seznamy
NetworkManager vypisuje jen spojení, která vlastní. nmcli -t -f NAME,TYPE connection show --active nevrací nic pro tunel spuštěný přímo pomocí wg-quick nebo pomocí daemona OpenVPN.
Tento rozdíl je důležitý, když se skript musí rozhodnout, kterého ze dvou správců se zeptat. Vyberte ten, který tunel na tomto hostiteli skutečně vlastní, a nevšímejte si mlčení druhého. Pokud existují oba, rozhodněte, který je směrodatný, a druhý vypněte, protože dva správci přepisující trasy na jednom rozhraní vytvářejí poruchy, které nikdo nedokáže zopakovat. Chybějící záznam je informace o správci, ne o tunelu.
Podmiňte další krok testem, který potřebuje
Dotazování na port UDP neprokazuje nic o připravenosti, protože UDP nemá handshake a nc -u uspěje, jakmile paket odejde. Testujte, co další krok skutečně spotřebovává: TCP spojení na přesměrovaný port, požadavek na hostitele uvnitř tunelu, jméno, které se překládá jen tam. Ohraničte čekání časovým limitem a počtem pokusů a hlasitě selhejte, když vyprší.
Hooky jsou lepší než dotazování, když je klient nabízí. --up a --down skripty OpenVPN běží po změně stavu rozhraní, což závod zcela odstraní, ale běží s oprávněními, která daemon zachoval. Pokud OpenVPN sestoupil na neprivilegovaný účet pomocí user a group, hook běží jako tento účet. Restart systémové služby pak vyžaduje sudo, aby povolil právě ten příkaz. Předejte opakování správci služeb, ne cron smyčce: omezená politika restartu s limitem spuštění odhalí rozbitý tunel, zatímco neomezená smyčka ho skrývá neomezeně.