VPN pristupnik zahtijeva IP prosljeđivanje: što provjeriti
Pristupnik može odgovarati na vlastitoj adresi, a da ništa ne prosljeđuje između sučelja. Provjerite prosljeđivanje po obitelji, zatim povratni put.
Vaš klijent može pingati adresu pristupnika dok svaki resurs iza njega ostaje nedostupan. Taj par zapažanja opisuje host koji razgovara s vama i usmjerivač koji ne usmjerava, a to su različite uloge na istom stroju. Prosljeđivanje je prekidač između njih.
Dvije uloge su neovisne, kao i dvije obitelji adresa.
Odgovor na vlastitu adresu ne dokazuje ništa
Kada je paket adresiran na sam pristupnik, lokalni stog ga troši i ne donosi se nikakva odluka o prosljeđivanju. Zato uspješan ping na adresu tunela ili upravljačko sučelje govori da je demon živ i tunel podignut, ali ne govori ništa o prometu namijenjenom mreži iza kutije. Kernel pregledava 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 sučelja. Prijenosnik 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 pristupnik.
Ista rečenica vrijedi za vatrozid ispred odluke o prosljeđivanju, koji ima vlastitu politiku o tome što se smije prosljeđivati.
Provjerite svaku obitelj adresa zasebno
IPv4 prosljeđivanje je jedan prekidač, a IPv6 prosljeđivanje je drugi s vlastitim ponašanjem po sučelju. Uključivanje prvog ne govori ništa o drugom, a dual-stack klijent može dosegnuti polovicu mreže dok ostatak ostaje mračan. Dva klijenta različitih obitelji stoga se mogu ne slagati oko istog pristupnika. Pitajte koju je obitelj koristio klijent koji ne radi prije nego uredite bilo koju postavku. Potvrdite obje prije nego zaključite da je dizajn usmjeravanja 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 naredbom 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, pristupnik mora imati rutu naprijed, odgovori moraju imati put natrag, a vatrozid mora dopustiti promet. Prevođenje izvora pripada tom dizajnu kao opcija, a ne kao pravilo, jer privatna usmjerena mreža sa simetričnim putovima to ne treba, a asimetrična obično treba. Svaki od četiri zakaže neovisno, zato popravak jednog rijetko pomiče 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 konfiguriran kernel gosta. Dokumentacija platforme o mrežama ondje je autoritet, a ne sysctl izlaz unutar VM-a.
Testirajte s klijenta, a ne s pristupnika
Test pokrenut u vlastitoj ljusci pristupnika ne prolazi ni kroz jedan dio putanje prosljeđivanja koju ste upravo omogućili. Generirajte promet s klijenta koji ima problem i potvrdite da doseže nešto iza pristupnika, a ne sam pristupnik. To je jedini test koji vježba ulogu koju ste promijenili.
Držite pravila slušatelja i pravila prosljeđivanja odvojenima 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 jednako na popisu vatrozida koji raste godinama.
Ako paketi stignu, a usluga zatim odbije korisnika, prešli ste preko umrežavanja. Nastavite s autorizacijom aplikacije umjesto da ponovno širite politiku prosljeđivanja.