Môžu DHCP trasy poslať vašu prevádzku okolo VPN tunela?
Šifrovanie chráni pakety až po tom, čo vstúpia do tunela. O tom, ktoré vstúpia, rozhoduje výber trasy. Skontrolujte DHCP trasy, pravidlá a cestu, ktorou idú aplikácie.
Šifrovanie sa začína na hranici a tou hranicou je rozhodnutie o smerovaní, ktoré koncový bod prijme skôr, než sa akýkoľvek paket zapuzdri. Sieť, ktorá nikdy nevidí vaše kľúče, môže vášmu stroju aj tak dať trasu, ktorá sa jej páči viac než trasa tunela. Mýlia sa tu dva druhy zlyhania: čítanie paketu, ktorý už je v tuneli, a smerovanie paketu, ktorý tam nikdy nebol umiestnený.
Rozdiel je dôležitý preto, lebo druhé zlyhanie je lacnejšie zariadiť a oveľa ľahšie prehliadnuť. Prejavuje sa ako požiadavka, ktorá vyšla nesprávnym rozhraním, kým klient stále hlásil zdravé spojenie.
Dva spôsoby, akými môže sieť ovplyvniť vás
Paket, ktorý sa dostane do tunela, má obsah skrytý pred každým skokom, cez ktorý prechádza, a tá ochrana platí aj vtedy, keď vás cesta prekvapí. Paket, ktorý sa do tunela nikdy nedostane, je obyčajná požiadavka z vašej adresy, odoslaná tam, kam ukázala smerovacia tabuľka. Prvé zlyhanie potrebuje zlomenú šifru alebo kompromitovaného partnera, kým druhé potrebuje iba konfiguračnú správu, ktorej sa váš stroj rozhodol dôverovať. Práve táto asymetria je dôvod, prečo si polovica týkajúca sa smerovania zaslúži vlastnú kontrolu.
Zariadenia na ceste nepotrebujú vaše kľúče, aby ovplyvnili druhý prípad. Potrebujú len to, aby váš koncový bod prijal trasu, resolver alebo pravidlo politiky, ktoré takú vytvára.
expected: app -> tunnel device -> encapsulation -> internet
observed: app -> wlan0 -> plaintext -> internet
Odkiaľ môže trasa prísť skôr, než tunel existuje
DHCP prideľuje viac než len prenájom adresy. Voľba beztriednych statických trás môže niesť cieľové prefixy a ďalšie skoky, a RFC 3442 rozoberá bezpečnostné dôsledky nesprávnej adresy routera: prevádzku odoslanú zlým smerom, odmietnutie služby alebo pozorovateľa usadeného na ceste. Klient, ktorý tie trasy prijme predtým, než tunel vstane, môže skončiť s preferovanou cestou, ktorá nemá nič spoločné s vaším poskytovateľom.
Nič z toho nerobí vstrekovanie trás univerzálnym. Klient musí voľbu prijať, prefix musí pokryť prevádzku, na ktorej vám záleží, zvolený ďalší skok musí byť dosiahnuteľný a politika presadzovania musí paketu dovoliť vyjsť tou cestou. Odstráňte ktorúkoľvek z nich a tá istá odpoveď je neškodná. Aj preto sa dva stroje v jednej sieti môžu správať odlišne, lebo nebežia rovnakého klienta, rovnakú politiku ani rovnakú rodinu adries.
IPv6 si zaslúži vlastné kolo, pretože inzeráty routerov nesú predvolenú trasu iným kódom než voľba DHCPv4. Test, ktorý skúma len tabuľku v4, to nepokrýva.
Skontrolujte cestu, ktorú jadro skutočne vyberie
Na dopyty o trasách sa dá odpovedať, preto sa ich pýtajte namiesto usudzovania zo stavovej kontrolky. Nižšie uvedené príkazy ukazujú zvolenú trasu a zdroj pre jeden cieľ, plus pravidlá, ktoré môžu prepísať hlavnú tabuľku. Spustite ich počas pripojenia a znova po opätovnom pripojení, pretože obnovenie prenájmu môže zmeniť odpoveď.
ip route get 203.0.113.10
ip route show table all | grep -E '^(default|203\.0\.113)'
ip rule show
resolvectl query example.com
Čítajte výstup pre dve veci: rozhranie uvedené v trase a zvolenú zdrojovú adresu. Trasa tunela uvádza zariadenie tunela, uniknutá trasa uvádza fyzické, a rozdiel je viditeľný bez akéhokoľvek dešifrovania. Ak sa odpoveď medzi spusteniami mení, uschovajte oba výstupy a porovnajte pravidlá, ktoré ich vytvorili.
Nezastavujte sa pri predvolenej trase. Výnimka pre aplikáciu, prefix rozdeleného tunela alebo druhé pravidlo politiky môžu viesť konkrétny cieľ okolo tunela, kým predvolená stále ukazuje dovnútra.
Rozhodnite, kde má presadzovanie zostať
Tri podmienky rozhodujú, či presadzovanie na strane klienta stačí, alebo potrebujete niečo mimo neho. Ak klient inštaluje a bráni trasy pre každú rodinu adries, ktorú používate, tunel, ktorý vlastní predvolenú trasu, zvyčajne postačuje. Ak sa stroj musí dostať k lokálnym zdrojom, kým všetko ostatné zostáva v tuneli, tie výnimky treba vypísať a prevziať za ne zodpovednosť, nie ich nechať na to, čo ohlásila prístupová sieť. A ak platforma dokáže pripútať prevádzku k rozhraniu podľa aplikácie, toto pripútanie je silnejšia záruka než trasa, ktorú môže čokoľvek prepísať.
Čokoľvek si vyberiete, zapíšte rozhodnutie tam, kde žije konfigurácia. Pravidlo, ktoré existuje preto, lebo ho niekto napísal počas incidentu, neprežije ďalší reštart, preto držte lokálne a štartovacie výnimky úzke a zaznamenajte, prečo každá existuje.
Znova spúšťajte vyhľadávacie príkazy po každej aktualizácii klienta a každej zmene siete a porovnávajte s posledným zaznamenaným výstupom. Smerovacia tabuľka je hranica presadzovania, preto ju tak aj berte.