DNAT am VPN-Container: Weiderleeden, net INPUT
No DNAT gëtt eng Ufro un d'Tunneladress zu weidergeleetem Trafic. Grenzt d'Weiderleedregel an, liest d'Docker-Kette a wielt bewosst en Zeréckwee.
D'Ufro kënnt mat der Tunnel-IP als Adress un a verléisst dee selwechte Container mat der Adress vun engem Nopeschdéngscht. Tëschent dësen zwou Momenter huet DNAT d'Destinatioun ëmgeschriwwen, an de Paket war keen Input méi fir de VPN-Container. Elo ass et weidergeleeten Trafic, iwwer deen eng aner Regel entscheet. Dës Ëmstellung erkläert, firwat eng Firewall-Regel, déi fir d'Tunneladress richteg ausgesäit, keng Wierkung op d'iwwersat Verbindung huet.
Verfollegt de Paket no der Iwwersetzung
Hëlt e Client-Pool vun 10.90.0.0/24 an eng Tunneladress vun 10.90.0.1. Zwee Container stinn op enger Bréck: 192.0.2.2 bedreift de VPN an 192.0.2.3 bedreift d'Applikatioun. E Client verbënnt sech mat 10.90.0.1:8080, an d'DNAT-Regel am Nummraum vum VPN-Container schreift dat op déi richteg Adress an de Port vun der Applikatioun ëm. Duerno schéckt eng Route de Paket iwwer d'Bréck. Déi Adresse sinn illustrativ, keng Rezept fir d'Deployment.
De Port, op deem d'Applikatioun wierklech lauschtert, kann vun all Port ofwäichen, deen um Host verëffentlecht ass. Liest de Lauschterer am Container, amplaz ze uweisen, datt béid Zuelen iwwereneestëmmen.
D'Erlaabnes gehéiert op de Weiderleedwee
De VPN-Container brauch IP-Weiderleeden an eng Weiderleedentscheedung, déi op de Client-Pool, d'Adress vun der Applikatioun an de virgesinnene Port begrenzt ass. Etabléiert Äntwerten brauchen hir eege Erlaabnes. Eng Regel, déi op déi ursprénglech Tunneladress passt, passt no DNAT net méi, well d'Destinatioun schonn geännert huet. Eng INPUT-Erlaabnes ass den falschen Haken fir Trafic, deen net méi un dësen Host adresséiert ass.
Halt de Beräich enk: ee Quellberäich, eng Destinatioun, een Déngscht. Eng guttmeeneg Weiderleedregel ass méi liicht ze schreiwen a vill méi schwéier méi spéit ze verdeedegen.
docker exec vpn-container ip route get 192.0.2.3
docker exec vpn-container iptables -t nat -S
docker exec vpn-container iptables -S FORWARD
Docker seng Kette sinn net d'Kette vun Ärem Container
Regele bannent dem Nummraum vum Container sinn net d'Regele vum Docker-Host. Waen den Trafic vun der Tunnel-Interface op d'Bréck wechselt, kann d'Bréckefirewall vum Host eng aner Entscheedung treffen. Mat dem iptables-Backend vun Docker sinn déi dokumentéiert Weiderleedketten an d'Matchpunkte no DNAT déi Plaz, wou déi Entscheedung erschéngt.
D'Docker-Firewall-Referenz beschreift déi Ketten an de Match no DNAT. Flickt keng feilend Akzeptanz, andeems Dir dem Docker seng Firewall-Verwaltung ausschalt oder all Kette guttmeeneg maacht, well dat d'Grenz ewechhëlt, déi Dir wëllt benotzen.
Maacht den Zeréckwee zu enger bewosster Wiel
Wann d'Quelladress erhale bleift, gesäit d'Applikatioun 10.90.0.x an muss Äntwerten iwwer de VPN-Container zréckschécken. Soss schéckt seng gewéinlech Docker-Gateway se un den Host, deen den Tunnel net besëtzt. D'Alternativ ass eng enk begrenzt Quelliwwersetzung um VPN-Container, déi d'Äntwert vereinfacht awer de Client virun der Applikatioun verstoppt. Wielt bewosst a schreift op, wat Dir gewielt hutt.
Test eng nei erlaabte Verbindung vun engem gewéinleche Client, a bestätegt duerno, datt onspezifesch Porte zou bleiwen. Waen e Paket verschwënnt, kuckt den VPN-Nummraum, den Nummraum vun der Applikatioun an de Log vun der Applikatioun selwer un. E Ping op d'Bréckegateway ass keen Akzeptanztest fir den Déngscht.
Halt d'Regele an der ënnerstëtzter Startkonfiguratioun vum Container, well interaktiv Ännerungen verschwannen, waen en nei erstallt gëtt. D'Verëffentlechen vun engem Hostport ass en aneren Expositiounswee an ass net néideg just well den Déngscht iwwer den Tunnel erreechbar ass.