Jarri zerbitzu bat eramaile-mailako NAT baten atzeko ordenagailu eramangarri batean, zuzendu ordenagailu hori VPS batera VPN baten bidez, eta kanpoko inork ez du hara iritsiko. VPSan helburuko NAT arau bat gehitzen duzu eta isiltasuna baino okerragoa lortzen duzu: konexioak ireki eta gero trabatzen dira. Erantzuna ez da falta, bezeroaren beraren bide lehenetsitik ateratzen ari da, eta horrek esan nahi du zerbitzariak ez duela inoiz ikusten. Egin bost egiaztapen hauek hurrenez hurren eta gelditu betetzen ez den lehenengoan.

Egiaztatu zerbitzariak batere birbidaliko duen

Markatu lauki hau itzulpen bakar bat idatzi aurretik. Kernelak birbidaltzeari uko egiten dion pakete baterako DNAT araua arau-analizatzaileak onartu eta gero birbidaltze-bideak baztertzen du, eta horrek suebaki arazoa dirudien denbora-muga sortzen du.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1

Kernel martxan dagoenean ezartzea ez da berrabiaraztean zehar ezartzearen berdina. Idatzi net.ipv4.ip_forward=1 /etc/sysctl.d/ azpiko fitxategi batean, exekutatu sysctl --system, eta gero irakurri balioa berriro, fitxategia hartu dela fidatu beharrean. Bere sare-izenen espazioa kudeatzen duen edukiontziak balio bera behar du espazio horren barruan, ez soilik ostalarian.

Berrirakurketa oraindik zero bada, gelditu hemen. Beherago ezerk ez du funtzionatuko.

Finkatu tunelaren helbidea inongo arauk aipatu aurretik

Multzoak helbideak konexio-ordenan banatzen ditu, beraz gaurko alokairurako idatzitako arau batek isil-gordean beste bezero bat seina dezake datorren astean. Lotu helbidea ziurtagiriaren identitatera, iristeko ordenara beharrean.

client-config-dir /etc/openvpn/ccd
ifconfig-push 10.77.0.14 10.77.0.13

Bikote hori puntutik punturako tunel baten bezero-muturra eta parekide-muturra dira, zerbitzaria ziurtagiriaren izen arruntari lotuta dagoelarik. Azpisare topologian bigarren balioa sare-maskara gisa irakurtzen da, beraz idatzi erabiltzen ari den topologiari dagokion forma. Ondoren konektatu berriro bezeroa eta irakurri helbidea bezeroaren beraren gainean, zerbitzariak multzoari buruz duen ikuspegia ez baita bezeroak konfiguratu zuenaren froga.

Helbidea berriz konektatu ondoren aldatzen bada, gelditu. Mugitzen ari den helburu bati jarraitzen dion NAT arauak noizean behin huts egingo du eta ez dizu ezer erakutsiko.

Itzuli bi noranzkoetan

Helburuaren itzulpenak sartzen den paketea bezeroari bidaltzen dio. Iturriaren itzulpena da bezeroak jatorrizko bidaltzaileari ez baina zerbitzariari erantzutea eragiten duena, eta hori da jendeak ahazten duen araua.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 29443 -j DNAT --to-destination 10.77.0.14:29443
iptables -t nat -A POSTROUTING -d 10.77.0.14 -p tcp --dport 29443 -j SNAT --to-source 10.77.0.13

Bigarren arau gabe bezeroak bere ISP igotzeko lotunearen bidez erantzuten du, beraz urruneko parekideak sekula hitz egin ez zuen iturri-helbide bat ikusten du, zerbitzariak erantzunaren jarraipen-sarrerarik gordetzen ez duen bitartean. Kanpoko behatzaileak erdi amaitzen den esku-emate bat ikusten du, eta hori da hain zuzen jendea ez dagoen suebaki errore baten bila bidaltzen duen sintoma.

Irakurri bi arauak berriro iptables -t nat -S erabiliz eta egiaztatu interfazearen izena helbide publikoa daramana dela. Dagoeneko nftablesekin iragazten duen ostalari batean, idatzi itzulpena helbide-familia egokiko nftables NAT katean, tresnak nahastu beharrean.

Utzi iragazki-taula pasatzen

NAT taulek goiburuak berridazten dituzte; ez dute baimenik ematen. DROP politika lehenetsiarekin birbidalitako fluxuak bere onarpena behar du, eta itzulera-noranzkoa, politika gehienek established,related arau batekin estaltzen dutena.

iptables -A FORWARD -i eth0 -o tun0 -p tcp --dport 29443 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Egiaztatu FORWARD katearen politika ezer gehitu aurretik, hasierako DROP baten ordenak erabakitzen baitu zure araua inoiz kontsultatuko den. Iragazketa nftablesen bizi den ostalari batean, gehitu arau baliokidea inet taularen forward kakoan eta egiaztatu oinarrizko kateak benetan birbidalitako trafikoa ikusten duela, eta ez soilik sarrera lokala. Arau berriko pakete-kontagailua zerotan geratzen bada NAT kontagailuak igotzen diren bitartean, paketea zure araua baino lehen botatzen ari da. Hori kateen ordena irakurtzeko seinalea da, ez arau beraren bigarren kopia bat gehitzea.

Frogatu kanpoko sare batetik

Probatu erlazionatuta ez dagoen sare batetik. LAN bereko beste makina batetik egindako probe batek hairpin NAT euskarritik pasa daiteke eta ez du inoiz urruneko bezero batek erabiltzen duen bidea probatzen, beraz han lortutako emaitza berdeak okerreko gauza frogatzen du.

tcpdump -ni any port 29443
conntrack -L | grep 29443

Exekutatu kaptura zerbitzarian eta bezeroan aldi berean. Zerbitzariko kapturak erakusten du itzulitako paketea tunelerantz ateratzen den; bezeroaren kapturak erakusten du eskaera iristen den eta erantzuna nora zuzentzen den. conntrack -L-en itzulpen-sarrera batek araua bat etorri zela frogatzen du, eta haren ez-egoteak paketea inoiz NAT katera iritsi ez zela frogatzen du.

Ataka-eskanerrak froga ahulak dira. Ataka itxita dagoela jakinarazten dute aplikazioa lotuta eta entzuten hasi arte, beraz erabili benetako konexioa benetako zerbitzuarekin. Azkenean funtzionatzen duenean, eutsi esposizioa ataka horretara: SSH edo administrazio-panel bat birbidaltzea lehen araua deserosoa iruditu zelako zerbitzu bat argitaratzea baino askoz erabaki handiagoa da.

Erlazionatutako artikuluak