Zwee A-Records, eng Adress, een Daemon: wéi en Numm de Benotzer och agëtt, d'Pak dat ukommt ass identesch, an de Prozess, deen un de Port 1194 gebonnen ass, huet näischt fir déi zwee z'ënnerscheeden. Dat ass keng falsch Konfiguratioun, déi op eng Reparatur waart; et ass d'Grenz vun deem, wat eng Numm-Opléisung ausdrécke kann. Alles wat tëscht zwou OpenVPN-Instanze wielt, muss e Wäert sinn, deen de Client an d'Verbindung setzt an deen de Frontend zréckliese kann, an e Standard-OpenVPN-Client setzt keen esou Wäert am Kloeren. Wat duerno kënnt, ass wou dat Iech bréngt, a wéi eng Arrangementer den Trafic wierklech trennen.

Fänkt mat deem un, wat den Opléiser zréckgëtt

E Client freet vpn-a.example a kritt eng Adress; déi Adress plus e Port ass alles, wat hien uwielt. Den Numm gëtt lokal verbraucht, während der Opléisung, an et gëtt ni e Feld um Kabel, dofir kann den Nolauschterer um aneren Enn net gesinn, wéi en Etikett benotzt gouf. Richt vpn-a.example an vpn-b.example op een Host, an déi zwou Opléisungen erginn déiselwecht Destinatioun, dofir absorbéiert den Daemon déi zwou Verbindungen an eng eenzeg Instanz, ouni en Ënnerscheed ze registréieren. Adressbaséiert Profiler behuelen sech genee wéi nimmbaséiert, aus dem selwechten Grond.

Dëst schléisst och eng Famill vu verlockenden Ëmweeër aus: zousätzlech Aliassen, en Zertifikat pro Numm op engem Socket wielen, oder eng Firewall-Reeg, déi un den ugefrote Numm gebonnen ass. Keng dovun kann op Informatioun handelen, déi schonn ewechgeheit gouf, ier dat éischt Pak de Client verlooss huet. Wa zwee Serveren getrennt musse bleiwen, muss d'Trennung mat der Verbindung selwer reesen, also eng Adress, e Port oder e Notzlaascht-Feld, dat de Protokoll definéiert.

Den eenzegen Auswieler, deen zielt, fiert am Pak

HTTP regelt dat mat engem Host-Header, an TLS mat enger Servernumm-Erweiderung am ClientHello, an esou bedéngt eng Adress vill Säite banne engem eenzegen Nolauschterer. Béides funktionéiert, well de Protokoll um Kabel eng Ufro fir eng bestëmmte Servis dréit. Déi relevant Tatsaach iwwer OpenVPN ass, datt keent vun deenen zwee Felder op der Schicht präsent ass, déi eng mëttlere Këscht ënnersicht.

An enger Standard-Anordnung geschitt den TLS-Handshake, deen de Kontrollkanal schützt, nodeems déi baussecht Sitzung opgebaut ass, a gëtt bannen hir gedroen, dofir gesäit en Nolauschterer, deen déi Sitzung net ofgeschloss huet, en unduerchsichtegen Stroum. Et kann nach soen, datt et OpenVPN ass, well den Opcode an d'Kadréierung an den éischte Byten erkennbar sinn, awer de Servernumm, wann et een gëtt, sëtzt am verschlësselten Deel. En Design, deen erwaart, en virtuelle Host aus dem baussechte Pak ze liesen, liest e Feld, dat de Protokoll ni dohi schreift. Dat kënnt dohier, wéi den Tunnel gebaut ass, net vun enger Lück, déi eng méi schlau Mustersich kéint zoumaachen.

Wou en Protokoll-Splitter ze kuerz gräift

En Multiplexer vun där Aart, déi de sslh-Projet dokumentéiert, lauschtert op engem Port, ënnersicht déi éischt Byten a gëtt d'Verbindung un dee Backend weider, deen dee erkannten Protokoll schwätzt. Dat ass e richtege Wäert, wann een eenzege Port SSH, HTTPS an OpenVPN gläichzäiteg muss bedéngen.

