Windows և strongSwan. IKE-ի առաջարկում չորս տրանսֆորմերի համադրումը
Ընդհանուր ծածկագիրը բավարար չէ, երբ կողմերը չեն համաձայնում բանալիների փոխանակման խմբի շուրջ։ Համեմատեք բոլոր չորս տրանսֆորմերը, ապա կիրառեք մեկ սահմանափակ պրոֆիլի քաղաքականություն։
Երկու կողմերն էլ աջակցում են AES-ին, երկուսն էլ ընդունում են SHA-256-ը, սակայն թունելը դեռ չի բարձրանում։ Առաջարկը ձախողվեց մի բաղադրիչում, որը ոչ ոք չէր համեմատել՝ սովորաբար բանալիների փոխանակման խմբում։ Այս ուղեցույցը կարդում է իրական փոխանակումը նախքան որևէ բան փոխելը, կիրառում է մեկ սահմանափակ քաղաքականություն և թողնում է հետգնում, որը վերականգնում է նախորդ պարամետրերը։
Կարդացեք ձախողումը նախքան խումբ փոխելը
«Քաղաքականության համապատասխանության սխալը» ամփոփում է, ոչ ախտորոշում։ Այն նշանակում է, որ փոխադարձ ընդունելի առաջարկ չի գտնվել, և ոչինչ չի ասում այն մասին, թե որ բաղադրիչն է մերժվել։ Դիտարկեք այն որպես հետաքննության սկիզբ, ոչ որպես որոշակի խմբի մասին ապացույց։
Պատասխանը սովորաբար սերվերի կողմում է։ Համապատասխան մակարդակի strongSwan մատյանը թվարկում է հաճախորդից ստացված առաջարկը և այն առաջարկը, որն այն կարգավորված է ընդունել, իսկ երկու ցանկերի տարբերությունը նշում է ձախողված բաղադրիչը։
Մի՛ ենթադրեք, որ հաճախորդն առաջարկում է այն, ինչ ասվում է հին ֆորումի գրառման մեջ։ Ակտիվ պրոֆիլը և դրա տեղադրված քաղաքականությունը որոշում են առաջարկվող ցանկը, և թարմացված Windows-ի տարբերակը կարող է այլ հավաքածու առաջարկել, քան այն էկրանի պատկերում, որից պատճենում եք։
Գրեք երկու ցանկերն էլ։ Չորս տրանսֆորմի դիրք և մեկ խումբ կարճ ցանկ է, և այն տող առ տող համեմատելը ավելի քիչ ժամանակ կպահանջի, քան ցանկացած փորձ։ Չորս դիրք հեշտ է աչքի առաջ պահել։ Մատյանի ֆայլը՝ ոչ։
Համեմատեք ամեն տրանսֆորմը, ոչ թե մեկ ծանոթ անուն
IKE-ի առաջարկը ընտրությունների ամբողջություն է, որոնք բոլորը պետք է համընկնեն։ Կոդավորումը պաշտպանում է բանակցությունը, ամբողջականությունը կամ PRF-ը վավերացնում է այն, և Diffie-Hellman խումբը ստեղծում է նոր բանալիային նյութ։ Առաջարկը, որը համընկնում է առաջին երկուսում և տարբերվում երրորդում, դեռևս անընդունելի է երկու կողմերի համար։
Երկու Windows դաշտերը, որոնք այստեղ շփոթում են, պատկանում են տարբեր փուլերի։ DHGroup-ը վերաբերում է IKE-ի բանալիների փոխանակմանը, իսկ PfsGroup-ը՝ երթևեկությունը պաշտպանող զույգ միավորմանը։ Երկրորդի փոփոխությունը չի կարող շտկել առաջինի ձախողումը։
Խմբերի անունները տարբերվում են իրականացումների միջև, և դա շփոթության առանձին աղբյուր է։ strongSwan-ը գրում է modp2048 և ecp256, մինչդեռ Windows-ը օգտագործում է համարակալման անուններ, ինչպիսիք են Group14 և ECP256-ը, ուստի համեմատությունը պետք է թարգմանի նախքան համեմատելը։ Պահեք երկու սյունակով գրառում երկու անուններով։ Այնուհետև հաջորդ անհամապատասխանությունը դասակարգվում է վայրկյանների ընթացքում։
| Transform | Windows parameter | strongSwan name | Failure it causes |
|---|---|---|---|
| Encryption | CipherTransformConstants | aes, aes256gcm and similar | No common proposal at all |
| Integrity or PRF | AuthenticationTransformConstants | sha256, sha512 and similar | Proposal rejected after encryption matches |
| Key-exchange group | DHGroup | modp2048, ecp256 | Exchange fails during key establishment |
| Child SA protection | PfsGroup | esp proposal groups | Tunnel negotiates, data association does not |
Կիրառեք մեկ ամբողջական և սահմանափակ քաղաքականություն
Բնական IKEv2 պրոֆիլի համար աջակցվող գործիքը մեկ միացման IPsec քաղաքականությունն է, որը սահմանվում է որպես մեկ օբյեկտ, այլ ոչ թե դաշտ առ դաշտ։ Նախ դիտեք այն նախադիտմամբ, ապա կիրառեք, և պահեք նախորդ պարամետրերը փոփոխության գրառման մեջ։
Set-VpnConnectionIPsecConfiguration -ConnectionName "Northwind IKEv2" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -DHGroup ECP256 -PfsGroup ECP256 -WhatIf
-WhatIf անջատիչը նախադիտում է տեղական փոփոխությունը և ոչինչ չի կիրառում։ Դա օգտակար է և միևնույն ժամանակ սովորական թակարդ է, որովհետև նախադիտումը միայն ապացուցում է, որ պարամետրերը շարահյուսորեն ընդունելի են տեղական cmdlet-ի համար։ Այն ոչինչ չի ասում այն մասին, թե դարպասը կընդունի՞ արդյոք ստացված առաջարկը։
Միևնույն ժամանակ համաձայնեցրեք նաև շրջանակը։ Բոլոր օգտատերերի պահոցում գտնվող միացմանը անհրաժեշտ է համապատասխան բոլոր-օգտատերերի պարամետրը, իսկ նույն ցուցադրվող անունով մեկ օգտատիրոջ պրոֆիլի խմբագրումը փոխում է մեկ այլ օբյեկտ, որը թունելը չի օգտագործում։
Այնուհետև փորձարկումից առաջ strongSwan-ի կողմը բերեք նույն հավաքածուին։ Երկու ծայրերում համաձայնեցված փոփոխությունը միակ տարբերակն է, որը համընթացվում է՝ մեկ կողմը փոխելը և կրկին ու կրկին փորձելը ստեղծում է նույն մերժումով լի մատյան։
Ստուգեք փոխանակումը և բանալիների նորացումը առանձին
Հաջող միացումը մեկ դիտարկում է, իսկ բանալիների նորացումը՝ մեկ այլ։ Սկզբնական IKE բանակցությունը օգտագործում է մեկ պարամետրերի հավաքածու, իսկ երթևեկությունը կրող զույգ միավորումը կարող է ավելի ուշ նորից բանակցվել իր սեփական քաղաքականությամբ։ Կարգավորումը, որը միանում է և հետո որոշ ժամանակ անց ընկնում, սովորաբար երկրորդ դեպքն է։
ipsec statusall | grep -A6 "Northwind"
Get-VpnConnection -Name "Northwind IKEv2" | Format-List *
Առաջին հրամանը ցույց է տալիս սերվերի տեսակետը հաստատված միավորումների վերաբերյալ, ներառյալ զույգ SA-ն և դրա մնացած կյանքը։ Երկրորդը ցույց է տալիս, թե ինչ ունի հաճախորդի պրոֆիլը հիմա, և դա միակ միջոցն է հաստատելու, որ ձեր սահմանած քաղաքականությունն է գործող քաղաքականությունը։
Դիտեք ամբողջական բանալիների նորացում նախքան հաջողություն հայտարարելը։ Դա նշանակում է միացումը բավական երկար բաց պահել, որպեսզի զույգ միավորումը փոխարինվի, և ապա հաստատել, որ երթևեկությունը շարունակվում է։ Քաղաքականության անհամապատասխանությունների մեծ մասը թաքնված է հենց այդ քայլում, որովհետև սկզբնական բանակցությունը կարող է հաջողվել մի հավաքածուով, որը նորացումը չի ընդունում։
Հետգնումը նախորդ պարամետրերի հավաքածուն է, ոչ թե զիջող այլընտրանք։ Եթե հաճախորդը առաջարկել է միայն թույլ հին խումբ, պատասխանը հաճախորդի և սերվերի ընդհանուր քաղաքականության բարելավումն է, ոչ թե այդ խումբն ավելացնելը դարպասին, որտեղ ապագա յուրաքանչյուր կողմ կարող է բանակցել ներքև մինչև այն։
Գրանցեք չորս պարամետրերը, խումբը, միացման շրջանակը և բանալիների նորացման արդյունքը։ Սա կարճ գրառում է, և հենց դա է տարբերությունը ուղեցույցի և մի պատմության միջև այն մասին, թե ինչպես թունելը մի անգամ բարձրացավ։