Spustite klienta OpenVPN na počítači, na ktorom pracujete cez SSH, a uprostred príkazu relácia zamrzne. Tunel hlási pripojenie, hostiteľ sa cez neho dostane na internet a vaše stlačenia klávesov stále prichádzajú, hoci naspäť nič nejde. Nezmenil sa tunel: zmenila sa návratová cesta pre pakety adresované vám, ktorá teraz zodpovedá novej predvolenej trase a vstupuje do tunela, ktorý vzdialená brána na cestu k vášmu stolu nepoužije.

Čo redirect-gateway v skutočnosti nainštaluje

Vo svojej forme def1 pridáva redirect-gateway položky 0.0.0.0/1 a 128.0.0.0/1 namiesto prepísania predvolenej trasy. Tieto dve polovice pokrývajú celý adresný priestor a obe zostávajú dlhšími prefixmi než 0.0.0.0/0, takže každý cieľ bez konkrétnejšej zhody teraz ide do tunela. To je mechanizmus, ktorý si treba zapamätať, pretože každá oprava nižšie funguje inštaláciou konkrétnejšej zhody.

Vaša administratívna adresa je jedným z tých cieľov.

Server VPN preposiela prevádzku svojich klientov do internetu. Nemá trasu pre verejnú adresu, z ktorej sa pripájate, ani dôvod považovať tie pakety za niečo iné než prevádzku prichádzajúcu od klienta, a preto ich zahodí. Požiadavka, ktorú ste poslali, však napriek tomu dorazila k hostiteľovi, a práve preto relácia vyzerá živá len na jednej strane.

ip route show table main | head -n 20
ip route get 198.51.100.23

Nájdite svoju zdrojovú adresu a cestu pred tunelom

Na serveri vypíšte nadviazané SSH spojenie a poznamenajte si adresu partnera, z ktorej prišlo. Práve túto adresu musí vaša návratová trasa pokryť, a nie vždy je to to, čo si myslíte: preskakovací hostiteľ, brána NAT alebo operátorský prekladač adries môže dosadiť iný zdroj.

Potom nájdite fyzickú bránu a rozhranie, ktoré prenášali prevádzku pred spustením tunela. V usporiadaní def1 je predvolená trasa stále prítomná pod polpredvolenými trasami, takže informácia je dostupná, hoci čítanie dlhej smerovacej tabuľky od oka zvádza k chybám.

Zapíšte obe hodnoty a názov rozhrania spolu, pretože trasa, ktorú sa chystáte pridať, potrebuje všetky tri. Ak hostiteľ používal pravidlo smerovania podľa politiky na výber svojho uplinku, obyčajná trasa sa nemusí vôbec zohľadniť, a táto možnosť mení opravu.

Pripnite trasu k hostiteľovi, ktorá prekoná polpredvolené trasy

Trasa /32 je dlhšia než ktorákoľvek polpredvolená trasa, takže odpovede na vašu adresu ju uprednostnia pred tunelom. Ďalší skok je brána spred tunela a zariadením je fyzické rozhranie, čo udržiava paket na ceste, ktorú používal pred vznikom tunela.

ip route add 198.51.100.23/32 via 203.0.113.1 dev eth0

Overte to vyhľadaním, nie prezeraním tabuľky: odpoveď musí uvádzať eth0 a bránu, nikdy tun0.

OpenVPN už pridáva trasu k hostiteľovi pre vlastnú adresu servera VPN z rovnakého dôvodu, takže vzor je známy a administratívna adresa je jednoducho ďalšia výnimka. Nesiahajte po route-nopull, aby ste to opravili, pretože zahadzuje trasové položky posielané tunelom, ktoré potrebuje, vrátane vzdialenej siete a možností DNS.

Zabezpečte, aby to prežilo opätovné pripojenie

Trasa pridaná ručne zmizne, keď sa klient znova pripojí a nainštaluje svoje vlastné, čím sa z opravy stane opakovaný výpadok. Pripevnite príkaz na niečo, čo sa spúšťa po nainštalovaní trás.

Skript route-up aj háčik pre-up správcu siete fungujú, a spoľahlivou kontrolou je opätovné pripojenie nasledované rovnakým vyhľadaním.

V systéme Windows je ekvivalentom trvalá trasa pridaná s -p, ktorá prežije reštarty, no po zmene siete stále musí ukazovať na správnu bránu. Nech je platforma akákoľvek, napíšte dôvod vedľa trasy: nasledujúci administrátor musí vedieť, že existuje na ochranu relácie správy, a nie preto, že to vyžadoval návrh siete.

Keď pripnutá trasa ešte nestačí

Filtrovanie spätnej cesty môže zahodiť paket, ktorý príde jedným rozhraním a odíde iným, čo je presne to, čo pripnutá trasa vytvára. Pred vypnutím čohokoľvek globálne skontrolujte účinnú hodnotu rp_filter a radšej opravte asymetriu, než by ste kontrolu vypínali. Platí nastavenie pre rozhranie a voľný režim často asymetriu len zaznamená, namiesto toho aby paket zahodil. Prečítajte si obe, kým usúdite, že na vine je filter.

Hostitelia so smerovaním podľa politiky potrebujú pravidlo aj trasu, pretože databáza pravidiel vyberá tabuľku skôr, než sa z nej prečíta trasa. Trasa v hlavnej tabuľke je pre tok, ktorý zodpovedá pravidlu odkazujúcemu na inú tabuľku, neviditeľná. Prečítajte si pravidlá, kým čokoľvek pridáte do main. Ak pravidlo už pokrýva prevádzku správy, výnimka patrí do tabuľky tohto pravidla.

Kým testujete, nechajte otvorenú konzolu mimo hlavného kanála a pred odpojením tej, ktorú používate, to overte z druhého prihlásenia. Trasa, ktorá pošle vašu vlastnú prevádzku správy do tunela, preruší spojenie, cez ktoré ju opravujete. Dostať sa potom späť znamená sériovú konzolu alebo záchranné zavedenie, čo je zlá výmena za vynechaný krok overenia.

Súvisiace články