Ako overiť, či linuxový VPN tunel skutočne beží
Príznaky rozhrania, vyhľadávania trás, tabuľka 220 a časové značky handshake odpovedajú na rôzne otázky. Každý krok skriptu podmieňte testom, ktorý preukazuje jeho predpoklad.
Cron každých desať minút reštartuje dokonale zdravý VPN a tá istá úloha nechá mŕtvy tunel bežať celý týždeň. Obe zlyhania pramenia z toho, že sa «beží» berie ako jediný fakt, hoci je to najmenej štyri. Zariadenie môže byť administratívne zapnuté, správne smerované, úplne šifrované a napriek tomu neprenášať nič užitočné. Najprv pozorovania oddeľte a kontrola sa takmer napíše sama.
Príznaky spoja opisujú zariadenie, nie cestu
Kontrola, ktorú všetci kopírujú, hľadá hardvérovú adresu samých núl. Ten trik v niektorých ovládačoch oddelí skutočné rozhranie od zástupného a vo zvyšku nepreukáže nič, pretože zariadenie tun nemá vôbec MAC, ktorý by hlásilo. ip -brief link show tun0 namiesto toho dáva príznaky: UP znamená, že správca zariadenie povolil, a LOWER_UP znamená, že ovládač považuje spoj za použiteľný. Čítané spolu hovoria, že zariadenie existuje a nie je administratívne vypnuté. Ani jeden z nich nehovorí, že paket má kam ísť.
OpenVPN vytvára svoje zariadenie tun skôr, než sa nainštalujú trasy, takže príznaky môžu vyzerať dokonale, zatiaľ čo nič nie je smerované. Berte ich ako predpoklad, nikdy nie ako odpoveď.
Spýtajte sa, kam by paket šiel
Vyhľadanie trasy odpovedá na otázku, ktorú príznaky nezvládnu. ip route get 10.8.0.1 from 10.8.0.2 pomenúva rozhranie, zdrojovú adresu a tabuľku, ktorú by jadro použilo, a to je presne to, proti čomu sa rozdelený tunel musí overovať. Bez zdrojovej adresy sa pýtate na niečo iné a pri smerovaní podľa zásad sa odpoveď môže líšiť podľa zdroja. Je to najlacnejší poctivý test, pretože sa dopytuje na tie isté pravidlá, aké použije vaša prevádzka.
Pri WireGuarde pridajte handshake. wg show vypisuje časovú značku posledného handshake pre každý peer a značka, ktorá prestala postupovať, znamená, že peer zmizol, nech príznaky rozhrania hovoria čokoľvek. Nakonfigurované rozhranie bez nedávneho handshake je jednou z najčastejších falošných pozitív v domácom monitoringu.
Tabuľka 220 rozpráva príbeh IPsec
strongSwan inštaluje trasy pre vyjednané selektory do tabuľky 220, keď je inštalácia trás povolená. ip route list table 220 preto oddeľuje vyjednané od smerovaného: prázdna tabuľka vedľa načítaného spojenia znamená, že IKE a CHILD SA sa zdvihli, zatiaľ čo do nich žiadna prevádzka nesmeruje. Skontrolujte ip xfrm state vedľa nej, pretože vypisuje nainštalované bezpečnostné asociácie a ich koncové body.
Politika pasce je prípad, na ktorý si treba dávať pozor. Čaká na zaujímavú prevádzku namiesto toho, aby ju smerovala, takže tabuľka zostáva prázdna, kým niečo tunel nespustí.
Stav správcu a stav démona sú rôzne zoznamy
NetworkManager vypisuje len spojenia, ktoré vlastní. nmcli -t -f NAME,TYPE connection show --active nevracia nič pre tunel spustený priamo pomocou wg-quick alebo démonom OpenVPN.
Tento rozdiel je dôležitý, keď sa skript musí rozhodnúť, ktorého z dvoch správcov sa opýtať. Vyberte toho, ktorý tunel na tomto hostiteľovi skutočne vlastní, a nevšímajte si mlčanie druhého. Ak existujú oba, rozhodnite, ktorý je záväzný, a druhý vypnite, pretože dvaja správcovia prepisujúci trasy na jednom rozhraní vytvárajú poruchy, ktoré nikto nedokáže zopakovať. Chýbajúci záznam je informácia o správcovi, nie o tuneli.
Podmieňte ďalší krok testom, ktorý potrebuje
Dopytovanie portu UDP nepreukazuje nič o pripravenosti, pretože UDP nemá handshake a nc -u uspeje, hneď ako paket odíde. Testujte, čo ďalší krok skutočne spotrebúva: TCP spojenie na presmerovaný port, požiadavku na hostiteľa vnútri tunela, meno, ktoré sa prekladá len tam. Ohraničte čakanie časovým limitom a počtom pokusov a hlasno zlyhajte, keď vypršia.
Hooky sú lepšie ako dopytovanie, keď ich klient ponúka. --up a --down skripty OpenVPN bežia po zmene stavu rozhrania, čo preteky úplne odstraňuje, ale bežia s privilégiami, ktoré démon zachoval. Ak OpenVPN klesol na neprivilegovaný účet cez user a group, hook beží ako tento účet. Reštart systémovej služby potom vyžaduje sudo, aby povolil presne ten príkaz. Zverte opakovanie správcovi služieb, nie cron slučke: obmedzená politika reštartu s limitom spustení odhalí pokazený tunel, zatiaľ čo neobmedzená slučka ho skrýva neobmedzene.