En Skript, deen no der VPN muss lafen, brauch en Evenement vum Komponent deen d’Verbindung besëtzt. Eng Datei an engem ale Netzwierk-Hook-Verzeechnes ass keen Zréckruff fir all VPN, déi NetworkManager, pppd oder en eegene OpenVPN-Prozess kéinten uleeën. Jidderee vun dësen Eegentümer mellt en aneren Evenement mat enger anerer Ëmgebung, dofir muss den Eegentümer identifizéiert ginn, ier den Hook gewielt gëtt. Soss ass de Skript korrekt a leeft einfach ni.

Fir eng VPN, déi vum NetworkManager geréiert gëtt, ass den Dispatcher déi richteg Plaz, an vpn-up ass déi richteg Aktioun.

Benotzt vpn-up, net den Evenement vun der Schnëttstell

Den Dispatcher ënnerscheet up vun vpn-up. Den éischten mellt eng aktivéiert Schnëttstell; den zweeten mellt eng aktivéiert VPN-Verbindung. Datt d’Wi-Fi eropkënnt heescht just, datt de Basislink existéiert; den Tunnel verhandelt vläicht nach, oder authentifizéiert sech ni.

De Skript kritt d’Schnëttstell an d’Aktioun, wärend d’Detailer vun der Verbindung iwwer d’Ëmgebung kommen, dorënner d’UUID vum Profil an d’IP-Schnëttstell vun der VPN. Liest dës Variabelen, amplaz d’Identitéit aus Apparatnimm ofzeleeën.

Begrenzt d’Passung op eng Verbindung

Passt op d’UUID vun der Verbindung oder eng aner Identitéit, déi den Dispatcher liwwert, amplaz op e tun-Prefix oder ppp0. Schnëttstell-Nimm sinn net stabil, et kënnen zur selwechter Zäit méi wéi een Tunnel existéieren, an zwee Profiler kënnen deeselwechten ugewisene Numm droen. En tun-Prefix passen heescht, datt de Skript iergendwann fir eng Verbindung ausléist, déi kee wollt beréieren. E kann och zweemol fir ee Profil ausléisen, wann eng Rewi-Verbindung den Apparat nei opbaut.

Maacht d’Aufgab idempotent. En Zréckruff, deen bei all Opruff eng Route bäisetzt, fëllt d’Tabell iergendwann mat Duplikater, an déi zweet Kopie ass déi, déi d’Routage ëmbrécht.

Wësst, wat d’Aktivatioun net beweist

vpn-pre-up lafe virum NetworkManager mellt, datt d’VPN komplett aktivéiert ass, an de Manager waart op dës Skripten. Benotzt eng blockéierend Etapp nëmme wann d’Aufgab wierklech dohinner gehéiert, well eng lues Iwwerpréiwung d’Aktivatioun verzögert, op déi all aner Komponent waart.

Datt Routen do sinn, beweist net, datt eng Applikatioun lauschtert, en private Numm sech opléist oder eng Benotzersëtzung existéiert. Iwwerpréift dat getrennt mat enger begrenzter Zäit, a mellt wéi eng Schicht versot huet, amplaz déi ganz Kette nach eng Kéier ze probéieren.

Respektéiert de Kontext, an deem de Skript leeft

D’Skripte vum Dispatcher lafen als root, baussent all Benotzersëtzung. Geet net dovun aus, datt d’Ëmgebung vum ageloggte Benotzer, seng grafesch Sëtzung oder e opgespaarte Schlësselring verfügbar sinn. Keen sollt op de fehlenden Desktop-Kontext reagéieren, andeems en all Umeldungsdatum fir all Prozess liesbar mécht. Haalt d’Aarbecht vun der Benotzersëtzung an engem Benotzerservice oder engem Sëtzungshëllef, deen de Zréckruff signale kann, ouni de Benotzer ze imitéieren.

D’Eegentum an d’Rechter um Skript zielen och. Eng Datei, déi als root ausgefouert gëtt a vun all Benotzer ersat ka ginn, ass en Ewech fir d’Rechter ze erhiewen, an dat ass eng Feststellung onofhängeg dovun, ob d’Logik vun der VPN korrekt ass.

Plangt d’Trennung, déi ni geschitt

Den NetworkManager dokumentéiert, datt vpn-pre-down net ausginn gëtt fir forcéiert Trennungen wéi en onerwaarten Enn oder de Verloscht vun der Verbindung. Dofir ass eng Botz, déi just ëm e rouegt pre-down gebaut ass, vun der Konstruktioun hier onkomplett. All gedeelten Zoustand, deen de Skript ännert, brauch en aneren Eegentümer, deen en no engem Crash restauréiere kann, an dee Wee vun der Restauratioun muss getest ginn amplaz ugeholl.

Test de Hook mat enger normaler Verbindung, enger Rewi-Verbindung, enger bewosster Trennung an engem gezunnene Kabel. Registréiert d’UUID, d’Aktioun an d’Schnëttstell déi ausgeléist huet, ouni Geheimnisser ze loggen. Dee Registre ass deen eenzegen zouverlässegen Noweis, datt de Hook fir déi Verbindung gelaf ass, déi Dir gemengt hutt, an et ass deen, deen déi nächst Ännerung sécher mécht.

Ähnlech Artikelen