Sgriptio cleient VPN: dewiswch yr haen cyn y cyfrinair
Mae CLI y gwerthwr, rasdial, bwriad ap neu awtomeiddio UI yn methu'n wahanol bob tro. Dewiswch yr haen, cadwch y gyfrinach allan o argv, aroswch am gyflwr, nid am godau gadael.
Mae sgriptiau'n cychwyn cleientiaid VPN ar ba haen bynnag a ddewisodd yr awdur, ac anaml yw'r haen honno'r un roedd y gwaith ei angen. Mae llinell orchymyn y gwerthwr, deialydd y system weithredu a bwriad ap symudol i gyd yn dychwelyd ar wahanol bwyntiau yn hanes y cysylltiad. Maent hefyd yn trin y gyfrinach yn wahanol, ac mae'r gwahaniaeth hwnnw'n penderfynu a yw'r cyfrinair yn weladwy i bob defnyddiwr ar y peiriant. Dewiswch yr haen cyn i chi ysgrifennu llinell gyntaf y sgript.
Haen 1: llinell orchymyn y gwerthwr
Mae'r rhan fwyaf o gleientiaid penbwrdd yn cludo llinell orchymyn sy'n cymryd enw proffil ac, yn rhy aml, gyfrinair. Roedd hen gleient Cisco yn derbyn berf connect gyda dadleuon defnyddiwr a chyfrinair; mae macOS yn datgelu'r gwasanaeth cynhenid trwy networksetup; mae NetworkManager yn ateb nmcli. Mae'r galwadau hyn yn dychwelyd pan fydd y gorchymyn wedi gorffen, nad yw'n golygu'r un foment ag y daw'r twnnel yn ddefnyddiadwy. Darllenwch ddogfennaeth y gwerthwr ei hun ar gyfer y fersiwn rydych yn ei defnyddio, oherwydd mae'r rhyngwynebau hyn yn newid ac mae rhai'n cael eu tynnu'n gyfan gwbl.
nmcli connection up "Work VPN"
networksetup -connectpppoeservice "Work VPN"
Y fantais yw bod y gwerthwr yn adnabod ei stôr proffil ei hun, felly mae'r alwad yn defnyddio'r un cyfluniad y byddai'r GUI yn ei ddefnyddio. Yr anfantais yw bod pob gwerthwr yn dyfeisio ei ferfau ei hun, ac nid yw sgript a ysgrifennwyd ar gyfer un cleient yn trosglwyddo i un arall. Edrychwch ar yr haen hon fel y llwybr byrraf pan fo'r cleient yn sefydlog a'r fersiwn wedi'i phinio.
Haen 2: gwasanaeth y system weithredu ei hun
Ar Windows mae'r deialydd yn rhan o'r system weithredu, ac mae'n gweithio yn erbyn cofnod llyfr ffôn yn hytrach na stôr proffil y gwerthwr. Mae hynny'n ei wneud yn fwy cludadwy ar draws cleientiaid ac yn haws ei sgriptio o gyfrif gwasanaeth. Mae hefyd yn golygu y gall y cysylltiad fod mewn un lle ac nid yn y llall, sy'n drysu pobl sy'n edrych yn y rhestr anghywir.
rasdial "Work VPN" user pass
Get-VpnConnection -Name "Work VPN" | Select-Object ConnectionStatus
Defnyddiwch arwyneb PowerShell pan fydd angen i chi greu neu dynnu'r cofnod yn lle ei ddeialu. Mae haenau WMI a cmdlet yn datgelu'r un gwrthrychau o dan enwau gwahanol, ac mae tynnu'n weithred ar wahân i ddatgysylltu. Bydd sgript sy'n deialu'n unig yn gadael cofnodion hen ffasiwn ar ôl ar ôl mudo. Gwiriwch pa stôr y mae eich awtomeiddio'n ysgrifennu iddo cyn i chi addo bod y glanhau'n digwydd.
Remove-VpnConnection -Name "Old VPN" -Force
Get-VpnConnection
Ar macOS y cyfwerth yw'r rhestr o wasanaethau rhwydwaith, lle mae gwasanaeth presennol yn cael ei gysylltu wrth enw yn hytrach na'i greu ar y pryd.
Mae manylion mewngofnodi'n gollwng ar bob haen, felly dewiswch y sianel
Mae unrhyw beth a basiwch ar y llinell orchymyn yn ymddangos yn nhabl y prosesau i bob defnyddiwr lleol, ac mae fel arfer yn goroesi yn hanes y plisgyn hefyd. Y dewis a gefnogir gan OpenVPN yw darllen y gyfrinach o ffeil gyda --askpass, ac mae angen caniatadau ar y ffeil ei hun sy'n cyfateb i'r ymddiriedaeth rydych yn ei rhoi ynddi. Mae pibell enwir yn osgoi ysgrifennu'r gyfrinach i'r disg ond mae'n gadael i unrhyw broses sy'n gallu ei hagor ysgrifennu yno. Ar Windows, storiwch y gyfrinach yn y rheolwr manylion mewngofnodi, neu mewn ffeil na all ond y cyfrif gwasanaeth ei darllen, ac yn byth fel llenor mewn ffeil swp.
openvpn --config /etc/openvpn/work.conf --askpass /etc/openvpn/work.secret --auth-nocache --daemon
ls -l /etc/openvpn/work.secret
Mae'r un rheol yn berthnasol i docynnau a chodau un-amser: os oes eu hangen ar yr awtomeiddio, mae angen sianel ar yr awtomeiddio nad yw'n ddadl llinell orchymyn. Cylchdroi'r gyfrinach pan fyddwch yn newid y mecanwaith, oherwydd mae'r hen werth wedi bod yn eistedd mewn log rhywle. Nid sgript sy'n gweithio yw sgript sy'n gweithio ac yn gollwng.
Aroswch am gyflwr, yna goruchwyliwch un perchennog
Mae pob un o'r galwadau hyn yn dychwelyd cyn i'r twnnel fod yn barod, felly holwch y cyflwr y mae'r cleient yn ei ddatgelu neu profwch gyrchfan y tu mewn iddo gyda therfyn amser. Mae copïo ffeiliau neu agor cysylltiad cronfa ddata yn syth ar ôl y galwad cysylltu yn ras, ac mae'n methu'n ysbeidiol mewn ffordd sy'n edrych fel nam rhwydwaith.
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
Mae gan ddatgysylltu'r un broblem i'r gwrthwyneb: gall y broses ddod i ben cyn i'r llwybrau fynd. Defnyddiwch fachau'r cleient lle maent yn bodoli, fel y sgriptiau up a down yn OpenVPN neu ExecStartPost uned systemd, oherwydd maent yn rhedeg ar y pwynt rydych yn poeni amdano mewn gwirionedd. Mae bachau'n rhedeg gyda braint beth bynnag a'u galwodd, felly mae angen rheol benodol ar fach sy'n ailgychwyn rhwydweithio yn lle rhagdybiaeth. Cadwch un perchennog yn union ar gyfer oes y cysylltiad.
Pan fo dau oruchwyliwr yn cychwyn ac yn stopio'r proffil hwnnw, y canlyniad yw dolen ailgysylltu sy'n darllen fel methiant darparwr. Daw'r runbook i ben pan fo'r haen wedi'i dogfennu, gan fod gan y gyfrinach sianel nad yw'n argv, y cyflwr aros yn wiriad cyflwr gyda therfyn amser, ac un broses yn berchen ar y cylch bywyd.