Den pull-filter vun OpenVPN passt op méi wéi just déi Route déi Dir gemengt hutt
pull-filter vergläicht Ären Text als Präfix mat de gepushten Optiounen, dofir fänkt route och route-gateway an route-ipv6. Kontrolléiert d'Verben, dann d'Routen.
Dir füügt eng Linn derbäi fir Är lokal Standardroute ze behalen, an duerno erreecht den Tunnel net méi den interne DNS-Server. D'Linn war pull-filter ignore "route", wat net heescht "ignoréier dës Route". Et heescht "werf all gepusht Optioun ewech, vun där den Text mat dëse fënnef Buschstawen ufänkt", an op engem normale Server enthält dat route-gateway, route-metric an route-ipv6 zesumme mat de Routen selwer. D'Checklëscht hei drënner ass wat ech duerchgoen ier ech e Profil ufänken, dee jemand aneres muss benotzen.
De Filter gëllt nëmme fir gepusht Optiounen
pull-filter wierkt nëmmen op d'Optiounslinnen, déi de Server schéckt nodeems den Tunnel opgebaut ass, an op näischt anescht. Optiounen, déi an Ärer lokaler Datei geschriwwe sinn, ginn doduerch net beaflosst, an den Applikatiounsverkéier och net. Wann Dir gehofft hutt, e Prozess dovun ofzehalen den Tunnel ze benotzen, ass dëst komplett dat falscht Instrument a keng Kombinatioun vu Filteren wäert dat maachen.
Dëse Beräich ass nëtzlech, well et heescht datt Dir d'Konfiguratioun vum Server kënnt roueg loossen an awer en Deel dovun lokal ofleene kënnt. Et ass och eng Grenz, déi et wäert ass am Ticket ze notéieren: e Filter ännert wat dëse Client akzeptéiert, net wat de Server ubitt. Et huet keen Effekt op aner Benotzer vum selwechte Profil. Et iwwerlieft och net de Wiessel op en anere Client, deen d'Optioun net ëmsetzt, wat et wäert ass ze wëssen ier Dir e Workflow dorop baut.
Bestätegt wat de Server tatsächlech schéckt ier Dir de Muster schreift. Bei héijer Detailerhéijung dréckt de Client de gepushten Optiounsstring aus, deen hien krut, an dat ass déi eenzeg éierlech Quell fir den exakten Text, mat deem Dir vergläicht:
sudo openvpn --config /etc/openvpn/corp.ovpn --verb 4
sudo grep -n 'pull-filter' /etc/openvpn/corp.ovpn
Liest d'gepusht Linn als eng Lëscht vun Optiounen déi mat Komma getrennt sinn, a bemierkt datt Optiounsnummen an hir Argumenter mat Espace getrennt sinn. Ären Filtertext gëtt mat deem Stroum verglach, dofir sinn Espacen am nächsten Schrëtt esou wichteg.
Den Ofgläich ass e Präfix, dofir entscheeden d'Espacen
De Verglach ass e Stringpräfix, net en analyséierten Optiounsnumm. Dofir passt "route" op route-gateway 10.8.0.1, route-ipv6 2001:db8::/32 an route-metric 100. Een Espace um Enn enkelt en op d'Famill déi Dir wahrscheinlech gemengt hutt, an de vollstännege Präfix enkelt en nach méi op en bestëmmten Destinatioun.
| Filter text | What it actually matches | Typical outcome |
|---|---|---|
"route" | Every option beginning with those letters | Routes, gateway, metric and IPv6 routes all dropped |
"route " | Route entries only, not the hyphenated siblings | The routes go, the rest survives |
"route 10.60." | A single destination range | The narrowest rule, and the easiest to audit |
"dhcp-option DNS" | Pushed DNS settings | Resolver stays local, internal names stop resolving |
Déi lescht Zeil ass déi, déi d'Leit bei der Aarbecht mat gesplécktem Tunnel fänkt. Säin eegene Resolver behalen ass eng legitim Wiel, an et heescht datt all internen Numm elo vun engem Resolver ofhänkt, deen d'privat Zone net gesäit. Dat ass eng Konsequenz déi ee bewosst akzeptéiert, keen Nieweneffekt deen een an der Produktioun entdeckt.
Präfixofgläichung heescht och datt eng Regel sech spéider stëlleg vergréissere kann. Wann de Server eng nei Optioun derbäisetzt déi mat Ärem Text ufänkt, fänkt Äre Filter un sech drop unzewennen ouni datt een Äre Profil ännert. Dat ass de Fehlermodus géint deen een desigene soll, an d'Ofmilderung ass esou vill vun der Optioun wéi méiglech ze passen an net esou wéineg wéi méiglech.
Dräi Verben, dräi verschidde Resultater
accept, ignore an reject sinn net dräi Schreifweise vun der selwechter Iddi. Si ënnerscheede sech doran, wat de Client mat engem Treffer mécht, an ob et een erauskritt.
ignore verwërft déi passend Optioun stëlleg, wat Dir fir eng Astellung wëllt déi Dir bewosst ersat hutt. reject verwërft se a léisst de Client sech beschwéieren, wat Dir wëllt wann hir Absenz an engem Log ze gesi soll sinn amplaz spéider entdeckt ze ginn. accept ass déi positiv Form, benotzt wann Dir eng Erlaabnislëscht opbaut amplaz eenzel Optiounen ewechzehuelen.
Wéi ee Verb Dir och benotzt, d'Filtere ginn an der Rei applizéiert wéi se erschéngen, dofir ginn zwee iwwerlappend Regele en uerdnungsaofhängegt Resultat dat ganz schwéier ze revidéieren ass. Hält eng Regel pro Absicht a setzt den spezifeschsten Text an all eenzel. Wann Dir eng Erlaabnislëscht braucht, wielt léiwer e puer accept Regele wéi e Koup ignore Regele déi op datselwecht erauskommen. Dann kënnen d'Revisoren d'Datei vun uewen no ënnen liesen an d'Resultat viraussäen, an dat ass den eenzegen Test dee sech skaliséiert.
Iwwerpréift déi ugewannt Route an de Resolver, net de Profil
En Filter deen an der Datei richteg ausgesäit kann Iech ëmmer nach mat engem Tunnel loossen deen näischt nëtzleches routet. Iwwerpréift den Effekt um lafende System, wou gepusht Optiounen schonn applizéiert oder verworf goufen:
ip route show default
ip route show | grep -c 'proto static'
resolvectl status | grep -A4 'Link.*tun0'
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://intranet.example.internal/
Déi éischt zwou Linnen soen Iech ob déi gepusht Standardroute ukomm ass a wéi vill statesch Anträg iwwerlieft hunn. D'Resolver-Ufro weist wéi e Server d'Tunnel-Schnittstell tatsächlech benotzt, an do erschéngt meeschtens eng DNS-Iwwerraschung. Déi lescht Linn beäntwert déi eenzeg Fro déi fir e Benotzer zielt.
Test béid Richtungen während Dir do sidd. Eng Regel déi Ären lokalen Internet am Gaang hält awer d'intern Nummopléisung stëlleg brécht, passéiert eng uewerflächlech Kontroll a fällt beim éischten richtege Problem, also hutt eng intern Ressource an eng ëffentlech Websäit am selwechten Test.
Schreift d'Ausnam op a wien se besëtzt
E Filter ass eng Ausnam vum Design vum Bedreiwer, also schreift en op mat engem Grond an engem Revisiounspunkt. "Ignoréiert gepusht Routen fir de lokalen Standard ze behalen" ass revidéierbar; eng blouss Linn an engem Profil net, an déi nächst Persoun wäert se läschen oder duerch Rotschléi erweideren.
D'Versioun zielt och hei. D'Ofgläichverhalen an déi genee akzeptéiert Syntax goufen iwwer OpenVPN 2.4, 2.5 an 2.6 verfeinert, also bestätegt de Muster mam Handbuch vum Build deen Dir auslifert an net mat engem Forumsbeitrag iwwer eng méi al Versioun. D'OpenVPN 2.6-Handbuch dokumentéiert d'Optioun an hir Ofgläichregel.
Schlussendlech, averst d'Ausnam mat deem deen de Server bedreift. En clientsäitege Filter deen enger bewosster Serverpolitik widdersprécht ass en Support-Virfall deen op déi nächst Audit waart, an et ass vill méi bëlleg en ze klären ier de Profil ausgelifert gëtt wéi nodeems een opgefall ass datt d'Routen feelen.