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 болон түүний үлдсэн наслалтыг багтаана. Хоёр дахь нь клиентийн профайлд одоо юу байгааг харуулж, таны тохируулсан бодлого л хүчин төгөлдөр бодлого гэдгийг батлах цорын ганц арга зам юм.
Амжилт зарлахаасаа өмнө бүрэн түлхүүр шинэчлэлтийг ажигла. Энэ нь холболтыг хүүхэд холбоо солигдох хүртэл хангалттай удаан босгож байлгаад, урсгал үргэлжилж буйг батлахыг хэлнэ. Ихэнх бодлогын зөрүү энэ алхамд нуугддаг, учир нь эхний хэлэлцээр шинэчлэлт хүлээж авдаггүй багцтай ч амжилттай болж болно.
Буцаалт бол өмнөх параметрийн багц, хэтэрхий зөвшөөрөмтгий нөөц хувилбар биш. Хэрэв клиент зөвхөн сул хуучин бүлэг санал болгосон бол хариулт нь клиент ба серверийн нийтлэг бодлогыг сайжруулах бөгөөд, тухайн бүлгийг ирээдүйн аливаа тал түүн рүү доош хэлэлцэж чадах гарц руу нэмэх биш.
Дөрвөн параметр, бүлэг, холболтын хамрах хүрээ, түлхүүр шинэчлэлтийн үр дүнг бичиж тэмдэглэ. Энэ бол богино тэмдэглэл бөгөөд гарын авлага ба туннель нэг удаа хэрхэн боссон тухай түүхийн ялгаа нь энэ юм.