VPN gateway zahtijeva IP prosljeđivanje: šta provjeriti
Gateway može odgovarati na vlastitoj adresi a da ništa ne prosljeđuje između interfejsa. Provjerite prosljeđivanje po porodici, zatim povratni put.
Vaš klijent može pingati adresu gatewaya dok svaki resurs iza njega ostaje nedostupan. Taj par zapažanja opisuje host koji razgovara s vama i ruter koji ne rutira, a to su različite uloge na istoj mašini. Prosljeđivanje je prekidač između njih.
Dvije uloge su nezavisne, kao i dvije porodice adresa.
Odgovor na vlastitu adresu ne dokazuje ništa
Kada je paket adresiran na sam gateway, lokalni stek ga troši i ne donosi se nikakva odluka o prosljeđivanju. Zato uspješan ping na adresu tunela ili upravljački interfejs govori da je demon živ i tunel podignut, ali ne govori ništa o saobraćaju namijenjenom mreži iza kutije. Kernel konsultuje svoju putanju prosljeđivanja samo za pakete koji nisu adresirani na njega.
Čitajte zahtjev kao ulogu, a ne kao postavku: ovaj host mora prenositi pakete između dva interfejsa. Laptop koji samo treba dosegnuti udaljenu mrežu nikada ne preuzima tu ulogu, a site-to-site endpoint je uvijek preuzima. Takvo čitanje zahtjeva objašnjava zašto radna klijentska konfiguracija zakaže kada se premjesti na gateway.
Ista rečenica vrijedi za firewall ispred odluke o prosljeđivanju, koji ima vlastitu politiku o tome šta se smije prosljeđivati.
Provjerite svaku porodicu adresa zasebno
IPv4 prosljeđivanje je jedan prekidač, a IPv6 prosljeđivanje je drugi sa vlastitim ponašanjem po interfejsu. Uključivanje prvog ne govori ništa o drugom, a dual-stack klijent može dosegnuti polovinu mreže dok ostatak ostaje mračan. Dva klijenta različitih porodica stoga se mogu ne slagati oko istog gatewaya. Pitajte koju je porodicu koristio klijent koji ne radi prije nego uredite bilo koju postavku. Potvrdite obje prije nego zaključite da je dizajn rutiranja pogrešan.
sysctl net.ipv4.ip_forward
sysctl -a --pattern 'net.ipv6.conf.(all|default).forwarding'
nft list ruleset | head -n 40
Na mnogim distribucijama vrijednost koju čitate u vrijeme rada postavila je usluga ili konfiguracijska datoteka, pa promjena napravljena jednokratnom komandom može nestati pri ponovnom pokretanju. Pronađite datoteku koja posjeduje postavku prije nego uredite vrijednost u vrijeme rada.
Prosljeđivanje je jedan od četiri zahtjeva
Radni proslijeđeni tok zahtijeva četiri stvari odjednom: klijent mora znati da je odredište iza tunela, gateway mora imati rutu naprijed, odgovori moraju imati put nazad, a firewall mora dopustiti saobraćaj. Prevođenje izvora pripada tom dizajnu kao opcija, a ne kao pravilo, jer privatna rutirana mreža sa simetričnim putevima to ne treba, a asimetrična obično treba. Svaki od četiri zakaže nezavisno, zato popravka jednog rijetko pomjera simptom. Zapišite sva četiri prije nego promijenite bilo koji od njih.
Cloud platforme dodaju peto razmatranje. Neke na instancama provode provjere izvora i odredišta, što odbacuje proslijeđene pakete bez obzira na to kako je konfigurisan kernel gosta. Dokumentacija platforme o mrežama je tamo autoritet, a ne sysctl izlaz unutar VM-a.
Testirajte s klijenta, a ne s gatewaya
Test pokrenut u vlastitoj ljusci gatewaya ne prolazi ni kroz jedan dio putanje prosljeđivanja koju ste upravo omogućili. Generirajte saobraćaj s klijenta koji ima problem i potvrdite da doseže nešto iza gatewaya, a ne sam gateway. To je jedini test koji vježba ulogu koju ste promijenili.
Držite pravila slušalaca i pravila prosljeđivanja odvojenim u glavi i u zapisu promjena. Otvaranje VPN porta pušta klijente u uslugu; ne daje im ništa na mreži iza nje, a to dvoje izgleda identično na popisu firewalla koji raste godinama.
Ako paketi stignu, a usluga zatim odbije korisnika, prešli ste preko umrežavanja. Nastavite s autorizacijom aplikacije umjesto da ponovo širite politiku prosljeđivanja.