SNAT, DNAT dhe Masquerade: çfarë bën çdo rregull NAT i VPN-së
NAT i burimit rishkruan nga duket se vjen një rrjedhë; NAT i destinacionit rishkruan ku shkon. Masquerade është NAT i burimit me një adresë të huazuar.
Vendos një kapje në të dyja anët e një porte VPN dhe një rrjedhë e vetme mund të tregojë katër adresa të ndryshme. NAT i burimit rishkruan nga duket se vjen paketa; NAT i destinacionit rishkruan ku shkon. Masquerade nuk është drejtim i tretë, është një rregull NAT burimi që merr adresën nga ndërfaqja dalëse në vend të një vlere fikse. Emërto cilën nga të tria të duhet vërtet dhe shumica e tiketave „VPN-ja është prishur“ reduktohen në një pyetje për rrugën e kthimit.
Çfarë rishkruan secili rregull
NAT i burimit, zakonisht i shkruar SNAT, ndryshon adresën e burimit të një rrjedhe kur ajo lë një ruter ose portë. Shërbimi që pranon përgjigjet në adresën e përkthyer, dhe kutia që përkthen e kthen ndryshimin mbrapsht me gjendjen që mbajti për atë lidhje. Në Linux kjo gjendje jeton në conntrack, prandaj conntrack -L shtyp çiftet origjinale dhe të përgjigjes krah për krah.
NAT i destinacionit, DNAT, ndryshon destinacionin në vend të kësaj. Një paketë e drejtuar në një adresë publike në UDP 51820 mund të rishkruhet drejt një serveri WireGuard të brendshëm në 10.8.0.2:51820. Kështu një ruter shtëpiak ose një balancues në re publikon një dëgjues VPN, dhe kjo nuk thotë asgjë për atë që tuneli mund të mbajë më pas.
Masquerade i përket familjes SNAT. Rregulli nuk emërton asnjë adresë; përdor atë që ka ndërfaqja dalëse kur paketa del. Linux i jep një objektiv të vetin, dhe është zgjedhja e zakonshme në një ndërfaqe WAN që e merr adresën nga DHCP ose PPPoE.
Ku jeton mapimi vendos dështimin
Regjistro çiftin në çdo kufi: para tunelit, brenda tij dhe në ndërfaqen publike. Një kapje brenda tunelit ndryshon në mënyrë të ligjshme nga një jashtë tij, dhe kushdo që krahason të dyja pa e ditur ku ndodh përkthimi do të ndjekë mikpritësin e gabuar.
Trafiku i kthimit duhet të kalojë përmes pajisjes që mban mapimin. Nëse përgjigja merr një rrugë tjetër, një lidhje të dytë lart, një rrugë politike ose një ofrues që nuk ka dëgjuar kurrë për diapazonin tënd privat, përkthimi i kundërt me gjendje nuk ndodh kurrë dhe klienti sheh trafik njëkahësh. Shtimi i më shumë NAT burimi rrallë rregullon një rrugë kthimi që mungon; mund ta fshehë simptomën në një rrjedhë ndërsa thyen politikat e bazuara në adresa kudo tjetër.
Gabimi tjetër i zakonshëm është të presësh që tuneli të krijojë rrugëtim. Një klient privat, paketat e të cilit dalin në internet, ka nevojë për një skemë dalëse të vlefshme: një rrugë të parazgjedhur, një portë që përçon dhe zakonisht përkthim burimi drejt një adrese publike. Kriptimi vetëm nuk e bën një adresë private të arritshme.
Masquerade apo SNAT i qartë
Krahaso të dyja sipas asaj që premtojnë. Masquerade zgjedh adresën dalëse, SNAT i qartë e fikson atë. Në një portë me adresë publike të qëndrueshme, fiksimi u jep regjistrave dhe listave të lejeve të partnerëve një vlerë të parashikueshme. Në një lidhje WAN dinamike, një adresë SNAT e fiksuar bëhet e gabuar në momentin që ndryshon qiraja, dhe Masquerade u ndërtua pikërisht për atë rast.
Shtrirja ka rëndësi po aq sa zgjedhja. Një rregull Masquerade që përputhet me çdo paketë që lë portën, pa kufi burimi ose destinacioni, përkthen edhe trafikun që doje ta mbanit të paprekur, përfshirë trafikun drejt rrjeteve të tjera private. Kufizo rregullin në diapazonin e klientëve, destinacionin e synuar dhe ndërfaqen.
IPsec i bazuar në politika është aty ku kjo kafshon më fort. Udhëzuesi i përçimit të strongSwan kalon nëpër aktivizimin e përçimit IP dhe shtimin e një rregulli SNAT burimi për klientët, dhe i njëjti dokumentacion mbulon përjashtimin e trafikut që duhet të mbajë adresën origjinale. Përkthe një burim para se politika e sigurisë të përputhet me të dhe tuneli mund të ngrihet ndërsa trafiku vazhdon të bjerë, sepse paketa nuk duket më si përzgjedhësi i negociuar.
Vendos gjithashtu çfarë duhet të shohë skaji i largët. Pas përkthimit një shërbim sheh portën, jo klientin individual. Kjo thjeshton rrugëtimin e kthimit dhe njëkohësisht rrafshon regjistrat dhe asgjëson listat e lejeve për çdo klient. Nëse ruajtja e adresave të klientëve ka rëndësi, planifiko një rrugë kthimi të rrugëtuar në vend që t’i fshehësh për ta bërë një test të kalojë.
Leximi i rregullave në një portë Linux
Një portë aksesi në distancë me klientë në 10.8.0.0/24 dhe një ndërfaqe WAN e quajtur eth0 ka nevojë për përçim të aktivizuar dhe një politikë filtri që lejon rrjedhën, para se ndonjë rregull NAT të ndihmojë. Versioni iptables mban të dy drejtimet në tabelën nat:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 51820 \
-j DNAT --to-destination 10.8.0.2:51820
Forma nftables përdor të njëjtat dy grepa me një ndërfaqe të emërtuar dhe një zinxhir të qartë:
nft add rule ip nat postrouting ip saddr 10.8.0.0/24 oifname "eth0" masquerade
nft add rule ip nat prerouting iifname "eth0" udp dport 51820 dnat to 10.8.0.2:51820
Të dy fragmentet supozojnë se zinxhiri i filtrit tashmë e pranon rrjedhën e përçuar. NAT nuk është rregull leje, dhe një paketë e përkthyer saktë mund të hidhet një tabelë më vonë. Konfirmo mapimin e gjallë me conntrack -L, konfirmo çfarë është ngarkuar me nft list ruleset ose iptables-save -t nat, pastaj bëj kapje në të dy ndërfaqet për të parë që adresa vërtet ndryshon.
Mënyra dështimi që duken si rregull i keq
Trafiku në formë kapëse është klasiku. Një klient i brendshëm që arrin një server të brendshëm përmes adresës publike të serverit ka nevojë për DNAT në rrugën hyrëse dhe për një përkthim burimi në rrugën dalëse të kthimit, përndryshe serveri përgjigjet drejt klientit dhe përgjigja refuzohet. Rregullimi është një rregull i dytë, më i ngushtë, për atë rast brendësi-drejt-publik, jo një rregull Masquerade më i gjerë për gjithçka.
Përkthimi i dyfishtë është ai i heshtur. Një klient që është tashmë pas NAT të nivelit të operatorit vjen në portën tënde me një adresë që nuk mund ta rrugëtosh mbrapsht, prandaj përkthen përsëri. Funksionon, por regjistrat tani mbajnë dy hapa adresimi privat dhe çdo hetim ka nevojë për të dy mapimet. IPsec i bazuar në politika shton një kthesë të tretë: përkthe para përputhjes së politikës dhe merr një SA të ngritur pa trafik që kalon, gjë që lexohet si defekt i firewall-it dhe jo i NAT-it.
Pastaj është testi që kalon dhe vendosja që dështon. Ekzekutimi i komandës NAT me dorë provon mekanizmin, jo konfigurimin. Një rregull i shtuar në kohë ekzekutimi zhduket në rinisje ose në ngjarjen tjetër të ndërfaqes, dhe një rregull Masquerade i lidhur me një ndërfaqe që ndryshon numër mund të ndryshojë në heshtje adresën që sheh skaji i largët. Vendos rregullin në konfigurimin e firewall-it që e zotëron dhe ritesto pas një rilidhjeje.
Listë kontrolli përpara se të ruash rregullin
Emërto së pari drejtimin: burim, destinacion apo të dyja. Pastaj identifiko kush duhet ta mbajë gjendjen — porta, ruteri sipër apo pala IPsec — dhe konfirmo se rruga e përgjigjes kthehet përmes tij. Kufizo rregullin në diapazonin e klientëve, destinacionin dhe ndërfaqen që synon vërtet, dhe vendos që më parë nëse skaji i largët duhet të shohë portën apo adresën origjinale të klientit.
Testo nga një klient, jo nga porta. Një shfletues në portën vetë mund të anashkalojë plotësisht rregullin e përkthimit për klientët, prandaj një faqe që funksionon atje nuk provon asgjë për tunelin. Dërgo një kërkesë që buron nga klienti, vëzhgo numëruesit dhe tabelën conntrack, dhe përsërit pas një rilidhjeje të tunelit dhe një ndryshimi të adresës WAN nëse ndonjëra prej tyre është e mundur atje ku punon.