Awtomeiddio mewngofnodi VPN pan nad oes gan y cleient API na CLI
Dewiswch lwybr y sgript yn ôl yr hyn y mae'r cleient yn ei gynnig: proffil sy'n eiddo i'r system weithredu, CLI gan y gwerthwr sy'n darllen cyfrinach o stdin, neu awtomeiddio GUI fel dewis olaf.
Mae tri chwestiwn yn penderfynu hyn, a thri yn unig. A yw'r cleient yn creu cofnod cysylltiad yn y system weithredu sy'n goroesi ailgychwyn? A yw'n cynnig llinell orchymyn a all gymryd cyfrinach o rywbeth heblaw ei restr dadleuon? A yw ei ofyniad hunaniaeth yn gorfodi dyn i ateb anogwr porwr? Atebwch yn y drefn honno ac mae'r dewis yn peidio â bod yn fater o chwaeth, oherwydd gall tasg a drefnwyd fod mor ddi-ben â'r hyn y mae'r gwannaf o'r tri ateb yn ei ganiatáu.
Cyfatebwch y cleient i'r tri haen y gellir eu sgriptio
Mae proffil brodorol y system weithredu, CLI gwerthwr, cleient GUI yn unig a chleient SSO porwr angen pedair dull gwahanol. Mae'r ddau gyntaf yn goroesi ailgychwyn heb oruchwyliaeth, ac ailgychwyn heb oruchwyliaeth yw'r holl bwynt. Mae'r ddau arall angen penderfyniad dylunio cyn iddynt angen sgript.
| What the client exposes | What to script | What still bites |
|---|---|---|
| OS-native connection entry | rasdial, scutil --nc, nmcli | Tunnel is up before DNS and routes settle |
| Vendor CLI reading stdin | CLI wrapped by the scheduler, secret from the credential store | Prompt text changes between releases |
| GUI only | Pinned version plus a state assertion | Locale and DPI break the click targets |
Llwybr un: mae'r system weithredu eisoes yn berchen ar y proffil
Dyma'r llwybr rhataf a'r un y mae'r rhan fwyaf o bobl yn ei anwybyddu. Ar Windows mae rasdial "Office" yn cysylltu ac mae rasdial "Office" /disconnect yn ei gau; mae rasphone -d "Office" yn gyrru'r un cofnod drwy'r rhyngwyneb deialu. Mae macOS yn rhestru gwasanaethau a gedwir gyda scutil --nc list ac yn cychwyn un gyda scutil --nc start. Mae Linux yn rhoi'r gwaith i NetworkManager.
rasdial "Office" user *
scutil --nc start "Office"
nmcli connection up id Office
nmcli -t -f GENERAL.STATE connection show OfficeDim ond proffiliau sy'n eiddo i'r system weithredu y mae'r rhyngwynebau hyn yn eu hadnabod, felly ni allant yrru cleient trydydd parti mympwyol. Pan fo'r proffil ar goll, crëwch ef unwaith a gadewch i'r sgript ei wirio yn lle ei ail-greu ar bob rhediad. Gwnewch y sgript yn idempotent: darllenwch y cyflwr presennol, cysylltwch yn unig pan fo'n ddatgysylltiedig, ac yna profwch yr enw preifat sydd ei angen ar y dasg mewn gwirionedd.
Llwybr dau: mae'r gwerthwr yn cynnig llinell orchymyn
Mae rhai cleientiaid yn dangos digon o linell orchymyn i'w lapio: mae Cisco AnyConnect wedi cael helpwr cysylltu'n unig ers blynyddoedd, ac mae OpenConnect yn siarad protocolau AnyConnect, GlobalProtect a Pulse o un deuaidd. Y gofyniad sy'n bwysig yw nid y rhestr baneri ond o ble mae'r gyfrinach yn dod, oherwydd gall unrhyw un sy'n gallu rhestru prosesau ddarllen cyfrinair yn y rhestr dadleuon.
printf '%s\n' "$VPN_PASS" | openconnect --protocol=anyconnect \
--user "$VPN_USER" --passwd-on-stdin vpn.example.comNid oes gan FortiClient a rhai adeilediadau GlobalProtect CLI a gefnogir o gwbl, ac mae cleient cymunedol neu ddisodliad trwyddedig gan y gwerthwr yn benderfyniad caffael, nid yn ddatrysiad. Yn CI, rhowch hawliau cyfrif y gwasanaeth ar y deuaidd hwnnw'n union, nid ar blisgyn, fel na all dadl a chwanegwyd ddod yn orchymyn root.
Llwybr tri: awtomeiddio GUI, a pham ei fod yn olaf
Pan nad oes rhyngwyneb gan y cleient swyddogol, mae sgriptiau'n clicio botymau drwy negeseuon ffenestr neu SendKeys. Mae hynny'n fregus o ran fersiwn ac iaith, gall adael sesiwn hanner-gysylltiedig, ac mae'n methu'n dawel pan fo deialog yn ymddangos yn yr iaith anghywir. Os cymerwch y llwybr hwn, pinwch fersiwn y cleient, gwiriwch gyflwr y cysylltiad sy'n deillio wedyn, a chadwch gynllun wrth gefn â llaw wedi'i ddogfennu wrth ymyl y sgript.
Mae'r un rhybudd yn berthnasol i ddatgysylltu cleient yn rymus drwy ladd ei broses. Gall y twnnel oroesi'r broses, neu gall goruchwyliwr ei ailgychwyn, felly nid yw lladd-ac-ailgychwyn yn ailosodiad dibynadwy chwaith.
Beth sy'n torri ar ôl i'r twnnel godi
Dim ond dilysu y mae deialu llwyddiannus yn ei brofi, a dim arall. Profwch yr adnodd y mae'r dasg yn bodoli i'w gyrraedd, gyda'i brotocol ei hun a chyfnod aros byr, ac enwch y cam yn y neges fethiant. Gall proffiliau, tystysgrifau a chrediadau a gedwir yn weladwy ar eich penbwrdd fod yn anweladwy i sesiwn y gwasanaeth, felly rhedwch y dasg unwaith o dan gyfrif y trefnydd ei hun cyn ymddiried ynddi.
Cyfyngwch yr ailgeisiadau. Mae dolen sy'n ailadrodd crediad a wrthodwyd yn cloi cyfrifon, ac ni all tasg ddi-ben ateb anogwr MFA heb gynllun cofrestru; mae ailgeisiau sgriptiedig yn erbyn llif SSO porwr yn llosgi ymdrechion yn unig. Dewiswch lwyth VPN a ddanfonir gan MDM neu broffil ffurfweddu ar gyfer fflyd, lle mae'r platfform yn berchen ar gylch bywyd y crediadau, a chadwch sgriptiau ar gyfer y cleientiaid na ellir eu rheoli felly.
Cofnodwch y cod gadael a'r adnodd cyntaf sy'n methu, nid y ffaith bod y sgript wedi rhedeg. Y llinell unigol honno sy'n troi rhybudd trefnydd yn ddiagnosis pum munud.