En LAN-Service op der eegener Adress vum VPN-Gateway publizéieren
Verfollegt en weidergeleet Port vum Client bis zum Apparat an zréck: grenzt d'Zil-Iwwersetzung an, an entscheet duerno, ob Äntwerten geroutet oder iwwersat ginn.
En LAN-Apparat op enger vun den eegenen Tunneladresse vum Gateway presentéieren brauch just eng Zeil NAT. D'Verbindung schléit trotzdeem fehl, well den Apparat, dee äntwert, net weess, datt d'Adress vum Client iwwer dee Gateway erreechbar ass. Verfollegt de Paket vum Client no bannen, verfollegt duerno d'Äntwert zréck no baussen, an déi fehlend Halschecht gëtt evident.
Fänkt mat der Vue vum Client un
De Client an dësem Beispill sëtzt am VPN-Pool 10.62.0.0/24 a verbënnt sech op 10.62.0.1 um Port 8080. Déi Adress gehéiert zum Gateway selwer, also kënnt de Paket an de Kernel vum Gateway an net bei engem anere Peer. Hannert dem Gateway ass d'LAN 172.21.4.0/24. De Gateway huet 172.21.4.10, an den Apparat, deen tatsächlech HTTP zerwéiert, ass 172.21.4.40.
Eng Adress, déi zu engem anere VPN-Peer gehéiert, ass net mam Service-Adress vum Gateway auswiesselbar. Wann de Client sech mat der Adress vun engem Peer verbënnt, ass iwwerhaapt keng Gateway-Reeg bedeelegt, an dës ganz Duerchgang ass dee falsche Fall.
Grenzt d'Zil-Iwwersetzung bewosst an
Déi schmuel Versioun presentéiert ee Port a schreift nëmmen d'Zil ëm. De Paket behält säi Protokoll a seng Quell, an dat mécht de Rescht vum Duerchgang interessant.
iptables -t nat -A PREROUTING -i tun0 -s 10.62.0.0/24 -d 10.62.0.1 -p tcp --dport 8080 -j DNAT --to-destination 172.21.4.40:80
Eng Reeg ouni Krittäre fir Protokoll a Port ass déi breet Versioun: si behält de Port, dee sech de Client ausgesicht huet, a ännert nëmmen d'Adress. Dat ass legitim, wann de ganzen Host presentéiert soll ginn, a falsch, wann ee Service d'Intentioun war. Liest d'Reeg zréck a bestätegt den Numm vun der Interface. Eng DNAT-Reeg op der falscher Interface passt op näischt, wat déiselwecht Zäitiwwerleeung wéi eng fehlend Reeg gëtt an eng Stonn verschwënnt, fir den Apparat unzekucken.
Loosst d'Weiderleitungsgrenz sech eenzeg sinn
Iwwersetzung ännert den Header, si gëtt keng Erlaabnis. Bei enger Standard-Ofwäisungspolitik brauch de weidergeleet Flux seng eegen Akzeptanz, an d'Zeréckrichtung brauch d'Reeg vun der etabléierter Verbindung, déi Är Politik wahrscheinlech scho huet.
iptables -A FORWARD -i tun0 -o lan0 -d 172.21.4.40 -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Eng onbedéngt Akzeptanz fir all DNAT-Flux ass méi breet wéi dëst Design a wäert och Mapéierungen erlaben, déi méi spéit een aneren derbäisetzt. Nennt d'Zil an de Port, a loosst de Rescht zou. Wann d'Comptoiren op der Weiderleitungsreeg op Null bleiwen, während d'NAT-Comptoiren klammen, gëtt de Paket virun Ärer Reeg verworf. Liest d'Reiefolleg vun de Ketten amplaz eng zweet Kopie derbäizesetzen.
Den Apparat muss op eng Aart a Weis äntweren
No der Iwwersetzung gesäit den Apparat eng Quell an 10.62.0.0/24. Seng Äntwert geet op säi Standard-Gateway, dat ass de LAN-Router, net de VPN-Gateway, ausser et seet him een anescht. Zwee Arrangementer behiewen dat, an si sinn net gläichwäerteg. Eng Route um Apparat oder um LAN-Router schéckt 10.62.0.0/24 op 172.21.4.10 a behält d'Quell vum Client. Eng limitéiert Quell-Iwwersetzung verstoppt de Client dogéint hannert der LAN-Adress vum Gateway.
ip route add 10.62.0.0/24 via 172.21.4.10 dev eth1
iptables -t nat -A POSTROUTING -s 10.62.0.0/24 -d 172.21.4.40 -o lan0 -p tcp --dport 80 -j SNAT --to-source 172.21.4.10
Wielt no deem, wat de Service brauch. Politik pro Client a sënnvoll Logbicher wëllen déi geroutet Form; en Apparat, deem een eng Route net ka ginn, oder e Service, deen einfach muss eng LAN-Adress gesinn, weisen op déi iwwersat Form. Grëfft net no enger globaler masquerade-Reeg, fir datt eng eenzeg Äntwert fonctionnéiert. Si verstoppt all Client virun all Zil a brécht stëll d'Politiken, déi vun de Quelladressen ofhänken.
Test net vum Gateway selwer
Eng Ufro, déi um Gateway op 10.62.0.1 generéiert gëtt, geet iwwer d'OUTPUT-Kette raus, net iwwer déi erakommend PREROUTING. Hire Fehlschlag oder Erfolleg seet näischt iwwer d'Reeg vis-à-vis vum Client, an esou kommen d'Leit zu der Konklusioun, datt eng funktionéierend Reeg futti ass.
conntrack -L | grep 172.21.4.40
tcpdump -ni any 'port 8080 or port 80'
Maacht eng richteg Client-Ufro a liest béides. Den conntrack-Andrag weist d'Iwwersetzung, déi ugewannt gouf, an d'Aufname weisen, ob d'Ufro an d'LAN gaangen ass an ob eng Äntwert zréck Richtung Tunnel koum. Benotzt eng nei Verbindung no Reegelännerungen, well den existéierende Zustand seng fréier Mapéierung behält a wäert op déi al Manéier weiderhi fehlschloen. Bestätegt duerno dat ganzt Gespréich: d'Adress vum Apparat, d'Weiderleitungs-Erlaabnis an d'Route vun der Äntwert beschreiwen all deeselwechte Flux.