Eng Fräigab aus Tunnelblick abannen, ouni als root ze lafen
En AppleScript, deen op bleift, kann een Tunnelblick-Profil iwwerwaachen an eng SMB-Fräigab als ugemellte Benotzer abannen, ouni root-Hook oder sudo ouni Passwuert.
De VPN-Client brauch privilegiéiert Hëllef, fir d’Netzwierk nei ze konfiguréieren, an dës Tatsaach gëtt ze breet op alles ronderëm ugewannt. E Skript, dat eng Dateifräigab abënnt, brauch kee root, well d’Fräigab zur Sëtzung vum ugemellte Benotzer a sengen Umeldungsdaten gehéiert. D’Abannen aus dem privilegiéierte Wee erauszehuelen eliminéiert d’Notwendegkeet vu sudo-Reegelen, root-Hooks an Ännerungen un de Matgeliwwerten. Wat bleift, ass e klengt Applet, dat op bleift, een Profil iwwerwaacht an een Versuch mécht.
Firwat dat an d’Benotzersëtzung gehéiert
En agename Volume ass eng Eegeschaft vun der Sëtzung, déi en agename huet. D’Sëtzung vun engem anere Benotzer gesäit en net, an eng Abannung déi root gehéiert, verhält sech anescht wéi déi, déi de Finder gemaach huet. D’Abannung an der Benotzersëtzung ze loossen, erhält déi Semantik.
Privilegiéiert Hëllefsmëttel ginn et fir déi Deeler, déi se wierklech brauchen: eng Tunnelschnittstell uleeën, Routen änneren, de Resolver aktualiséieren. Eng SMB-Fräigab abannen ass keen vun dësen Deeler. En esou ze behandelen, wéi wann et esou wier, forcéiert eng Wiel tëscht sudo ouni Passwuert an engem root-Skript, deen leeft, wann keen do ass. Béides ass e gréissere Risiko wéi de Problem et justifiéiert, an den Usaz iwwer d’Benotzersëtzung vermeit d’Wiel komplett.
D’eegen Verbindungs-Hooks vum Tunnelblick sinn hei keen Ersatz, well se baussent der Desktop-Sëtzung lafen an hir Reiefolleg vis-à-vis vun de Skripte vum Client net definéiert ass. Den Zoustand vun engem Benotzer-Applet aus ofzefroen ass e méi klengen Mechanismus mat manner Annahmen.
Beweist éischt vun Hand, datt d’Fräigab funktionéiert
Automatiséierung kann keng Route, keng Berechtegung a kee Kont beräitstellen, déi et net gëtt. Verbann de VPN manuell an op d’Fräigab am Finder, ier s du e Skript schreifs. Wann dat feelt, wäert d’Skript op eng méi verwirrend Manéier feelen.
Notéier déi dräi Wäerter, déi d’Skript wäert benotzen: den Profilnumm genee esou wéi den Tunnelblick en opzielt, d’Fräigab-URL an den Volume-Numm, deen de Finder no dem Abannen weist. Den Volume-Numm ass wichteg, well d’Kontroll fir eng bestoend Abannung en benotzt, an eng Kontroll nëmmen iwwer den Numm ass e Komfortschutz, keen Beweis fir d’Identitéit vum Server. Benotz en Numm, deen um Rechner eenzegaarteg ass. Bestätegt duerno, datt de Server iwwerhaapt äntwert.
smbutil view //files.corp.example
osascript -e 'tell application "Tunnelblick" to get state of first configuration whose name is "Office"'
mount | grep -i smbfs
Den éischte Kommando beweist, datt de Server äntwert, den zweeten, datt den Profilnumm opgeléist gëtt, an den drëtten weist, wéi eng erfollegräich Abannung ausgesäit. Halt all dräi fest, ier s du eppes automatiséiers.
Den Profilzoustand aus dem Tunnelblick liesen
Den Tunnelblick stellt seng Konfiguratiounen an hire Zoustand iwwer AppleScript bereet, an dat ass den eenzegen Hook, deen dëst Design brauch. Den Zoustand, op deen et ukënnt, ass d’Zeechenketten, déi fir genee dee Profil gemellt gëtt, net d’Präsenz vun der Applikatioun.
D’Ofroe huet Konsequenzen, déi et wäert sinn ze nennen. Eng Widderverbindung, déi méi kuerz wéi den Intervall ass, kann onbemierkt virugoe, an d’Applet gesäit den Iwwergang guer net. Dat ass akzeptabel fir eng Abannungswaach an onakzeptabel fir eppes, wat op all Evenement muss reagéieren. Wann s du Evenementskonsequenz brauchs, ass dëst de falsche Mechanismus, net e Mechanismus, deen eng méi kuerz Timer brauch. Wielt den Intervall mat dësem Kompromëss am Kapp.
property attempted : false
on idle
set profileName to "Office"
set shareURL to "smb://files.corp.example/OfficeTeam"
set volName to "OfficeTeam"
tell application "Tunnelblick" to set vpnState to state of first configuration whose name is profileName
if vpnState is not "CONNECTED" then
set attempted to false
return 20
end if
tell application "Finder" to set mounted to (exists disk volName)
if (not mounted) and (not attempted) then
set attempted to true
try
mount volume shareURL
end try
end if
return 20
end idle
Exportéier en als Applikatioun mat der Optioun op ze bleiwen, a start en duerno an der ugemellter Sëtzung amplaz iwwer sudo.
Eng Kéier abannen, dann ophalen ze probéieren
D’Probit-Flag ass et, wat verhënnert, datt dat eng Schleif gëtt, déi Umeldungsdaten errät. Soubal d’Applet probéiert huet, waart et, bis de Verbindungszoustand sech ännert, ier et erëm probéiert.
Dee Verhalen ass bewosst. Eng Fräigab, déi d’Abannung verweigert, verweigert se meeschtens aus engem Grond, deen en neien Versuch net ka beheben, an déi widderholl Versich maachen aus enger Ufro eng Rei dovu. D’Flag gëtt zréckgesat, wann de Profil den verbonnene Zoustand verléisst, sou datt eng richteg Widderverbindung genee een neie Versuch gëtt. D’Applet ofschléissen an nei starten setzt en och zréck, an dat ass déi manuell Iwwersteierung. Keen vun de Weeër verstoppt e Fehler; béid loossen en am Finder sichtbar.
D’Skript dréit kee Passwuert, an dat soll esou bleiwen. Looss d’Abannungsoperatioun froen, a looss de Schlësselbund maachen, wat d’Organisatioun ënnerstëtzt. En Umeldungsdatum an eng URL anzebauen mécht aus engem Komfortskript e Geheimnis, dat muss gerotéiert ginn.
Wat den Hëllefsmëttel net ka
Dräi Limiten ass et wäert, nieft dem Applet ze schreiwen. Et kann en besueten Volume no engem Netzwierkfehler net auswerfen, et kann net garantéieren, datt DNS an de Server bereet sinn, wann den Zoustand verbonnen seet, an et reagéiert net op all Widderverbindung.
Déi éischt Limit ass an der Praxis am wichtegsten. Eng Fräigab, deenen hire Server verschwënnt, léisst e Volume, deen aben ausgesäit a beim Zougriff blockéiert, an déi héiflech Léisung ass, Dateioperatiounen ofzeschléissen an virun enger geplangter Trennung auszewerfen. Déi zweet erkläert déi meescht feelgeschloen éischt Versich: den Tunnel steet, während de Resolver nach net nogezu war, also waart a bann dann eng Kéier vun Hand, fir et ze bestätegen. Déi drëtt ass de Kompromëss bei der Ofroe vun virdrun, keen Fehler dee repariéiert muss ginn.
Fir en onbewaachten Rechner oder eng verwalt Flott ass dëst Design déi falsch Form. Benotz eng Abannungsrichtlinie, déi dem Administrateur gehéiert, amplaz en Desktop-Applet zu engem privilegiéierte Service auszebauen.