Pokrenite OpenVPN klijent na mašini na kojoj radite preko SSH, i usred komande sesija se zamrzne. Tunel prijavljuje da je povezan, host može da dosegne internet kroz njega, a vaši pritisci na tastaturi i dalje stižu dok ništa ne dolazi nazad. Ono što se promenilo nije tunel: to je povratna putanja za pakete upućene vama, koja sada odgovara novoj podrazumevanoj ruti i ulazi u tunel koji udaljeni gejtvej neće koristiti da dosegne vaš sto.

Šta redirect-gateway zapravo instalira

U svom obliku def1, redirect-gateway dodaje 0.0.0.0/1 i 128.0.0.0/1 umesto da prepiše podrazumevanu rutu. Te dve polovine pokrivaju ceo adresni prostor, a obe ostaju duži prefiksi od 0.0.0.0/0, pa svako odredište bez konkretnijeg poklapanja sada ide u tunel. To je mehanizam koji treba upamtiti, jer svaki popravak ispod radi tako što instalira konkretnije poklapanje.

Vaša administrativna adresa je jedno od tih odredišta.

VPN server prosleđuje saobraćaj svojih klijenata ka internetu. On nema rutu za javnu adresu sa koje se povezujete, niti razlog da te pakete tretira drukčije nego kao saobraćaj koji dolazi od klijenta, pa ih odbacuje. U međuvremenu je zahtev koji ste poslali ipak stigao do hosta, zbog čega sesija izgleda živa samo sa jedne strane.

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

Nađite svoju izvornu adresu i putanju pre tunela

Na serveru izlistajte uspostavljenu SSH vezu i zabeležite adresu peera sa koje je došla. Ta adresa je ono što vaša povratna ruta mora pokriti, a to nije uvek ono što mislite: skakački host, NAT gejtvej ili operaterov prevodilac adresa može da podmetne drugi izvor.

Zatim nađite fizički gejtvej i interfejs koji su nosili saobraćaj pre nego što je tunel pokrenut. U rasporedu def1 podrazumevana ruta je i dalje prisutna ispod polupodrazumevanih ruta, pa su informacije dostupne, iako čitanje dugačke tabele ruta na oko poziva na greške.

Zapišite obe vrednosti i ime interfejsa zajedno, jer ruti koju ćete dodati trebaju sve tri. Ako je host koristio pravilo rutiranja po politici da izabere svoj ulazni link, obična ruta možda uopšte neće biti razmotrena, a ta mogućnost menja popravak.

Prikvačite rutu ka hostu koja nadjačava polupodrazumevane rute

Ruta /32 je duža od bilo koje polupodrazumevane rute, pa odgovori na vašu adresu koriste nju umesto tunela. Sledeći skok je gejtvej koji je postojao pre tunela, a uređaj je fizički interfejs, što zadržava paket na putanji koju je koristio pre nego što je tunel nastao.

ip route add 198.51.100.23/32 via 203.0.113.1 dev eth0

Proverite pretragom, a ne pregledanjem tabele: odgovor mora da navede eth0 i gejtvej, nikada tun0.

OpenVPN već dodaje rutu ka hostu za sopstvenu adresu VPN servera iz istog razloga, pa je obrazac poznat, a administrativna adresa je jednostavno još jedan izuzetak. Ne posežite za route-nopull da to popravite, jer on odbacuje gurnute rute koje tunel traži, uključujući udaljenu mrežu i DNS opcije.

Učinite da to preživi ponovno povezivanje

Ruta dodata ručno nestaje kada se klijent ponovo poveže i instalira svoje, što popravak pretvara u ponavljajući prekid. Prikačite komandu na nešto što se izvršava nakon instaliranja ruta.

Skripta route-up ili pre-up kuka mrežnog menadžera obe rade, a pouzdana provera je ponovno povezivanje praćeno istom pretragom.

Na Windowsu je ekvivalent trajna ruta dodata sa -p, koja preživljava restartovanja, ali i dalje mora da pokazuje na ispravan gejtvej posle promene mreže. Koja god platforma bila, napišite razlog pored rute: sledeći administrator treba da zna da ona postoji da zaštiti sesiju upravljanja, a ne zato što je mrežni dizajn to zahtevao.

Kada prikvačena ruta još nije dovoljna

Filtriranje povratne putanje može da odbaci paket koji stiže na jednom interfejsu a odlazi na drugom, što je upravo ono što prikvačena ruta stvara. Proverite efektivnu vrednost rp_filter pre nego što bilo šta globalno isključite, i radije popravite asimetriju nego što isključite proveru. Primenjuje se podešavanje po interfejsu, a labavi režim često samo beleži asimetriju umesto da odbaci paket. Pročitajte oba pre nego što zaključite da je filter kriv.

Hostovi sa rutiranjem po politici traže i pravilo i rutu, jer baza pravila bira tabelu pre nego što se ruta u njoj razmotri. Ruta u glavnoj tabeli je nevidljiva za tok koji se poklapa sa pravilom koje upućuje na drugu tabelu. Pročitajte pravila pre nego što bilo šta dodate u main. Ako pravilo već pokriva saobraćaj upravljanja, izuzetak pripada tabeli tog pravila.

Držite otvorenu vanpojasnu konzolu dok testirate i proverite ponovo sa druge prijave pre nego što isključite onu koju koristite. Ruta koja šalje vaš sopstveni saobraćaj upravljanja u tunel prekida vezu kroz koju je popravljate. Vraćanje tada znači serijsku konzolu ili spasilačko podizanje sistema, što je loša razmena za preskočen korak provere.

Povezani članci