script-security-Niveauen an OpenVPN vun 0 bis 3, a wat jiddwereen opmécht
All script-security-Niveau erweidert, wat e Profil ausféiere kann: fir d'éischt Administratiounshëllefer, duerno Benotzerskripten, duerno Passwierder an der Ëmwelt. Liest d'Direktiven.
Importéiert e Profil an en Desktop-Client an den éischte Feeler ass dacks eng Zeil, déi de Client refuséiert ze befollegen: en Skripthook, deen en net ausféiere wäert, oder e script-security-Wäert, deen en als ze permeabel ugesäit. D'Zuel erhéijen hëlt den Dialog ewech. Et erweidert awer och, wat dee Profil op Ärem Rechner ausféiere kann, wat eng komesch Saach ass ze ginn, just fir eng Warnung zouzemaachen. Verfollegt den Import bis zur Direktiv an d'Entscheedung gëtt konkret.
Vum Import-Dialog bis zur Direktiv
De Profil ass eng Textdatei mat Direktiven, an de Client liest se, ier iergendeen Tunnel existéiert. Eng Direktiv wéi up, down oder tls-verify nennt en externen Programm, deen OpenVPN zu engem bestëmmten Zäitpunkt ausféiere soll. Ob OpenVPN bereet ass, en auszeféieren, ass eng separat Astellung mam Numm script-security, an de Profil setzt se meeschtens och.
D'Warnung geet also net ëm Kryptografie oder Zertifikater. Si geet ëm eng Konfiguratiounsdatei, déi de Client freet, eppes um Host auszeféieren, an ëm de Client, dee préift, ob säin aktuellen Erlaagniveau där Ufro erlaabt.
Zwee verschidde Feeler gesinn an dësem Stadium gläich aus. E Profil, deen en Niveau freet, deen de Client net gëtt, produzéiert eng Oflehnung. E Profil, deen en Niveau freet, deen de Client gëtt, awer de Skript feelt, produzéiert amplaz en Feeler bei der Ausféierung, an déi zwee ginn an den Ënnerstëtzungs-Threads gemëscht. Dat engt ass eng Erlaagnisfro an dat anert eng Verpackungsfro.
Wat jiddwer Niveau tatsächlech opmécht
Niveau 0 verbitt extern Programmopruffer komplett, wat kohärent ass fir e Client, dee seng eege Schnëttstell ouni Hëllef konfiguréiert, an inkohärent fir een, deen d'Betribssystem opruft. Niveau 1, den Standard, erlaabt déi agebaut ausféierbar Dateien, déi d'Schnëttstell- an d'Routkonfiguratioun brauchen. Keen vun den zwee Niveauen ausféiert eppes, wat de Benotzer geliwwert huet.
| Level | What OpenVPN may execute | What it exposes |
|---|---|---|
| 0 | No external programs at all | Interface and route setup must not depend on helpers |
| 1 (default) | Built-in helpers such as ip, ifconfig, route or netsh | Privileged commands the platform already ships |
| 2 | Built-in helpers plus user-defined scripts | Whatever the named script does with the client's privileges |
| 3 | Everything above, plus passwords in environment variables | Credentials visible to child processes and their logs |
Niveau 2 ass déi interessant Grenz, well en benotzerdefinéiert Skripten zouloosst. Vun deem Punkt un gëllen d'Privilegien vum Client fir Code, deen Dir vläicht ni geliest hutt, opgeruff zu Momenter, déi Dir net gewielt hutt, an enger Ëmwelt, déi Verbindungsdetailer enthält. Niveau 3 geet méi wäit a erlaabt, Passwierder iwwer Ëmweltvariabelen ze schécken, dofir beschreift d'Handbuch en als potenziell onsécher.
Keen vun dësen Zuelen ass eng Stäerkt-Astellung. E Profil op Niveau 3 huet keng besser Verschlësselung wéi een op Niveau 1; et huet just eng méi grouss Ausféierungsfläch, an den Tunnel ass identesch.
Entscheet, wat de Profil verdéngt
Frot, wofir den Skript ass, ier Dir frot, wéi en Niveau en brauch. En Hook, deen DNS-Astellungen duerchdréckt oder no der Verbindung eng Rout reparéiert, ass e legitime Grond, eppes auszeféieren. En Hook, deen eng onbekannt Binärdatei an engem temporäre Verzeechnis opruft, ass e Grond ze stoppen.
De Wee vum Skript zielt esou vill wéi de Skript. En relativ Wee gëtt géint dat Verzeechnis opgeléist, dat de Client benotzt, an en beschreifbaart Verzeechnis mécht aus engem eenzegaartegen Import eng permanent Ausféierungsplaz. Absolut Weeër an engem Verzeechnis, dat de Benotzer net ka änneren, sinn d'Form, déi ze bevorzuge ass.
Skripten ierwen och d'Ëmwelt vum Client, wou d'Authentifikatiounsdaten an d'Verbindungsmetadaten liewen. Genau déi Ierfschaft mécht Niveau 3 geféierlech a Kombinatioun mat engem Skript, deen seng Ëmwelt loggt, an dat ass de Grond, firwat en diagnosteschen Dump vun engem Client mat aktive Skripten en zweeten Bléck verdéngt, ier en an en Ticket gepecht gëtt. Entfernt d'Ëmwelt, ier Dir se deelt.
grep -nE 'script-security|^up |^down |tls-verify' client.ovpnÄnnert eng Saach, a beobacht dann och den Ofbau
Wann de Profil wierklech e Skript brauch, ännert just den Niveau an just fir dee Profil. Féiert de Client am Virdergrond mat ausféierlecher Ausgab aus, sou datt dem Skript seng eege Feeler sichtbar sinn, amplaz vun engem Service-Manager verschléckt ze ginn.
openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default
Test den ganzen Liewenszyklus, net just d'Verbindung. En Hook beim Ofschalten, deen feelt, léisst Route op en douden Tunnel weisen, wat eng Maschinn ergëtt, déi verbonne schéngt a néierens hikënnt. Verbënnt eng Kéier nei a trennt eng Kéier, ier Dir d'Ännerung als fäerdeg bezeechent, a préift no jiddwerengem d'Routtabell.
Halt eng Kopie vum Originalprofil. Wann e Plattform-Client dat selwecht Skriptmodell net ëmsetzt, kann d'Läschen vun Direktiven, bis den Import geléngt, déi DNS- oder Routintegratioun ewechhuelen, déi den Tunnel gebraucht huet, an d'Verbindung déi entsteet authentifizéiert sech perfekt, während si näischt opléist.
D'Entscheedung, déi ze dokumentéieren ass, ass schmuel: wéi ee Skript, op wéi engem Wee, op wéi engem Niveau accordéiert, fir wéi ee Profil. Alles aneres am Profil bleift onverännert, an dat ass eng Zeil, déi en Iwwerpréifer nogoe kann.