Veröffentlicht e VPN-Client-Port hannert CGNAT: Checklist
Eng eenzeg Destinatiouns-NAT-Regel gëtt hallef op Verbindungen. Fixéiert d’Tunneladress, iwwersetzt a béid Richtungen a bestätegt de Wee vun der Äntwert virum Test.
Setzt e Service op e Laptop hannert Carrier-Grade-NAT, richt dee Laptop iwwer eng VPN op e VPS, an niemand dobausse kann en erreechen. Dir bäit eng Destinatiouns-NAT-Regel um VPS derbäi a kritt eppes méi schlëmm wéi Stille: d’Verbindunge ginn op, an da stocken se. D’Äntwert feelt net, se geet iwwer dem Client seng eegen Standardroute eraus, dat heescht de Server gesäit se ni. Schafft dës fënnef Kontrollen der Rei no of a stoppt bei der éischter, déi net hält.
Bestätegt, datt de Server iwwerhaapt weiderleet
Kräizt dës Këscht un, ier dir eng eenzeg Iwwersetzung schreift. Eng DNAT-Regel fir e Paket, deen de Kernel refuséiert weiderzeleeden, gëtt vum Regelparser ugeholl an duerno vum Weiderleeungswee verduerzt, wat en Timeout erzeugt, deen wéi e Firewallproblem ausgesäit.
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
Et an engem lafende Kernel ze setzen ass net datselwecht wéi et iwwer e Neistart ze setzen. Schreift net.ipv4.ip_forward=1 an eng Datei ënner /etc/sysctl.d/, lauschtert sysctl --system, a liest den Wäert duerno zeréck, amplaz ze vertrauen, datt d’Datei opgeholl gouf. En Container, deen säin eegenen Netzwierk-Namensraum verwalt, brauch dee selwechte Wäert bannent deem Raum, net just um Host.
Wann d’Zeréckliesen nach ëmmer null ass, stoppt hei. Näischt méi ënnen wäert schaffen.
Fixéiert d’Tunneladress, ier eng Regel drop verweist
De Pool deelt Adressen an der Verbindungsuerdnung aus, also kann eng Regel, déi fir d’Lease vun haut geschriwwe gouf, d’nächst Woch just op en anere Client weisen. Bind d’Adress un d’Identitéit vum Zertifikat amplaz un d’Reiefolleg vum Ukommen.
client-config-dir /etc/openvpn/ccd
ifconfig-push 10.77.0.14 10.77.0.13
Dee Paar ass de Client-Ende an de Peer-Ende vun engem Punkt-zu-Punkt-Tunnel, wärend de Server um gemeinsamen Numm vum Zertifikat geschlësselt ass. An enger Subnet-Topologie gëtt den zweete Wäert amplaz als Netmask gelies, schreift also d’Form, déi zu der Topologie passt, déi benotzt gëtt. Verbënnt duerno de Client erëm a liest d’Adress um Client selwer, well dem Server seng Vue op de Pool net beweise kann, wat de Client konfiguréiert huet.
Wann d’Adress no enger Reverbindung ännert, stoppt. Eng NAT-Regel, déi engem beweeglechen Zil follegt, wäert ënnerbrach feelen an dir näischt bäibréngen.
Iwwersetzt a béid Richtungen
D’Destinatiounsiwwersetzung schéckt de Pak, deen erakënnt, zum Client. D’Quelliwwersetzung ass dat, wat de Client de Server äntwerte léisst an net dee ursprénglechen Ofsender, an et ass dës Regel, déi d’Leit ewechloossen.
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
Ouni déi zweet Regel äntwert de Client iwwer säin ISP-Uplink, also gesäit deen entfernte Peer eng Quelladress, mat där en ni geschwat huet, wärend de Server keen Tracking-Andrag fir d’Äntwert huet. Den äusseren Observateur gesäit en Handshake, deen hallef fäerdeg gëtt, an dat ass genau de Symptom, deen d’Leit no engem Firewallfehler siche léisst, deen et net gëtt.
Liest béid Regele mat iptables -t nat -S nach eng Kéier a bestätegt, datt den Interface-Numm deen ass, deen déi ëffentlech Adress dréit. Op engem Host, deen schonn mat nftables filtert, schreift d’Iwwersetzung an eng nftables-NAT-Kette vun der passender Adressfamill, amplaz d’Werkzeuge mateneen ze mëschen.
Loosst d’Filtertabell duerch
D’NAT-Tabellen iwwerschreiwen d’Käpp; si ginn keng Erlaabnes. Mat enger Standard-DROP-Politik brauch de weidergeluechte Floss seng eege Erlaabnes, plus d’Richtung zréck, déi déi meescht Politike schonn mat enger established,related-Regel decken.
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
Kontrolléiert d’Politik vun der FORWARD-Kette, ier dir eppes derbäisetzt, well d’Uerdnung vun engem fréien DROP entscheet, ob Är Regel iwwerhaapt gefrot gëtt. Op engem Host, deem seng Filterung an nftables lieft, setzt déi gläichwäerteg Regel un den forward-Hook vun der inet-Tabell a bestätegt, datt d’Basiskette wierklech weidergeluechte Verkéier gesäit an net just lokal Input. Wann e Paketzähler op der neier Regel op null bleift, wärend d’NAT-Zähler klammen, gëtt de Pak virun Ärer Regel verduerzt. Dat ass d’Signal, d’Uerdnung vun de Kette ze liesen, net eng zweet Kopie vun der selwechter Regel derbäizesetzen.
Beweist et vun engem äusseren Netzwierk
Test vun engem onverbonnenen Netzwierk. Eng Sonde vun enger anerer Maschinn am selwechte LAN kann duerch Hairpin-NAT-Ënnerstëtzung goen an ni de Wee ausübe, deen e entfernte Client benotzt, also beweist en gréngen Resultat do dat falscht.
tcpdump -ni any port 29443
conntrack -L | grep 29443
Fuert d’Opzeechnung um Server an um Client gläichzäiteg aus. D’Opzeechnung um Server weist, ob dee iwwersetzte Pak Richtung Tunnel erausgeet; d’Opzeechnung um Client weist, ob d’Ufro ukënnt a wou d’Äntwert adresséiert ass. En Iwwersetzungsandrag an conntrack -L beweist, datt d’Regel gepasst huet, an säi Fehlen beweist, datt de Pak ni d’NAT-Kette erreecht huet.
Portscanner si schwaach Beweiser. Si mellen de Port als zouenen, bis d’Applikatioun gebonnen ass an lauschtert, also benotzt eng richteg Verbindung zum richtege Service. Wann et schlussendlech funktionéiert, hält d’Expositioun op deen eenzege Port: SSH oder en Adminpanel weiderzeleeden, well déi éischt Regel ongeschéckt gewierkt huet, ass eng vill méi grouss Entscheedung wéi e Service ze verëffentlechen.