sslh hält eng separat Sonde pro Protokoll, an seng TLS-Sonde kann e Servernumm oder en ALPN-Wäert aus engem echte ClientHello zéien. Native OpenVPN z'erkennen ass eng aner Klassifikatioun wéi eng TLS-Erweiderung ze liesen, an déi zwee komponéieren net, well e Client, deen ni en ClientHello op den nolauschterende Socket schéckt, d'Sonde ouni eppes ze liesen léisst. Dofir äntwert eng Reegel, déi op OpenVPN passt, „dat ass en OpenVPN-Client“ a geet net weider. Zwee OpenVPN-Backends hannert där Reegel si net z'ënnerscheeden, de Frontend huet keng Basis fir eng Wiel, an all Sitzung lant op der selwechter Plaz. Multiplexing deelt ee Port tëscht verschiddene Servisen; et mécht keen virtuellen Hosting bannen enger Servis.

Arrangementer, déi zwee Serveren wierklech trennen

Déi bëllegst éierlech Trennung ass eng zweet ëffentlech Adress, eng pro Instanz, an déi existéierend Profiler droen schonn dat Noutwennegt, well se op verschidde Adressen weisen. Déi nächst ass en anere Port op der selwechter Adress, wat näischt kascht ausser enger Zuel an all Profil. TCP an UDP halen getrennt Porttabellen, dofir sinn 1194/tcp an 1194/udp onverbonne Sockets an een vun all kann op engem Host niewenteneen existéieren; dat ass Transport-Trennung an net Numm-Routing, an et gëtt dacks domat verwiesselt. Béid Optiounen iwwerstinn eng Firewall-Revue, well d'Reegel op eppes passt, wat d'Pak wierklech enthält.

Wann d'Grenz, déi Dir braucht, tëscht Benotzergruppen an net tëscht zwou Implementatiounen leeft, kann eng eenzeg Instanz mat ënnerschiddleche Client-Konfiguratiounen, hirer eegener Zertifikatsbehandlung an enger expliziter Zougrëffspolitik dat decken. Wat dat kaaft, ass Politik bannen engem Server, net Isolatioun tëscht Serveren, an dat si verschidden Ufuerderungen. Isolatioun, déi ënner Kompromittéierung muss halen, brauch weider d'Adress oder de Rand vun der Firewall.

En TLS-Terminator virun OpenVPN kann engem fähege Frontend e richtegen Servernumm exponéieren, awer nëmmen, wann och d'Client-Säit fir déi zousätzlech Schicht konfiguréiert ass. Déi existéierend Profiler kréien de Verhalen net, well se op déiselwecht Adress geriicht ginn.

Beweist den Auswieler, ier Dir baut

Nennt d'Feld, dat en Backend identifizéiere wäert, a bestätegt duerno, datt de Client et wierklech schéckt; wann d'Äntwert eng Adress ass, hält de Plang, a wann et en Servernumm bannen engem Handshake ass, deen ni den Nolauschterer erreecht, rett keen DNS-Aarbecht en. Dräi Kommandoen entscheeden d'Nolauschterer-Säit séier.

ss -lntup | grep -E ':443|:1194'
openssl s_client -connect vpn-a.example:443 -servername vpn-a.example </dev/null | head -n 20
journalctl -u openvpn-server@server-a -n 20 --no-pager

D'openssl-Linn gëtt en Zertifikat nëmmen do, wou eppes op där Adress TLS ophält; géint en native OpenVPN-Nolauschterer stackt oder feelt se, an dat ass selwer d'Äntwert drop, wat déi baussecht Schicht exponiéiert. D'journal-Linn, op all Backend gelies, weist, wéi eng Instanz d'Sitzung ugeholl huet. D'Frontend-Loggen notéieren, wat klassifizéiert gouf, an ni wat gemengt war, dofir bleift de Backend déi eenzeg Autoritéit driwwer, wou e Benotzer gelant ass.

Schléisst mat zwee Profiler of, déi geduecht sinn, verschidde Serveren z'erreechen, verbënnt se ee fir ee a notéiert de Backend-Log fir jiddwereen. Wa béid Sitze sech am selwechten Journal weisen, feelt den Auswieler, amplaz falsch konfiguréiert ze sinn, an d'Korrektur ass eng Adress oder e Port, deen de Client ka viséieren. D'Routing-Reeg z'änneren hëlleft net, well der Reegel ni eppes gi gouf, fir driwwer ze routen. Soubal d'Trennung wierklech ass, schreift se niewent d'Profiler, sou datt déi nächst Persoun keen zweeten Alias bäisetzt an erwaart, datt hien d'Aarbecht mécht.

Ähnlech Artikelen