An enger NGINX-mam-OpenVPN-Installatioun op deem selwechten Host erschéngen dräi Clientadressen, eng fir all Wee deen eng Ufro huelen kann. E Browser deen d'Tunneladress erreecht, e Browser deen d'ëffentlech Adress erreecht an e Programm dat iwwer de Internetwee vum Gateway erausgeet, gesi beim lauschenden Socket all anescht aus. Entscheet wéi ee Wee Dir kuckt, ier Dir d'Loglinn interpretéiert. D'Entscheedung hänkt vun der Destinatioun of déi de Client benotzt huet, vun der Ausnam déi en fir de baussenzege VPN-Endpunkt huet, an dovun ob ënnerwee eppes de Pak iwwersetzt.

Entscheet no Destinatioun, net no wien de Benotzer ass

Fänkt mat der Adress un, op déi d'Ufro geschéckt gouf, well déi Adress wielt de Wee. Eng Ufro op d'Tunneladress vum Host kënnt um Tunnelinterface un, mat der interner Adress vum Client als Quell. Eng Ufro op d'ëffentlech Adress vum Host kënnt normalerweis um internetzougedréiten Interface mat der ëffentlecher Adress vum Client un, och wann deen selwechte Laptop an deem Ament en Tunnel opgebaut huet. D'Memberzheet am VPN-Pool ass dofir eng Eegeschaft vum Pakwee, keng Eegeschaft déi dem Benotzer nolauschtert.

Path the request tookSource the site normally records
Client reaches the site at its tunnel address, 10.24.0.1Client inner address, 10.24.0.20
Client reaches another internet site through the gatewayGateway public egress address, 192.0.2.44
Client reaches the gateway's public address through the endpoint exceptionClient's own public access address

Genau déi drëtt Zeil ass déi éischt déi et wäert ass ze préiwen, wann e VPN-Benotzer am Log mat enger Adress erschéngt déi näischt mam Tunnel ze dinn huet. Si erkläert och firwat zwee Benotzer mam selwechte Profil verschidden Aschreiwunge kënne produzéieren: hir eege Zougangsnetzwierker sinn anescht, an näischt am Tunnel iwwerschreift dat.

Firwat de baussenzege Endpunkt en zweeten ëffentleche Wee schaaft

De Client muss d'ëffentlech Adress vum Gateway erreechen fir den Tunnel opzebauen, dofir muss e Wee op déi Adress baussen dem Tunnel existéieren. Wann e Client de ganze Verkéier no bannen ëmleet, hält eng sënnvoll Implementatioun eng explizit Hostroute op d'ëffentlech Adress vum Server, fir en Tunnel ze vermeiden deen vu sech selwer ofhänkt. Déi Ausnam ass net selekiv wat Servicer ugeet, dofir follegt jiddwereng Ufro op déi selwecht ëffentlech Adress hir, och eng Browserufro op eng Säit déi um Gateway gehost ass.

Dëst ass de Mechanismus hannert de meeschte verwirrenden Rapporten an dësem Beräich, an en hänkt vun der Clientimplementatioun an net vum Server of. Zwee Cliente mat identesche Profilen kënnen sech dofir anescht behuelen. Wann een d'Ausnam ewech hëlt fir de Log ze »reparéieren«, fält den Tunnel mat erof, dofir behält se a plangt ronderëm.

Liest de Socket, den Table an den Logformat zesummen

Dräi Observatiounen entscheeden wéi ee Wee Dir kuckt: wou de Socket lauschtert, wéi en Interface d'Destinatioun beäntwert, a wat den Logformat tatsächlech opzeechent. Wann de Lauschterer nëmmen un d'Tunneladress gebonnen ass, kann eng ëffentlech Ufro en iwwerhaapt net erreechen, wat zwou Zeile direkt ausschléisst. Wann d'Sich fir de Client den Tunnelapparat zeréckgëtt, ass d'Ufro mat enger interner Quell ukomm an de Log sollt et weisen.

ss -lntp 'sport = :443'
ip route get 10.24.0.20
ip route get 192.0.2.44

Liest duerno de Format anstatt d'Linn. En Feld dat vun engem virugeleeten Header gefiddert gëtt, zeechent eng Behauptung op, net e Socketpeer, an d'Behauptung zielt nëmme wann den direkten Peer ee vertrauenswürdege Proxy ass. Béid Wäerter an de Log ze schreiwen entscheet spéider Diskussiounen, well den direkten Peer an déi ersat Adress verschidden Tatsaache sinn an nëmmen eng dovun aus dem Netz koum.

log_format tunneled '$remote_addr $realip_remote_addr $request $status';
grep -n 'log_format' /etc/nginx/nginx.conf

Wielt den Agangspunkt deen Dir wëllt a maacht datt DNS averstan ass

Wann d'Säit nëmmen iwwer den Tunnel erreechbar soll sinn, gitt hir en Numm deen fir VPN-Cliente op d'Tunneladress opgeléist gëtt, a setzt d'Politik um lauschenden Socket duerch. Eng Split-DNS-Antwert déi 10.24.0.1 fir den internen Numm zeréckgëtt ass eng Routingentscheedung am Kostüm vun engem Nummopléisungsdetail. Wann d'Säit och ëffentlech muss sinn, haalt zwee Nimm oder zwee Porten a loosst den Log soen wéi eng d'Ufro zerwéiert huet.

Erlaabnesregelen follegen der selwechter Logik. Den Tunnelpool z'erlaaben autoriséiert keng ëffentlech Ufro an et fëllt keng intern Adress op enger Verbindung déi iwwer den Internet koum. Béid Agangspunkte ënner engem Numm ze mëschen mécht d'opgezeechent Quell zu engem Nieweneffekt vum Clientrouting amplaz vun enger Designentscheedung.

Verifizéiert de Wee, duerno d'Politik

Bestätegt de Wee mat enger Opnam um Gateway an enger Ufro déi Dir kontrolléiert. Eng Opnam um Tunnelapparat an eng um ëffentlechen Interface weisen wéi eng d'Biten gedroen huet, an d'Reiefolleg vun de Pakke seet Iech ob dozwëschen eng Iwwersetzung geschitt ass.

tcpdump -ni tun0 port 443 -c 5
tcpdump -ni eth0 port 443 -c 5

Verifizéiert duerno den Zougang a béid Richtungen: den ugedaachten benannten Agang funktionéiert fir den ugedaachte Client, an en net geneemegten ëffentleche Wee gëtt ofgeleent amplaz nëmme lues ze sinn. Eng allgemeng IP-Echo-Websäit beweist eppes iwwer den Internetausgang vum Gateway an näischt iwwer dës Säit um selwechten Host. Wann eng Säit an e WebSocket net iwwereneestëmmen, vergläicht hir URLen, Adressfamilljen an DNS-Antwerten ier Dir d'Serverkonfiguratioun beréiert.

Ähnlech Artikelen