Ինչպես OpenConnect-ը տեղափոխել ֆոն ինտերակտիվ մուտքից հետո
Ավարտեք մուտքը առաջին պլանում, ապա թունելը հանձնեք հաճախորդի սեփական ֆոնային ռեժիմին: Ստուգումները, որոնք այն պահում են գտնելի և կանգնեցվող:
Ավարտում եք MFA հարցումը, թունելը բարձրանում է, և տերմինալը փակելը իջեցնում է միացումը։ Սա հսկողության խնդիր է, ոչ թե նույնականացման, և OpenConnect-ն արդեն ունի այն անջատիչը, որը լուծում է այն։ Լուծումը հաճախորդին թույլ տալն է ճյուղավորվել ֆոն, երբ մեկնարկն ավարտված է, և ինտերակտիվ մասը իսկապես ավարտվել է։ Հետևում է ստուգումների հաջորդականություն. անցեք դրանք հերթով և կանգ առեք առաջինի վրա, որը չի գործում ձեր դարպասի համար։
Հաստատեք, թե ինչ է պահանջում դարպասը մուտքի պահին
Նախքան հրաման մուտքագրելը, գրեք այն հավատարմագրերի ուղին, որը պարտադրում է տեղաբաշխումը։ Միայն վկայագիր, գաղտնաբառ գումարած թոքեն, և զննարկիչով շրջան SAML մատակարարի միջոցով վարվում են տարբեր կերպ, և ֆոնային ռեժիմը չի կարող բաց թողնել դրանցից որևէ մեկը։ Այս տարբերակը փոխում է այն, ինչ տեղի է ունենում մեկնարկից հետո, երբեք այն, ինչ տեղի է ունենում դրա ընթացքում։
Գայթակղիչ լուծումը հարցումն ավտոմատացնելն է։ Փաթաթան, որը գաղտնաբառի հարցումը ճանաչելիս մուտքագրում է ֆիքսված պատասխան, կոտրվում է այն պահին, երբ դարպասը պահանջում է մեկանգամյա կոդ, և հավատարմագիր է թողնում ֆայլում, որը կարող են կարդալ այլ հաշիվներ։ Եթե մարդը պետք է հաստատի նստաշրջանը, մարդուն պահեք գործընթացում։
Աշխատեցրեք առաջին նստաշրջանը առաջին պլանում և կարդացեք ելքը
Միացեք մեկ անգամ սովորական ձևով և թույլ տվեք, որ ողջ ձեռքսեղմումը տպվի։ Նշեք կիրառվող արձանագրությունը, վկայագրի կամ թոքենի ուղին, սերվերի տրամադրած թունելի հասցեն և յուրաքանչյուր նախազգուշացում մինչև միացման ընդունումը։ Այդ արձանագրությունը ձեր ելակետն է և միակ էժան ձևը հետո հաճախորդի խնդիրը դարպասի փոփոխությունից տարբերելու։ Պահպանեք այն տերմինալի բաֆերից դուրս։
Ապա կրկնեք նույն կանչը ֆոնային ռեժիմով և ավելացված PID ֆայլով, օրինակ openconnect --background --pid-file /run/openconnect.pid vpn.example.net, պահելով ձեր դարպասի պահանջած արձանագրությունն ու նույնականացման ընտրանքները նույն տողում։ OpenConnect ձեռնարկը այս ընտրանքը նկարագրում է որպես ֆոնում շարունակություն մեկնարկի ավարտից հետո, և հենց դրա համար ինտերակտիվ փուլը պետք է առաջինը ավարտվի։
Դարձրեք ընթացող գործընթացը գտնելի և կանգնեցվող
PID ֆայլը ապացույց է միայն այնքան ժամանակ, քանի դեռ համապատասխանում է կենդանի գործընթացի։ Տեղադրեք այն ծառայության հաշվին պատկանող պանակում և նախքան ազդանշան ուղարկելը համեմատեք գրանցված համարը գործընթացների աղյուսակի հետ։ Վերագործարկումներն ու խափանումները թողնում են ֆայլը, և հնացած ֆայլը սովորական պատճառն է, թե ինչու կանգնեցնող սկրիպտը հաջողություն է հաղորդում, մինչ թունելը դեռ աշխատում է։ Ստուգումը դիտարկեք որպես կանգնեցման ընթացակարգի մաս, ոչ թե ընտրովի քայլ։
Ազդանշան ուղարկեք ստուգված PID-ին, ապա հաստատեք, որ թունելի ինտերֆեյսն իսկապես անհետացել է, այլ ոչ թե վստահեք ելքի կարգավիճակին։ Եթե հաճախորդին ինտերֆեյսը կարգավորելու համար բարձր լիազորություններ են պետք, ազդանշանը պետք է գա այն հաշվից, որին թույլատրված է ուղարկել այն։
Ֆոնային ռեժիմը մի շարեք հսկիչի տակ
systemd-ն և նման հսկիչները ակնկալում են տիրապետել իրենց մեկնարկած գործընթացին, և դրա համար ճյուղավորվող հաճախորդը շփոթեցնում է նրանց։ Հսկիչը տեսնում է մեկնարկիչի ելքը, մինչ իրական միացումը շարունակվում է, ուստի վերագործարկման տրամաբանությունը, կարգավիճակի հաշվետվությունը և կանգնեցման ժամկետները նկարագրում են մի բան, որն այլևս ճիշտ չէ։ Գրեք միավորը աջակցվող առաջին պլանի դասավորությամբ և թողեք հսկիչը կատարի դեմոնի աշխատանքը։
--background-ը պահեք այն նստաշրջանների համար, որոնք մարդը սկսում է, ապա հեռանում։ Եթե պահանջը թունելն է, որը գոյություն ունի նախքան որևէ մեկի մուտքը, բացակայող մասը հաստատված ոչ ինտերակտիվ ինքնությունն է և այն նորոգելու ծրագիրը, և ոչ մի հրամանի տողի դրոշ չի տալիս դրանցից ոչ մեկը։ Դրոշը բեռնման սկրիպտին ավելացնելը ստեղծում է թունել, որը լուռ ձախողվում է առաջին ժամկետանց հավատարմագրի վրա։
Նստաշրջանի քուքին դիտարկեք որպես հավատարմագիր
OpenConnect-ը փաստագրում է առանձին նույնականացման փուլ --authenticate-ի միջոցով, և ստացված նյութը կարելի է հետ վերադարձնել --cookie-on-stdin-ով։ Այդ զույգը ինտեգրացիոն աշխատանքի համար է, և այն, ինչ այն արտադրում է, այնքան զգայուն է, որքան այն ստեղծած գաղտնաբառը։
Արժեքը պահեք shell-ի պատմությունից, մատյաններից և ձեր բացած ցանկացած տոմսից դուրս։ Փոխանցման սկրիպտը պետք է նաև պահպանի քուքի հետ հաճախորդի ստացած ստուգված վերջնակետի տվյալները. եթե կորցնեք դրանք, ավելի ուշ գործարկումը կարող է միանալ հոսթի, որը երբեք չեք նույնականացրել, ինչը ավելի վատ է, քան պարզապես ձախողվող միացումը։
Անցեք ցանկը, նախքան տերմինալը կփակեք
Չորս բան պետք է ճիշտ լինի. ինտերակտիվ մուտքն ավարտվել է առաջին պլանում, PID ֆայլը ցույց է տալիս ձեր ստուգած գործընթացը, հսկիչի հարցը լուծված է այս կամ այն ուղղությամբ, և քուքին ունի պահպանման ծրագիր, որը սովորական տեքստային ֆայլ չէ։ Երբ բոլոր չորսը ճիշտ են, տերմինալից հեռանալը անվտանգ է, և թունելը շարունակում է աշխատել։
Եթե դրանցից մեկը ձախողվի, ուղղեք այդ կետը նախքան մյուսներին դիպչելը, որովհետև մնացած ստուգումները չեն կարող փոխհատուցել այն։ Պահպանեք նաև առաջին գործարկման առաջին պլանի արձանագրությունը. հաջորդ անգամ, երբ թունելն առանց նախազգուշացման ընկնի, հենց այդ ելակետն է բաժանում դարպասի կողմի փոփոխությունը հաճախորդի կողմի փոփոխությունից։