OpenConnect vpnc-script: ո՞ր ֆայլն է գործարկվում։
Երթուղիներ և DNS տեղադրող օգնականը առանձին է թունելի հաճախորդից։ Գտեք այն ուղին, որն օգտագործում է աշխատող հաճախորդը, նախքան այն ֆորումի պատճենով փոխարինելը։
OpenConnect-ը կարող է ավարտել թունելի ձեռքսեղմումը և այնուամենայնիվ թողնել ձեզ առանց երթուղու դեպի մասնավոր ենթացանց, քանի որ հաճախորդը և տեղական ցանցի վիճակը փոփոխող օգնականը երկու տարբեր ծրագրեր են։ Նույնականացումը ապացուցում է, որ դարպասը ընդունել է նստաշրջանը, բայց ոչինչ չի ապացուցում այն մասին, թե հետո որ միջերեսը, որ երթուղիները կամ լուծիչի որ կարգավորումներն են տեղադրվել։ Շփոթեցնող հաշվետվությունների մեծ մասը գալիս է օգնականը հին պատասխանից վերցված պատճենով փոխարինելուց, ինչը փոխում է սարքի յուրաքանչյուր միացման վարքը։ Նախքան դրա որևէ մասը խմբագրելը գտեք այն օգնականը, որն աշխատող հաճախորդն իրականում կանչում է։
Երկու ծրագիր, երկու պատասխանատվություն
Հաճախորդը տիրապետում է փոխադրմանը, նույնականացմանը և թունելի սարքին։ Առանձին օգնականը տիրապետում է այն ամենին, ինչ տեղի է ունենում տեղական համակարգում, երբ թունելն արդեն կա՝ հասցեավորումը միջերեսի վրա, երթուղիները դարպասի հայտարարած ենթացանցերին և լուծիչի կարգավորումը։ OpenConnect օգնականի փաստաթղթերը նկարագրում են այդ բաժանումը և այն միջավայրը, որ ստանում է օգնականը։ Այս տարբերությունը կարևոր է խափանման ժամանակ, քանի որ մերժված գաղտնաբառը և բացակայող երթուղին նույն դեպքը չեն, նույնիսկ երբ աշխատասեղանը մեկ երկխոսություն է ցույց տալիս երկուսի համար։
Այս բաժանումը հիշելը բացատրում է նաև, թե ինչու միացումը կարող է հաջողություն հայտնել, մինչ մասնավոր անունները դեռ չեն լուծվում։ Թունելը բարձրացված է երկու դեպքում էլ, և տարբերվում է միայն տեղական ինտեգրման փուլը։
Գտեք այն օգնականը, որն օգտագործում է աշխատող հաճախորդը
Ուղին սահմանվում է փաթեթի կառուցման պահին և կարող է վերագրվել յուրաքանչյուր կանչի ժամանակ, ուստի այլ տարածումից հիշվող ֆայլը կարող է որևէ կապ չունենալ այս միացման հետ։ Հարցրեք աշխատող գործընթացին, այլ ոչ թե պատահաբար բացված փաստաթղթերին։
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Եթե գործընթացի տողը կրում է --script արգումենտ, ապա այդ ֆայլը գերազանցում է կոմպիլացված լռելյայնին։ Ավելի հին ուղիներ, ինչպիսին /etc/vpnc/vpnc-script է, կարող են գոյություն ունենալ և մնալ չօգտագործված, դրա համար էլ դրանց ջնջելը կամ խմբագրելը ոչինչ չի փոխում նոր կառուցվածքում։ Ստուգեք նաև փոփոխության ամսաթիվը, քանի որ տարիներ շարունակ անձեռնմխելի օգնականը ուժեղ նշան է, որ աշխատանքը կատարում է փաթեթավորված լռելյայնը։
NetworkManager-ի ինտեգրումը երրորդ սեփականատերն է՝ իր օգնականով և իր պրոֆիլի կարգավորումներով։ Այդ ինտեգրման վրա երկրորդ երթուղային կամ լուծիչի սկրիպտ դնելը կրկնապատկում է երթուղիները և թողնում լուծիչ, որ երկու ծրագիր իրենցն են համարում։ Ընտրեք մեկ սեփականատեր յուրաքանչյուր միացման համար և անջատեք մյուսը նախքան փորձարկումը։
Կարդացեք առաջին ձախողված գործողությունը, ոչ թե վերջին նախազգուշացումը
Միջերեսի կարգավորումը, երթուղիների տեղադրումը, լուծիչի ընտրությունը և հնացած վիճակի մաքրումը առանձին քայլեր են, և վերջին տպված նախազգուշացումը հաճախ մաքրման բողոք է, ոչ թե այն խափանումը, որ կոտրել է միացումը։ Կարդացեք վերև մինչև առաջին կոնկրետ ձախողված գործողությունը։ Ֆայլ կամ հասցե նշող օգնականի սխալն ավելի արժեքավոր է, քան ապամոնտաժման աղմուկի տասը տողը։
Համեմատեք նախատեսված տեղական արդյունքը դիտարկվածի հետ՝ թունելի սարքը գոյություն ունի, հայտնի մասնավոր հասցեի երթուղին անցնում է դրա միջով, և լուծիչը պատասխանում է մասնավոր անվան համար։ Օգնականը, որը հաջողում է առաջին երկուսում և ձախողվում երրորդում, մատնանշում է լուծիչի քաղաքականությունը, ոչ թե երթուղավորումը։ Օգնականը, որն ընդհանրապես չի կարգավորում սարքը, հավանաբար երբեք չի գործարկվել, և դա թույլտվությունների, ոչ թե ցանցի հարց է։ Նախքան որևէ տրամաբանություն վերաշարադրելը հաստատեք կատարման բիթը և ծառայության հաշիվը։
Ստուգեք միացումը, վերամիացումը և անջատումը
Կարգավորումը պայմանագրի միայն կեսն է, քանի որ նույն օգնականը պետք է վերականգնի կամ հեռացնի իր տիրապետած վիճակը, երբ թունելը փակվում է։ Օգնականը, որն ավելացնում է երթուղիներ և երբեք չի հեռացնում դրանք, սարքին թողնում է հնացած ուղի, որն ապրում է նստաշրջանից ավելի։
ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'
Գործարկեք առաջին երեքը, մինչ միացված եք, անջատվեք, ապա նորից գործարկեք դրանք և հաստատեք, որ երթուղին և լուծիչի գրառումը գնացել են։ Չորրորդ տողը ցույց է տալիս՝ արդյոք օգնականն ընդհանրապես կանչվել է, և թե ծառայությունն որ կատարման ուղին է օգտագործել։ Պահեք այդ երկու ելքերը տոմսում, քանի որ հենց առաջ-հետո համեմատությունն է մաքրման սխալը ակնհայտ դարձնում։
Պահեք օգնականը փաթեթավորված և ծառայության հաշվի համար կատարման ենթակա, քանի որ ձեր shell-ում աշխատող սկրիպտը դեռ կարող է մերժվել սահմանափակ ծառայության քաղաքականության ներքո։ Երբ հարմարեցումն իսկապես անհրաժեշտ է, փաստաթղթավորեք դրա նպատակը և սեփականատիրոջը և ամեն թարմացման ժամանակ համեմատեք փաթեթավորված տարբերակի հետ։ Օգնականի չբացատրված ճյուղավորումը այն սակավ բաներից է, որ կարող է աշխատող միացումը ձախողել մեկ տարի անց։