Prihlásite sa cez SSH na build hostiteľa, spustíte na ňom VPN klienta a relácia prestane odpovedať. Nič nespadlo a nič nevyzerá nesprávne nakonfigurované v tom zrejmom zmysle. Klient nainštaloval predvolenú trasu, takže odpovede na váš pracovný počítač teraz odchádzajú tunelom, kde adresa vášho pracovného počítača nie je smerovateľná. Zaujímavé je, že tento výsledok bol predvídateľný, a oprava je jedna trasa zapísaná pred spustením klienta. Predpokladajme server s jednou sieťovou kartou, bránu 192.0.2.254 a správcu, ktorý sa pripája z 203.0.113.9.

Zaznamenajte cestu pred začiatkom

ip route show default uvádza aktuálnu bránu a rozhranie, zatiaľ čo ip route get 203.0.113.9 ukazuje, ktoré rozhranie a zdrojovú adresu by jadro použilo pre vašu reláciu. Uložte oba výstupy. Po zdvihnutí tunela by tieto dva príkazy mali stále opisovať fyzickú cestu, a ak opisujú tunel, relácia už žije z požičaného času.

Dôležité je už nadviazané spojenie, preto neoverujte len novým prihlásením. Nová relácia môže krátko uspieť vďaka stavu, ktorý tá stará už nemá.

Pripnite adresu v konfigurácii samotného klienta

Trasa pridaná ručne zmizne pri reštarte a preteká sa s vlastnými aktualizáciami tabuľky klienta, preto výnimku vložte tam, kde sa tabuľka spravuje. V OpenVPN sa kľúčové slovo net_gateway preloží na bránu, ktorá existovala pred tunelom, takže route 203.0.113.9 255.255.255.255 net_gateway ponechá presne jednu adresu mimo nej. WireGuard potrebuje iný prístup, pretože wg-quick spravuje trasy sám: nastavte Table = off a pridajte výnimku do PostUp, s prislúchajúcim PostDown, ktorý ju odstráni. Obe formy vyjadrujú rovnaký zámer a obe obmedzujú výnimku na jednu adresu namiesto oslabenia tunela pre všetko.

Pre IPv6 berie tá istá myšlienka prefix jedného hostiteľa a prípad zabaleného transportu stojí za zapamätanie: ak vonkajšie spojenie samotného tunela žije na pevnej adrese, táto adresa musí zostať mimo tunela, ktorý nesie, inak klient smeruje svoj vlastný transport do seba.

Alebo vyberte hlavnú tabuľku z rovnice

Keď si niekoľko služieb na hostiteľovi musí zachovať svoju obvyklú cestu, prestaňte upravovať hlavnú tabuľku a dajte klientovi jeho vlastnú. Sieťový menný priestor s párom veth to robí čisto: predvolená trasa klienta žije v inom zásobníku a tunel používajú len procesy spustené v ňom. Politické smerovanie sa dostane na podobné miesto pre jeden cieľ, keď príslušnú prevádzku pošle do vyhradenej tabuľky, ktorej predvolená trasa stále ukazuje na fyzickú bránu. Oba prístupy nechávajú hlavnú tabuľku hostiteľa bez novej predvolenej trasy, a to je vlastnosť, ktorá drží SSH v odpovedaní.

Oboje je viac mechaniky ako jedna trasa k hostiteľovi a oboje sa vyplatí, keď musí tunel prežiť viac ako jedna vec na stroji.

Počítajte s tým, že pripnutie môže zlyhať

Trasa viazaná na vašu aktuálnu verejnú adresu sa zlomí vo chvíli, keď vám ju poskytovateľ pridelí znova. Vzdialený server potom potrebuje cestu, ktorá na tejto adrese nezávisí: konzolu, druhé rozhranie na správu alebo jump host, ktorý zostane mimo tunela.

Dve poistky stoja desať minút. Watchdog, ktorý zastaví klienta, ak sa do niekoľkých minút neobjaví potvrdzovacie prihlásenie, premení uzamknutie na oneskorenie, a druhá SSH relácia držaná počas zmeny otvorená dokazuje, že výnimka funguje, kým je tunel hore. Samotné keepalives tu nepomôžu, pretože cesta zmizla, namiesto toho aby bola nečinná; len uľahčujú postrehnutie smrti.

Overujte v poradí, na ktorom záleží

Pripojte tunel, potvrďte, že trasa k vašej adrese stále odchádza fyzickou bránou, a potom otvorte novú reláciu. Ak nová relácia funguje a stará napriek tomu umrie, príčinou je sledovanie spojení alebo stavový firewall, nie smerovanie, čo je iná oprava.

Zapíšte pripnutú adresu a príkaz, ktorý ju preukázal, do záznamu o zmenách. Ďalší človek, ktorý na tom hostiteľovi spustí klienta, bude potrebovať oboje, a adresa sa dovtedy mohla zmeniť.

Súvisiace články