Արդյո՞ք Ubuntu-ի թարմացումը կոտրեց L2TP/IPsec-ը։ Համեմատեք IKEv1 առաջարկները
Պրոֆիլը և գաղտնաբառը չեն փոխվել, սակայն 1-ին փուլը հիմա ձախողվում է։ Հաճախորդի ընդունելի առաջարկները տեղաշարժվել են, և սերվերը դեռ առաջարկում է այն, ինչ միշտ առաջարկել է։
Կապը աշխատում էր հինգշաբթի, թարմացումը կատարվեց ուրբաթ, իսկ երկուշաբթի հաճախորդը պտտվում է “connecting”-ի վրա և հանձնվում։ Նույն նոթբուքը, նույն սերվերը, նույն հաշիվը, նույն նախապես համօգտագործված բանալին։ Պրոֆիլում ոչինչ չի խմբագրվել, դրա համար էլ ակնհայտ կասկածյալները՝ գաղտնաբառը և firewall-ը, վատնում են ձեր ժամանակը։
Փոխվել է այն ձևափոխությունների ցանկը, որոնք ձեր մեքենան պատրաստ է առաջարկել։ Ubuntu-ում օգտագործվող երկու IPsec stack-երը՝ strongSwan-ը և Libreswan-ը, հեռացնում են ալգորիթմներ, որոնք այլևս անվտանգ չեն համարում, իսկ նրանց առջև կանգնած NetworkManager plugin-ն ունի իր ցանկը, որը շարժվում է այլ ժամանակացույցով։ 3DES-ին, SHA1-ին և 1024 բիթ Diffie-Hellman խմբին ամրացված սերվերը կարող է ի վերջո ոչինչ չլսել այն ամենից, ինչ ընդունում է։
Ինչ փոխեց թարմացումը իրականում
IKEv1-ի առաջարկը սնուցում են երկու շերտեր։ Դեմոնը տրամադրում է կոմպիլացված լռելյայն առաջարկների հավաքածու, իսկ L2TP plugin-ը կա՛մ ապավինում է դրան, կա՛մ տալիս է իր ցանկը։ NetworkManager-l2tp 1.2.16-ից առաջ plugin-ը ապավինում էր դրան, այնպես որ ձեր առաջարկն այն էր, ինչ տեղադրված դեմոնը ողջամիտ էր համարում։ 1.2.16-ից սկսած՝ plugin-ը ուղարկում է փաստաթղթավորված ցանկ, որը մոդելավորված է Windows-ի և Apple-ի հաճախորդների վրա, և այդ ցանկն ավելի լայն է, քան հին լռելյայնը, բայց այլևս չի պարունակում հերթի սկզբի բոլոր հին համակցությունները։
Այդ բաժանումը բացատրում է ձախողման եղանակ, որը մարդիկ շփոթեցնող են գտնում: նույն Ubuntu թողարկման երկու մեքենաներ կարող են տարբեր կերպ վարվել, որովհետև մեկն ունի դիստրիբուտիվ փաթեթ, իսկ մյուսը՝ backport, և երկուսի դեմոնի տարբերակը սխալի հաշվետվության մեջ նույնն է թվում։ Նախքան եզրակացնելը, որ թարմացումը ոչ մի կարևոր բան չի փոխել, ստուգեք plugin-ի տարբերակը, ոչ միայն դեմոնի տարբերակը։
Նույն ոլորտում կա ավելի փոքր թակարդ։ Երկու դեմոնները էլիպտիկ կորի Diffie-Hellman խմբերը տարբեր կերպ են գրում՝ մեկը գրում է ecp384, մյուսը՝ ecp_384։ Տեղադրեք սխալ ուղղագրությունը Advanced երկխոսության մեջ, և դեմոնը կմերժի կարգավորումը որպես չվերլուծելի, ինչը մատյանում երևում է որպես բանակցային խնդիր, այլ ոչ թե կոնֆիգուրացիայի տառասխալ։
Կարդացեք ձախողումը, նախքան ինչ-որ բան փոխելը
Սկսեք նրանից, թե որ backend-ն եք աշխատացնում, որովհետև պատասխանը որոշում է և՛ շարահյուսությունը, և՛ մատյանի տեղը։
ipsec --version
nmcli connection show "Your VPN name" | grep -i ipsec
Այնուհետև կարդացեք հենց փոխանակումը։ strongSwan-ում դեմոնը գրում է journal-ում ընթացիկ թողարկման դեպքում և /var/log/syslog-ում ավելի հին թողարկման դեպքում, և հետաքրքիր մասը այն առաջարկն է, որ նա ուղարկում է, ոչ թե վերջին տողը։ Դուք փնտրում եք ձևակերպում այն մասին, որ համապատասխան առաջարկ չկա, ինչը ալգորիթմի խնդիր է, կամ նույնականացման ձախողում, որը մատնանշում է բանալին կամ հաշիվը, կամ պարզ timeout, որը մատնանշում է հասանելիությունը։
Այս երեք արդյունքները շատ հաճախ դիտարկվում են որպես մեկ ախտանիշ։ Դատարկ դեմոնի մատյանով timeout-ը նշանակում է, որ փաթեթները չեն հասնում։ Առաջարկի մերժումը նշանակում է, որ դրանք հասել են և մերժվել։ Եթե ձեր մատյանը լուռ է, մեկ փորձի համար բարձրացրեք plugin-ի վրիպազերծման մակարդակը և հետո իջեցրեք, որովհետև մանրամասն ելքը արագ լցնում է journal-ը։
1-ին փուլը և 2-րդ փուլը առանձին խաղադրույքներ են
IKEv1-ը բանակցում է երկու անգամ։ Հիմնական ռեժիմը IKE անվտանգության ասոցիացիան կառուցում է գաղտնագրման ալգորիթմից, ամբողջականության ալգորիթմից, Diffie-Hellman խմբից և նույնականացման մեթոդից։ Արագ ռեժիմն այնուհետև կառուցում է ESP ասոցիացիան, որը կկրի L2TP-ն։ Սերվերն ազատ է ընդունել առաջինը և մերժել երկրորդը, այնպես որ կիսաճիշտ պրոֆիլը ձախողվում է ավելի ուշ, քան սպասում եք, և նմանվում է այլ սխալի։
Phase 1: 3des-sha1-modp1024!
Phase 2: 3des-sha1!
Բացականչական նշանը strongSwan-ի շարահյուսության մեջ խիստ գրառում է նշանակում՝ առաջարկիր միայն այս մեկ համակցությունը և ուրիշ ոչինչ։ Առանց դրա գրառումը միանում է պահուստային ցանկին, ինչը լավ է, երբ գործընկերը ժամանակակից է, և հակաարդյունավետ, երբ այն մեկ կոշտ կոդավորված քաղաքականությամբ սարք է։ Վերևի զույգը դիտարկեք որպես ձևի նկարազարդում, ոչ թե այսօր կառուցվող որևէ բանի առաջարկություն։
Փոխեք մեկ դաշտ, ապա կրկնեք փորձարկումը
Ընթացիկ plugin-ի դեպքում ամենաարագ առաջին փորձարկումը երկու առաջարկային դաշտերն ամբողջությամբ մաքրելն ու նորից միանալն է, որովհետև տրամադրված լռելյայն ցանկն արդեն պարունակում է սովորական Windows-ի և Apple-ի համակցությունները։ Ավելի հին plugin-ի դեպքում դրանք մաքրելը վերահսկողությունը վերադարձնում է դեմոնին, որը գուցե հեռացրել է այն ալգորիթմը, որի վրա ձեր սերվերը պնդում է, և ձախողումը ավելի է վատանում։
Եթե մաքրելը չի օգնում, սահմանեք խիստ զույգը, որը փաստաթղթավորում է ձեր սերվերը՝ մեկ փուլ մեկ անգամ։ Փոխեք 1-ին փուլը, նորից միացեք և կարդացեք մատյանը, նախքան 2-րդ փուլին դիպչելը։ Երբ համակցությունն ի վերջո աշխատի, գրառեք այն սերվերի մոդելի և plugin-ի տարբերակի կողքին, որովհետև լռելյայնները նորից կշարժվեն, և հենց այդ նշումն է, որ հաջորդ թարմացումը դարձնում է հինգ րոպեանոց ստուգում։