Skriptjar ta' klijent VPN: agħżel is-saff qabel il-password
Il-CLI tal-fornitur, rasdial, app intent jew awtomazzjoni tal-UI jonqsu kull wieħed mod differenti. Agħżel is-saff, żomm is-sigriet barra minn argv, u stenna l-istat, mhux il-kodiċi tal-ħruġ.
L-iskripts jibdew il-klijenti VPN fuq is-saff li għażel l-awtur, u dak is-saff rari huwa dak li kienet teħtieġ il-ħidma. Il-linja tal-kmand tal-fornitur, id-dialer tas-sistema operattiva u app intent mobbli kollha jerġgħu lura fi punti differenti fil-ħajja tal-konnessjoni. Huma wkoll jimmaniġġjaw is-sigriet b'mod differenti, u dik id-differenza tiddeċiedi jekk il-password tkunx viżibbli għal kull utent fuq il-magna. Agħżel is-saff qabel ma tikteb l-ewwel linja tal-iskript.
Saff 1: il-linja tal-kmand tal-fornitur
Il-biċċa l-kbira tal-klijenti tad-desktop jipprovdu linja tal-kmand li tieħu isem tal-profil u, wisq spiss, password. Il-klijent antik ta' Cisco aċċetta verb connect b'argumenti tal-utent u tal-password; macOS jesponi s-servizz integrat permezz ta' networksetup; NetworkManager iwieġeb lil nmcli. Dawn is-sejħiet jerġgħu lura meta l-kmand jispiċċa, li mhux l-istess mument meta l-mina ssir użabbli. Aqra d-dokumentazzjoni tal-fornitur stess għall-verżjoni li tibgħat, għax dawn l-interfaces jinbidlu u wħud jitneħħew għal kollox.
nmcli connection up "Work VPN"
networksetup -connectpppoeservice "Work VPN"
Il-vantaġġ huwa li l-fornitur jaf il-maħżen tal-profili tiegħu stess, għalhekk is-sejħa tuża l-istess konfigurazzjoni li tuża l-GUI. L-iżvantaġġ huwa li kull fornitur jivvinta l-verbi tiegħu stess, u skript miktub għal klijent wieħed ma jgħaddix għal ieħor. Ikkunsidra dan is-saff bħala l-eqreb triq meta l-klijent huwa fiss u l-verżjoni hija ffissata.
Saff 2: is-servizz proprju tas-sistema operattiva
Fuq Windows id-dialer huwa parti mis-sistema operattiva, u jaħdem kontra dħul fil-ktieb tat-telefon minflok il-maħżen tal-profili tal-fornitur. Dan jagħmlu aktar portabbli bejn il-klijenti u aktar faċli biex jiġi skriptjat minn kont tas-servizz. Ifisser ukoll li l-konnessjoni tista' teżisti f'post u mhux fl-ieħor, li tħawwad lin-nies li jħarsu lejn il-lista ħażina.
rasdial "Work VPN" user pass
Get-VpnConnection -Name "Work VPN" | Select-Object ConnectionStatus
Uża l-wiċċ tal-PowerShell meta jkollok bżonn toħloq jew tneħħi d-dħul minflok tagħmel id-dial. Is-saffi WMI u cmdlet jesponu l-istess oġġetti taħt ismijiet differenti, u t-tneħħija hija operazzjoni separata mid-daħla. Skript li jagħmel id-dial biss iħalli dħul skadut warajh wara migrazzjoni. Iċċekkja lejn liema maħżen l-awtomazzjoni tiegħek tikteb qabel ma twiegħed li s-sejba sseħħ.
Remove-VpnConnection -Name "Old VPN" -Force
Get-VpnConnection
Fuq macOS l-ekwivalenti hija l-lista tas-servizzi tan-netwerk, fejn servizz eżistenti jiġi konness bl-isem minflok jinħoloq fil-pront.
Il-kredenzjali jnixxu f'kull saff, għalhekk agħżel il-kanal
Kull ma tgħaddi fuq il-linja tal-kmand jidher fit-tabella tal-proċessi għal kull utent lokali, u normalment jibqa' ħaj ukoll fl-istorja tax-shell. L-alternattiva appoġġata ta' OpenVPN hija li taqra s-sigriet minn fajl b'--askpass, u l-fajl stess għandu bżonn permessi li jaqblu mal-fiduċja li tpoġġi fih. Pajp bl-isem jevita li jinkiteb is-sigriet fuq id-diska iżda jħalli lil kwalunkwe proċess li jista' jiftħu jikteb hemmhekk. Fuq Windows, aħżen is-sigriet fil-maniġer tal-kredenzjali, jew f'fajl li jista' jaqra biss il-kont tas-servizz, u qatt bħala litteral f'fajl batch.
openvpn --config /etc/openvpn/work.conf --askpass /etc/openvpn/work.secret --auth-nocache --daemon
ls -l /etc/openvpn/work.secret
L-istess regola tapplika għat-tokens u l-kodiċi ta' darba: jekk l-awtomazzjoni teħtiġhom, l-awtomazzjoni teħtieġ kanal li mhuwiex argument tal-linja tal-kmand. Dawwar is-sigriet meta tbiddel il-mekkaniżmu, għax il-valur antik ilu jinsab f'xi log. Skript li jaħdem u jnixxi mhuwiex skript li jaħdem.
Stenna l-istat, imbagħad issorvelja proprjetarju wieħed
Kull waħda minn dawn is-sejħiet terga' lura qabel ma l-mina tkun lesta, għalhekk stħarreġ l-istat li jesponi l-klijent jew ipprova destinazzjoni ġewwa fih b'timeout. L-ikkupjar ta' fajls jew il-ftuħ ta' konnessjoni mad-database eżatt wara s-sejħa tal-konnessjoni hija tiġrija, u tonqos b'mod intermittenti b'mod li jidher bħal difett tan-netwerk.
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
Id-daħla għandha l-istess problema bil-maqlub: il-proċess jista' joħroġ qabel ma l-mogħdijiet ikunu telqu. Uża l-hooks tal-klijent fejn jeżistu, bħall-iskripts up u down ta' OpenVPN jew ExecStartPost ta' unità systemd, għax dawk jimxu fil-punt li tabilħaqq jimpurtak minnu. Il-hooks jimxu bil-privileġġi ta' dak li sejħilhom, għalhekk hook li jerġa' jibda n-netwerk jeħtieġ regola espliċita minflok suppożizzjoni. Żomm proprjetarju wieħed eżatt għall-ħajja tal-konnessjoni.
Meta żewġ superviżuri jibdew u jwaqqfu l-istess profil, ir-riżultat huwa loop ta' rikonnessjoni li jinqara bħal waqfa tal-fornitur. Ir-runbook jispiċċa meta s-saff ikun dokumentat, is-sigriet ikollu kanal li mhuwiex argv, il-kundizzjoni tal-istennija hija verifika tal-istat b'timeout, u proċess wieħed jippossjedi ċ-ċiklu tal-ħajja.