Een VPN-Endpunkt duerch Squid: eng schmuel CONNECT-Ausnam
Looss eng geneemegt Quell iwwer Squid eng VPN-Gateway op Port 1194 erreechen, hal déi global Portwächter a bewijs datt soss näischt opgemaach gouf.
Squid äntwert engem CONNECT-Ufro mat der éischter http_access-Zeil déi passt, an déi Zeil kann eng Oflehnung sinn. Dës eenzeg Tatsaach erkläert firwat eng Ausnam fir een VPN-Endpunkt meeschtens beim éischten Versuch feelgeet, well d'Ufro ni bei d'Erlabnes kënnt déi een ënnen derbäigesat huet. Eng schmuel Korrektur behält déi existent Portwächter a léiert hinnen eng iwwerpréift Quell, Zil an een eenzegen Port. Alles anescht um Proxy behält sech genee wéi virdrun.
Wéi Squid eng CONNECT-Ufro entscheet
Eng CONNECT-Ufro nennt een Host an een Port, a Squid geet d'http_access-Zeilen der Rei no duerch bis eng dovun passt. Eng passend Oflehnung beendet d'Auswäertung direkt an de Client kritt eng 403 vum Proxy. Dofir ass d'Positioun vun enger Reegel wichteger wéi hir Formuléierung. Déiselwecht Zeil ee Schratt méi héich ze réckelen kann d'Resultat komplett änneren.
Déi konventionell Wächter lehne alles baussent Safe_ports of an lehne CONNECT baussent SSL_ports of. Dës Nimm sinn ACLen déi an ärer eegener Konfiguratioun definéiert sinn, also gehéiert hiren Inhalt iech an net dem Protokoll. Eng Verdeelung kann eng breet Palette u Porte wéi Safe_ports erlaben an dobäi CONNECT separat aschränken. Liest déi lieweg Wäerter ier Dir unhëlt datt een Port vum Design hier gespaert ass.
Bestätegt datt de Proxy de Bestanddeel ass deen d'Ufro ofleet. Eng 403 déi Squid generéiert gesäit ganz anescht aus wéi eng TLS-Warnung vum VPN-Server, an déi zwee an ee Problem zesummenzebréngen kascht déi éischt Stonn. Kontrolléiert d'Access-Log-Zeil fir d'Ufro, well se souwuel d'Aktioun wéi och d'Reegel festhält déi se erstallt huet.
Baut eng kombinéiert Iwwereneestëmmung amplaz vun dräi lockeren ACLen
Baut d'Ausnam aus dräi Fakten: eng geneemegt Quellberäich, eng geneemegt Ziladress an deen eenzegen Port op deem den Endpunkt lauschtert. Zwou locker ACLen an eng kombinéiert Iwwereneestëmmung erginn eng ganz aner Politik, well d'Kombinatioun ausgewäert gëtt. Nennt déi kombinéiert ACL no deem wat se erlaabt, net no der Method déi se dréit.
D'Form hei drënner benotzt Dokumentatiounsberäicher déi duerch iwwerpréift Wäerter ersat musse ginn. Squid reservéiert keen vun dësen Nimm fir sech, also sidd Dir et déi se auswielt an Dir et déi se konsequent haalt. Dëst Rezept ass op Squid 6 an 7 limitéiert, deenen hir dokumentéiert Konfiguratioun d'all-of-Grupp ënnerstëtzt. Déi aktuell Referenz markéiert déi Direktiven als net verfügbar an Squid 8, also behandelt dëst als eng versionsgebonne Rezept an net als e Migratiounswee, a kontrolléiert d'Direktiv an der Referenz vun ärer eegener Versioun ier Dir se uwent.
acl pvpn_src src 192.0.2.128/25
acl pvpn_dst dst 198.51.100.77/32
acl pvpn_port port 1194
acl pvpn_ok all-of CONNECT pvpn_port pvpn_dst pvpn_srcD'all-of-Grupp passt nëmme wann all Member passt, dat heescht Quell, Zil a Port ginn op enger Zeil kontrolléiert. D'Grupp gëtt vu sech aus näischt, an eng Ufro déi nëmmen op zwou vun den dräi Fakten passt kann se net erfëllen. Dës Eegenschaft hält d'Ausnam schmuel wann een spéider eng zweet Gateway derbäisetzt. Entweder gëtt dat neit Zil bewosst derbäigesat, oder d'Ufro fält op déi ursprénglech Wächter zeréck.
Béit d'Portwächter ouni se ze läschen
Op hire bestehende Positioune gesinn déi zwou konventionell Wächterzeilen esou aus. Si stinn meeschtens no der Authentifizéierung an virun de Politikzeilen déi alles erlaben.
http_access deny !Safe_ports
http_access deny CONNECT !SSL_portsSetzt bei all eenzeg déi negéiert kombinéiert Iwwereneestëmmung derbäi, sou datt eng passend Ausnam engem Wächter entkënnt deen se soss ofgeleent hätt. Nëmmen d'Wächterzeile veränneren sech, an dat nëmmen ëm een eenzegen zousätzleche Begrëff.
http_access deny CONNECT !SSL_ports !pvpn_ok
http_access deny !Safe_ports !pvpn_okBegrëffer op enger Access-Zeil ginn kombinéiert, also leet d'Zeil elo nëmmen Ufroen of déi souwuel déi ursprénglech Kontroll wéi och d'Ausnam verfeelen. Eng Ufro fir den geneemegten Endpunkt geet duerch, an all aner Ufro behält dat aalt Portverhalen. Dëst ass schmueler wéi de Port op eng global SSL_ports-Lëscht ze setzen, wat dee Port fir all Zil erlabe géif. Wann de Port schonn op där Lëscht steet, engt dës ACL näischt an déi eeler, méi breet Erlabnes gëllt weider fir aner Ziler, also liest déi lieweg Lëscht ier Dir behaapt d'Ausnam hätt de Port opgemaach. Se ass och ëmkippbar, well zwou Zeile ginn a hir fréier Form zeréck. D'Referenz fir Zougrëffskontroll dokumentéiert d'Reiefolleg an déi konventionell Wächter op déi dës Ännerung sech stëtzt.
Wou d'Ausnam net dierf gesat ginn
D'Versuchung ass eng Erlabnes iwwert d'Wächter ze setzen an fäerdeg ze sinn. Dës Plaz iwwerspréngt och d'Authentifizéierungs- a lokalt Zilschutz déi meeschtens no bei der Spëtzt vun enger funktionéierender Konfiguratioun stinn. D'Resultat ass keng schmuel Ausnam, et ass en Lach mat engem Kommentar driwwer. Halt all nei Erlabnes op der selwechter iwwerpréifter Etapp wéi de Rescht vun der Clientpolitik.
Kontrolléiert wat d'Ufro no de Portwächter nach brauch. En authentifizéierte Kont, eng erlaabte Clientadress an eng Zilpolitik gëllen nach ëmmer, an d'Ausnam ännert keen dovun. Wann äre Proxy dem geneemegten Kont schonn erlaabt arbiträr Ziler z'erreechen, war de Portwächter ni déi richteg Kontroll.
Denkt driwwer no ob den Endpunkt iwwerhaapt TCP ass. Eng CONNECT-Ausnam dréit TCP-Streim, an e Profil OpenVPN deen UDP benotzt gëtt duerch si net erreechbar. Ännert de Profil nëmmen op TCP wann de Server esou lauschtert an den Bedreiwer den Ënnerscheed am Verhalen akzeptéiert.
Kontrolléiert d'Grenz mam Parser an enger richteger Ufro
Parst d'Konfiguratioun ier Dir nei lued, a haalt eng zweet Sessioun op wärend Dir dat maacht. E Syntaxfeeler beim Nei-Lueden kann de Proxy op der aler Konfiguratioun loossen oder déi nei komplett ofleenen. De Parser mellt déi ofgeleent Zeil, wat méi ass wéi de Clientfeeler Iech wäert soen.
Da lued nei a schéckt eng richteg CONNECT duerch de Proxy vun enger geneemegter Quell. De Parserlaf kënnt als éischten, well Nei-Lueden mat engem Tippfeeler Iech näischt iwwert d'Politik léiert.
squid -k parse
squid -k reconfigure
curl -v -p -x http://proxy.lab.internal:3128 https://vpn.lab.internal:1194/ --max-time 5Test dräi Fäll: eng geneemegt Quell a Kont, eng net-geneemegt Quell, an en anert Zil op deem selwechte Port. Den drëtte Fall ass deen deen d'Ausnam als schmuel beweist, well en de Port ouni d'Zil-Iwwereneestëmmung üübt. Liest den Access-Log fir all dräi amplaz dem Client seng Noriicht ze gleewen. Eng erfollegräich CONNECT baut en TCP-Strom op an näischt méi, also bleift den VPN-Handshake en eegene Test.