Ինչպես է աշխատում երթուղու վրա հիմնված IPsec-ը XFRM միջերեսի հետ
XFRM միջերեսը երթուղու վրա հիմնված IPsec-ին տալիս է սարք, որով երթուղավորել։ if_id-ը, դրա հետևում գտնվող անվտանգության ասոցիացիաները և արտաքին երթուղին բոլորը պետք է համընկնեն։
Երթուղու վրա հիմնված IPsec-ը երթուղային աղյուսակին է հանձնում որոշում, որը նախկինում կայացնում էին քաղաքականության ընտրիչները։ Linux-ում դա հնարավոր դարձնող մասը XFRM միջերեսն է՝ վիրտուալ սարք, որի երթևեկությունը համապատասխանեցվում է IPsec վիճակին միջերեսի նույնականացուցչով, այլ ոչ թե ընտրիչով։ Մեկը ստեղծելու համար մեկ հրաման է պետք, և դա ոչինչ չի ապացուցում թունելի գոյության մասին։ Սարքը կեռիկ է երթուղավորման և անվտանգության քաղաքականության միջև, և այդ կեռիկի երկու կողմերն էլ պետք է կարգավորվեն, նախքան ինչ-որ բան պաշտպանված կլինի։
Ինչ է սարքը և ինչ չէ
XFRM միջերեսը երթուղավորման բռնակ է։ Դրա մեջ երթուղավորված փաթեթները համադրվում են XFRM քաղաքականությունների հետ, որոնք հղում են կատարում նույն միջերեսի նույնականացուցչին, և եթե կան քաղաքականություն և վիճակ, ապա դրանք ինկապսուլացվում են։ Առանց դրանց միջերեսը գոյություն ունի, հաշվիչները մնում են անշարժ, և երթևեկությունը գնում է անօգուտ տեղ։
Սա առաջին ախտորոշիչ բաժանումն է։ Սարքի մեջ տանող երթուղին երթուղավորման փաստ է, տեղադրված վիճակը անվտանգության փաստ է, իսկ սարքի վրա աճող հաշվիչը ոչ մեկը չէ։ Երբ մարդիկ ասում են, որ թունելը բարձրացված է, որովհետև միջերեսը ցույց է տալիս UP, նրանք նկարագրում են վիրտուալ սարքի կապի դրոշները, որը սեփական զույգ չունի։ Դրոշը նշանակում է, որ սարքը ստեղծվել և միացվել է, ոչ ավելին։
Եվս մեկ սահման՝ միջերեսի նույնականացուցիչը անուն չէ։ Նման անուններով և տարբեր նույնականացուցիչներով երկու սարքեր վիճակ չեն կիսում, և սխալ նույնականացուցիչով կարգավորված միացումը տեղադրում է վիճակ, որը ոչ մի երթուղի երբեք չի օգտագործի։
Կառուցեք մեկը ճիշտ հերթականությամբ
Սկսեք արտաքին սարքից և թվից, որը նույնպես կդնեք դեմոնի կարգավորումներում։ Օրինակը որպես արտաքին միջերես օգտագործում է eth0-ը և որպես նույնականացուցիչ՝ 42-ը, հասցեներ, որոնք պետք է փոխարինեք ձերով։
Բարձրացրեք սարքը, ապա հաստատեք միջուկի գրանցած նույնականացուցիչը, նախքան VPN կարգավորումներին դիպչելը:
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'Այժմ կարգավորեք միացումը strongSwan-ում նույն նույնականացուցիչով, քանի որ դեմոնը պետք է տեղադրի դրան հղվող քաղաքականություններ և վիճակներ։ Սահմանեք տեղական և հեռավոր երթևեկության ընտրիչները այն միջակայքին, որը մտադիր եք երթուղավորել, ապա այդ միջակայքը երթուղավորեք սարքի մեջ։ Դեմոնի կարգավորումը և երթուղային աղյուսակը պետք է համաձայնության գան ինչպես նույնականացուցչի, այնպես էլ նպատակակետերի շուրջ, և ոչ մեկը չի տալիս մյուսին։
IKE-ն և ESP-ն դուրս պահեք թունելի երթուղուց
XFRM սարքի մեջ ուղղված լռելյայն երթուղին որսում է ինկապսուլացված փաթեթները և նրանց կրած երթևեկությունը։ Արդյունքը հանգույց է՝ դարպասը փորձում է իր ESP-ն ուղարկել այն թունելով, որը ESP-ն պետք է կառուցի։
Լուծումը զույգի արտաքին հասցեի համար ավելի կոնկրետ երթուղին է ֆիզիկական միջերեսով, որը հաղթում է լռելյայնին, քանի որ ավելի շատ բիթ է համապատասխանում։ Նշիչի վրա հիմնված երթուղավորումը նույն գործն է անում, երբ մի քանի թունելներ կիսում են մեկ աղյուսակ, և strongSwan-ը փաստաթղթավորում է երկու մոտեցումներն էլ երթուղու վրա հիմնված տեղակայումների համար։
Ինչ էլ ընտրեք, ստուգեք, որ արտաքին փաթեթը դուրս է գալիս առանց ինկապսուլացման։ Արագ ստուգումը թունելը բարձրացնելուց հետո զույգի արտաքին հասցեին ping անելն է, և եթե դա ձախողվում է, մինչ միջերեսը բարձրացված է, կասկածեք որսալուն, ոչ թե հասանելիությանը։ Նույն տրամաբանությունը վերաբերում է IKE պորտին, քանի որ դեմոնի սեփական UDP երթևեկությունը չպետք է երթուղավորվի այն սարքի մեջ, որը նա փորձում է հաստատել։
Նախքան գաղտնագրությունը մեղադրելը ստուգեք հաշվիչները երկու տեղում
Միջերեսի հաշվիչները և վիճակի հաշվիչները տարբեր փուլեր են չափում։ Սարքի մեջ երթուղավորված փաթեթները բարձրացնում են սարքի հաշվիչը նույնիսկ այն դեպքում, երբ ոչ մի վիճակ չի համապատասխանում, մինչդեռ վիճակի հաշվիչները շարժվում են միայն այն երթևեկության համար, որն իրականում ինկապսուլացվել է։
Կարդացեք երկուսն էլ, ապա դեմոնի տեսակետը զավակ ասոցիացիայի վերաբերյալ:
ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sasՍարքի հաշվիչների աճը դատարկ վիճակի ելքի դեպքում նշանակում է, որ երթուղավորումը աշխատում է, իսկ քաղաքականությունը չի համապատասխանում՝ սովորաբար նույնականացուցչի կամ ընտրիչի սխալ։ Վիճակի հաշվիչների աճը, մինչ հեռավոր կողմը ոչինչ չի հաղորդում, նշանակում է, որ փաթեթները դուրս են գալիս, բայց չեն հասնում կամ չեն անցնում նույնականացումը, ինչը մատնանշում է ուղին կամ զույգի կարգավորումը։ Ցուցակված զավակը զրոյական երթևեկությամբ մի ծայրի ընտրիչի խնդիր է, ոչ թե կոտրված գաղտնագիր։
Որոշեք, թե ով է տեղադրում երթուղիները
Մեկ երթուղային աղյուսակի երկու տերերը սովորական աղբյուրն են տատանման։ Եթե դեմոնը երթուղիները տեղադրում է ավտոմատ, ձեր ցանցային կառավարիչը նույնպես չպետք է լռելյայն երթուղի տեղադրի նույն սարքով, և մեկնարկային սկրիպտի ավելացրած ձեռքով երթուղին կհեռացվի հաջորդ անգամ, երբ դեմոնը վերակարգավորվի։
Ընտրեք մեկ տեր և գրի առեք այն։ Երբ երթուղիները դեմոնինն են, մեկնարկային սկրիպտը պահեք աղյուսակից դուրս և թույլ տվեք միացման սահմանմանը նկարագրել երթևեկության ընտրիչները։ Երբ դրանք ցանցային կառավարչինն են, անջատեք ավտոմատ տեղադրումը և ընդունեք, որ վերամիացման ժամանակ դեմոնը բացակայող երթուղին չի վերանորոգի։
Փոխանցման և հրակայուն պատի կանոնները սրա վրա առանձին որոշում են, քանի որ այլ հոսթերի երթևեկությունը բաց թողնող դարպասին երկուսն էլ են պետք։ Երթուղու վրա հիմնված IPsec-ը այդ երթևեկությունը հեշտ արտահայտելի է դարձնում սովորական երթուղավորման գործիքներով, սակայն քաղաքականության շերտը ընտրովի չի դարձնում։