Ëffentlech SaaS-Säite kënnen oppe fir jiddereen bleiwen, wärend d’Administratiounsoperatiounen hannert hinnen jiddereen ausserhalb vum VPN refuséieren. De Mechanismus, deen dat méiglech mécht, ass weder en verstoppte Menü nach eng separat Login-Säit; et ass eng Kontroll vum Netzwierkwee, deen d’Ufro geliwwert huet. Wann d’Adressbewäis falsch ass, sperrt d’Kontroll entweder richteg Administrateuren aus oder léisst jiddereen eran, dee kann en Header tippen. Fänkt domat un, wat den Origin tatsächlech kritt.

Wat den Origin nom Tunnel tatsächlech kritt

Wann e Browser déi ëffentlech Säit iwwer e VPN erreecht, deen och Internettraffic dréit, iwwersetzt de Gateway d’Verbindung, ier se erausgeet. D’SaaS gesäit d’ëffentlech Egressadress vum Gateway, typesch eng Adress oder eng kleng Rei, an gesäit ni d’Tunneladress vum Laptop. Dofir schléit d’Ophuelen vun 10.90.0.42 an d’Erlaabnislëscht feel, an dofir schléit d’Ophuelen vum ganze RFC 1918 nach méi haart feel: dat zweet léisst all privat Netzwierk eran, dat dech erreeche kann. Déi eenzeg Adress, déi eng Bedingung wäert ass, ass déi, déi Är Organisatioun um Ausgang tatsächlech besëtzt.

curl -s https://ifconfig.me
dig +short admin.example.com

Split-Tunneling brécht dës Unhuelen still. Wann de VPN nëmmen privat Büro-Routen dréit, verléisst d’Ufro un den ëffentlechen Admin-Hostnumm de lokale Provider, an den Origin gesäit eng Wunnadress. En ugeschlossene VPN-Ikon bewäist näischt iwwer dës konkreet Zil, also test d’Zil an net den Tunnel.

Halt un a reparéier d’Routing, ier s de eng Richtlinn schreifs, wann d’Egressadress pro Benotzer variéiert. Eng Bedingung, déi nëmmen op e puer Administrateuren zoutrëfft, ass schlëmmer wéi keng Bedingung, well se de Problem bis zu engem Tëschefall verstoppt.

Vertraut just dem Proxy, deen d’Adress ëmschreift

Déi meescht ëffentlech Säite stinn hannert engem CDN oder engem ëmgedréinte Proxy, also gehéiert d’Socketadress vum Origin zu deem Frontend an net zum Besucher. D’Frontend leet d’Originadress normalerweis an engem Header weider, an dee Header gëtt vum Ugräifer kontrolléiert, ausser den Origin akzeptéiert en nëmme vu bekannte Proxien. Konfiguréiert d’Lëscht vun den vertrauenswürdegen Quellen ausdrécklech a maacht den Origin vun iwwerall soss onerrechbar. Ouni déi zweet Halschent ëmgeet en Ugräifer de Proxy an schéckt den Header direkt.

set_real_ip_from 192.0.2.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
curl -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin

Déiselwecht Begrënnung gëllt fir de PROXY-Protokoll: en ass nëmmen dann vertrauenswürdeg, wann de Listener un eng Interface gebonnen ass, déi de Proxy erreeche kann an soss näischt. Fehlende Adresskontext muss déi geschützt Kontroll feel schloen, amplaz an eng Standarderlaabnis ze falen. En Header, deen feelt, ass kee Beweis fir e vertrauenswürdege Wee.

Hänkt d’Bedingung un all geschützt Operatioun

Setzt d’Kontroll un d’Autorisatiounsgrenz, déi all geschützt Operatioun passéiert, net an d’Säit, déi de Menü rendert. Routgruppen, Middleware oder eng Richtlinneschicht funktionéieren alleguer; eng Kopie pro Handler net, well den Handler, deen een am nächsten Trimester bäisetzt, se net wäert hunn.

user = requireAuthenticatedSession()
requirePermission(user, "admin")
requireVpnEgress(verifiedClientAddress(request))
performProtectedOperation(user, request)

Déi selwecht Grenz muss d’JSON-API, d’Exporten, déi ënnerschriwwen Download-URLen an den WebSocket-Handshake decken, well keng dovun verlaangt, datt d’HTML-Säit fir d’éischt ugefrot gëtt. En Download-Link, deen erstallt gëtt, wärend de VPN un ass, bleift duerno gülteg, ausser den Download-Endpunkt kontrolléiert nach eng Kéier. Laanglieweg Sessiounen brauchen och eng Re-Evaluatiounsregel, soss gëtt eng authentifizéiert Ufro eng permanent Ausnam. Standardverweigerung ass déi eenzeg Astellung, déi Personalwiessel iwwerlieft.

Gedeelt Caches sinn den anere Wee ronderëm d’Kontroll. En Cache, deen schonn eng geschützt Äntwert hält, kann se zerwéieren, ouni den Origin ze kontaktéieren, also markéiert Admin-Äntwerten als privat a haalt se aus gedeelte Späicher eraus. Wann en Cache se muss zerwéieren, muss d’Zougangskontroll virun der Zerwéierung lafen, wat normalerweis bedeit, datt et guer keen gedeelte Cache ka sinn.

Test déi Bypäss, déi s de just zougemaach hues

Üb d’Matrix amplaz vum gléckleche Wee: en Administrateur duerch de VPN, deen selwechten Administrateur ouni en, en Net-Administrateur duerch en, an en gefälschten Adressheader. Füügt eng Ufro direkt un den Origin an eng Ufro mat enger gecachter Äntwert derbäi, well déi zwee d’Frontend komplett iwwersprangen.

curl -sI https://admin.example.com/export.csv
curl -s -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin
curl -s https://admin.example.com/api/me -o /dev/null -w '%{http_code}\n'

All Ufro soll de Status zréckginn, deen d’Richtlinn versprécht, an de Log soll festhalen, wéi en Adressbewäis benotzt gouf. Deckt IPv6 getrennt of, well en Dual-Stack-Origin eng aner Quellfamill gesi kann wéi déi, déi s de getest hues. Halt gewéinlech Clientoperatiounen ausserhalb vum VPN funktionéierend, soss gëtt d’Ännerung zréckgezunn, soubal e Client sech fir d’éischt beschwéiert. Schreif dat erwaart Resultat fir all Zeil, ier s de se lafe léisst, sou datt en iwwerraschend Passage siichtbar ass.

D’Egressadress beweist e erlaabten Netzwierkwee, net eng Persoun an net en verwalteten Apparat. Halt se als eng Bedingung nieft Authentifikatioun a Berechtegung, an den Adminberäich bleift schmuel, ouni datt dat ganzt Produkt zu engem nëmme-VPN-Service gëtt. Déi Trennung ass den Design, net eng Aschränkung dovun.

Ähnlech Artikelen