Երեք հարց է սա որոշում, և միայն երեք։ Արդյոք հաճախորդը ստեղծում է օպերացիոն համակարգում կապի գրառում, որը դիմանում է վերագործարկմանը։ Արդյոք այն տրամադրում է հրամանի տող, որը կարող է գաղտնիք վերցնել իր արգումենտների ցանկից բացի այլ տեղից։ Արդյոք նրա ինքնության պահանջը ստիպում է մարդուն պատասխանել զննարկիչի հուշմանը։ Պատասխանեք այդ հերթականությամբ, և ընտրությունը դադարում է ճաշակի հարց լինելուց, որովհետև պլանավորված աշխատանքը կարող է լինել միայն այնքան առանց գլխի, որքան թույլ է տալիս երեք պատասխաններից ամենաթույլը։

Համապատասխանեցրեք հաճախորդին երեք սցենարացվող շերտերին

Օպերացիոն համակարգի բնիկ պրոֆիլը, մատակարարի CLI-ն, միայն GUI-ով հաճախորդը և զննարկիչի SSO-ով հաճախորդը պահանջում են չորս տարբեր մոտեցում։ Առաջին երկուսը դիմանում են առանց հսկողության վերագործարկումներին, և առանց հսկողության վերագործարկումը հենց ամբողջ իմաստն է։ Մյուս երկուսը սցենարից առաջ պահանջում են նախագծային որոշում։

What the client exposesWhat to scriptWhat still bites
OS-native connection entryrasdial, scutil --nc, nmcliTunnel is up before DNS and routes settle
Vendor CLI reading stdinCLI wrapped by the scheduler, secret from the credential storePrompt text changes between releases
GUI onlyPinned version plus a state assertionLocale and DPI break the click targets

Առաջին ուղի՝ պրոֆիլն արդեն պատկանում է օպերացիոն համակարգին

Սա ամենաէժան ուղին է և այն, որը շատերը բաց են թողնում։ Windows-ում rasdial "Office"-ը միանում է, իսկ rasdial "Office" /disconnect-ը փակում է այն. rasphone -d "Office"-ը նույն գրառումը վարում է հավաքման միջերեսով։ macOS-ը scutil --nc list-ով թվարկում է պահված ծառայությունները և scutil --nc start-ով սկսում մեկը։ Linux-ը աշխատանքը հանձնում է NetworkManager-ին։

rasdial "Office" user *
scutil --nc start "Office"
nmcli connection up id Office
nmcli -t -f GENERAL.STATE connection show Office

Այս միջերեսները ճանաչում են միայն օպերացիոն համակարգին պատկանող պրոֆիլներ, ուստի չեն կարող վարել կամայական երրորդ կողմի հաճախորդ։ Երբ պրոֆիլը բացակայում է, ստեղծեք այն մեկ անգամ և թողեք սցենարը ստուգի այն՝ փոխարենը ամեն գործարկման ժամանակ նորից ստեղծելու։ Դարձրեք սցենարը իդեմպոտենտ. կարդացեք ընթացիկ վիճակը, միացեք միայն անջատված լինելու դեպքում, ապա ստուգեք այն մասնավոր անունը, որն աշխատանքին իսկապես պետք է։

Երկրորդ ուղի՝ մատակարարը տրամադրում է հրամանի տող

Որոշ հաճախորդներ բավականաչափ հրամանի տող են տրամադրում, որպեսզի հնարավոր լինի փաթաթել դրանք. Cisco AnyConnect-ը տարիներ շարունակ ունի միայն միացման օգնական, իսկ OpenConnect-ը մեկ բինարից խոսում է AnyConnect, GlobalProtect և Pulse արձանագրություններով։ Կարևոր պահանջը ոչ թե դրոշների ցանկն է, այլ այն, թե որտեղից է գալիս գաղտնիքը, որովհետև արգումենտների ցանկում գտնվող գաղտնաբառը կարող է կարդալ ցանկացած ոք, ով կարող է թվարկել գործընթացները։

printf '%s\n' "$VPN_PASS" | openconnect --protocol=anyconnect \
  --user "$VPN_USER" --passwd-on-stdin vpn.example.com

FortiClient-ը և GlobalProtect-ի որոշ կառուցվածքներ ընդհանրապես չունեն աջակցվող CLI, իսկ համայնքային հաճախորդը կամ մատակարարի կողմից լիցենզավորված փոխարինողը գնումների որոշում է, ոչ թե շրջանցում։ CI-ում ծառայության հաշվին տվեք իրավունքներ հենց այդ բինարի վրա, ոչ թե shell-ի, որպեսզի ներարկված արգումենտը չկարողանա դառնալ root հրաման։

Երրորդ ուղի՝ GUI ավտոմատացում, և ինչու է այն վերջինը

Երբ պաշտոնական հաճախորդը միջերես չունի, սցենարները կտտացնում են կոճակների վրա պատուհանների հաղորդագրություններով կամ SendKeys-ով։ Դա խախուտ է տարբերակի և լեզվի նկատմամբ, կարող է թողնել կիսամիացված նստաշրջան և լուռ ձախողվում է, երբ երկխոսության պատուհանը հայտնվում է սխալ լեզվով։ Եթե ընտրում եք այս ուղին, ամրացրեք հաճախորդի տարբերակը, ապա հաստատեք ստացված կապի վիճակը, և սցենարի կողքին պահեք փաստաթղթավորված ձեռքով պահուստ։

Նույն զգուշությունը վերաբերում է հաճախորդին ուժով անջատելուն՝ սպանելով նրա գործընթացը։ Թունելը կարող է ապրել գործընթացից ավելի, կամ հսկիչը կարող է վերագործարկել այն, ուստի սպանել-ու-վերագործարկելը նույնպես հուսալի վերակայում չէ։

Ինչ է կոտրվում թունելը բարձրանալուց հետո

Հաջող հավաքումը ապացուցում է միայն նույնականացում և ոչինչ ավելին։ Ստուգեք այն ռեսուրսը, որի համար գոյություն ունի աշխատանքը, իր արձանագրությամբ և կարճ ժամկետով, և ձախողման հաղորդագրության մեջ նշեք փուլը։ Ձեր աշխատասեղանին տեսանելի պրոֆիլները, վկայագրերը և պահված հավատարմագրերը կարող են անտեսանելի լինել ծառայության նստաշրջանի համար, ուստի աշխատանքը մեկ անգամ գործարկեք ժամանակացույցի սեփական հաշվի ներքո՝ նախքան դրան վստահելը։

Սահմանափակեք կրկնափորձերը։ Մերժված հավատարմագրերը կրկնող հանգույցը կողպում է հաշիվները, իսկ MFA հուշմանը առանց գլխի աշխատանքը չի կարող պատասխանել առանց գրանցման նախագծի. զննարկիչի SSO հոսքի դեմ սցենարացված կրկնափորձերը պարզապես այրում են փորձերը։ Նախընտրեք MDM-ով առաքվող VPN բեռնվածք կամ կոնֆիգուրացիայի պրոֆիլ նավատորմի համար, որտեղ հարթակը տիրապետում է հավատարմագրերի կյանքի ցիկլին, և պահեք սցենարները այն հաճախորդների համար, որոնք հնարավոր չէ այդպես կառավարել։

Գրանցեք ելքի կոդը և առաջին ձախողված ռեսուրսը, ոչ թե այն փաստը, որ սցենարը գործարկվել է։ Հենց այդ մեկ տողն է ժամանակացույցի զգուշացումը դարձնում հինգ րոպեի ախտորոշում։

Առնչվող հոդվածներ