E VPN-Client skripten: d'Ebene virum Passwuert wielen
Hiersteller-CLI, rasdial, eng App-Intent oder UI-Automatiséierung schéitere je anescht. Wielt d'Ebene, haalt de Geheimnis aus argv, a waart op Zoustand, net op Exit-Coden.
Skripten starten VPN-Cliente op der Ebene, déi den Auteur gewielt huet, an déi Ebene ass seelen déi, déi d'Aufgab gebraucht huet. D'Kommandozeil vum Hiersteller, den Uruff vum Betribssystem an en Intent vun enger mobiler App kommen all op verschiddene Punkte am Liewe vun der Verbindung zréck. Si behandle de Geheimnis och anescht, an deen Ënnerscheed entscheet, ob d'Passwuert fir all Benotzer op der Maschinn sichtbar ass. Wielt d'Ebene, ier Dir déi éischt Zeil vum Skript schreift.
Ebene 1: d'Kommandozeil vum Hiersteller
Déi meescht Desktop-Cliente liwweren eng Kommandozeil, déi en Profilnumm an, all ze dacks, e Passwuert unhëlt. Dem Cisco säin ale Client huet e connect-Verb mat Benotzer- a Passwuertargumenter akzeptéiert; macOS bitt den agebaute Service iwwer networksetup un; NetworkManager äntwert op nmcli. Dës Uruff kommen zréck, wann de Befehl fäerdeg ass, wat net dee selwechte Moment ass, an deem den Tunnel benotzbar gëtt. Liest d'Dokumentatioun vum Hiersteller fir d'Versioun, déi Dir ausrullt, well dës Interfaceë ännere sech an e puer ginn komplett ewechgeholl.
nmcli connection up "Work VPN"
networksetup -connectpppoeservice "Work VPN"
De Virdeel ass, datt den Hiersteller säin eegene Profilspeicher kennt, sou datt den Uruff déiselwecht Konfiguratioun benotzt wéi d'GUI. Den Nodeel ass, datt all Hiersteller seng eege Verben erfindt, an e Skript fir ee Client iwwerdroen sech net op en aneren. Betruecht dës Ebene als de kierzte Wee, wann de Client fest ass an d'Versioun festgepinnt.
Ebene 2: den eegene Service vum Betribssystem
Op Windows ass den Uruff Deel vum Betribssystem, an en schafft géint en Telefonbuchandrag amplaz vum Profilspeicher vum Hiersteller. Dat mécht en méi portabel iwwer Cliente fort an méi einfach vu engem Servicekont ze skripten. Et bedeit och, datt d'Verbindung op enger Plaz existéiere kann an op der anerer net, wat Leit verwirrt, déi an der falscher Lëscht kucken.
rasdial "Work VPN" user pass
Get-VpnConnection -Name "Work VPN" | Select-Object ConnectionStatus
Benotzt d'PowerShell-Uewerfläch, wann Dir den Andrag musst erstellen oder läschen, amplaz en ze wielen. D'WMI- an Cmdlet-Ebenen leeën déiselwecht Objeten ënner verschiddenen Nimm op, an Läschen ass eng aner Operatioun wéi Trennen. E Skript, dat nëmme wielt, léisst no enger Migratioun vereelten Andräg zeréck. Préift, a wéi ee Speicher Är Automatiséierung schreift, ier Dir verspriecht, datt d'Botze geschitt.
Remove-VpnConnection -Name "Old VPN" -Force
Get-VpnConnection
Op macOS ass d'Géigestéck d'Lëscht vun den Netzwierksservicer, wou en existéierende Service iwwer den Numm verbonne gëtt, amplaz en op der Plaz ze erstellen.
Zougangsdaten lecken op all Ebene, also wielt de Kanal
Alles, wat Dir op der Kommandozeil iwwerleet, erschéngt an der Prozesstabelle fir all lokale Benotzer, an et iwwerlieft meeschtens och an der Shell-Historie. Dem OpenVPN seng ënnerstëtzt Alternativ ass, de Geheimnis aus enger Datei ze liesen mat --askpass, an d'Datei selwer brauch Rechter, déi dem Vertraue entspriechen, dat Dir an si setzt. Eng benannt Pipe vermeit et, de Geheimnis op d'Plack ze schreiwen, léisst awer all Prozess, dee se kann opmaachen, do schreiwen. Späichert de Geheimnis op Windows am Umeldungsinformatiounsmanager oder an enger Datei, déi nëmmen de Servicekont liese kann, an ni als Literal an enger Batchdatei.
openvpn --config /etc/openvpn/work.conf --askpass /etc/openvpn/work.secret --auth-nocache --daemon
ls -l /etc/openvpn/work.secret
Déiselwecht Regel gëllt fir Token an Eenmolkoden: wann d'Automatiséierung se brauch, brauch d'Automatiséierung e Kanal, deen keen Kommandozeilenargument ass. Rotéiert de Geheimnis, wann Dir de Mechanismus ännert, well den ale Wäert iergendwou an engem Log louch. E Skript, dat funktionéiert a leckt, ass kee funktionéierende Skript.
Waart op Zoustand, da bewaacht een Eenheet
Jiddwereen vun dësen Uruff kommen zréck, ier den Tunnel bereet ass, also pollt den Zoustand, deen de Client opweist, oder probéiert en Zil dobannen mat engem Zäitlimit. Fichieren ze kopéieren oder eng Datebankverbindung direkt nom Verbindungsuruff opzemaachen ass e Rennen, an et schléit intermittéierend esou fehl, datt et wéi e Netzwerkfehler ausgesäit.
ip link show tun0
nmcli -t -f GENERAL.STATE connection show "Work VPN"
curl -sS --max-time 5 https://app.internal.example/health -o /dev/null
Trennen huet dee selwechte Problem an ëmgedréiter Richtung: de Prozess kann opmaachen, ier d'Routen ewech sinn. Benotzt d'Hooks vum Client, wou et se gëtt, wéi d'Up- an Down-Skripten vum OpenVPN oder en ExecStartPost vun enger systemd-Unit, well déi lafen op deem Punkt, deen Dir wierklech wichteg fannt. Hooks lafen mat de Rechter vun deem, wat se opgeruff huet, also brauch en Hook, deen d'Netzwierk nei startet, eng ausdrécklech Regel amplaz enger Unhuel. Halt genau een Besëtzer fir d'Liewensdauer vun der Verbindung.
Wann zwee Iwwerwaacher dee selwechte Profil starten an stoppen, ass d'Resultat eng Neiverbindungsschleife, déi sech wéi en Hierstellerausfall liest. De Runbook endet, wann d'Ebene dokumentéiert ass, de Geheimnis e Kanal huet, deen net argv ass, d'Waardbedingung eng Zoustandspréifung mat Zäitlimit ass, an e Prozess de Liewenszyklus besëtzt.