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 يعرض التغيير المحلي دون تطبيق أي شيء. هذا مفيد، وهو أيضًا فخ شائع، لأن المعاينة تثبت فقط أن المعاملات مقبولة نحويًا لدى الأمر المحلي. ولا تقول شيئًا عن قبول البوابة للمقترح الناتج.
طابق النطاق في أثناء ذلك. الاتصال في مخزن كل المستخدمين يحتاج معامل كل المستخدمين المقابل، وتحرير ملف المستخدم الواحد بالاسم الظاهر نفسه يغيّر كائنًا آخر لا يستخدمه النفق.
ثم اضبط جانب strongSwan على المجموعة نفسها قبل الاختبار. التغيير المنسّق على الطرفين هو الصيغة الوحيدة التي تتقارب؛ أما تغيير طرف واحد وإعادة المحاولة مرارًا فينتج سجلًا مليئًا بالرفض نفسه.
تحقّق من التبادل وإعادة توليد المفاتيح كلًا على حدة
الاتصال الناجح ملاحظة واحدة، وإعادة توليد المفاتيح ملاحظة أخرى. يستخدم تفاوض IKE الأولي مجموعة معاملات واحدة، ويمكن إعادة التفاوض لاحقًا على اقتران الطفل الذي يحمل حركة المرور بسياسة خاصة به. والتهيئة التي تتصل ثم تسقط بعد حين تكون عادةً الحالة الثانية.
ipsec statusall | grep -A6 "Northwind"
Get-VpnConnection -Name "Northwind IKEv2" | Format-List *
يعرض الأمر الأول رؤية الخادم للاقترانات القائمة، بما في ذلك اقتران الطفل وعمره المتبقي. ويعرض الثاني ما يحمله ملف العميل الآن، وهو السبيل الوحيد لتأكيد أن السياسة التي ضبطتها هي السياسة الفعّالة.
راقب إعادة توليد مفاتيح كاملة قبل أن تعلن النجاح. ويعني ذلك إبقاء الاتصال قائمًا مدة تكفي لاستبدال اقتران الطفل، ثم التأكد من استمرار حركة المرور. معظم حالات عدم تطابق السياسة تختبئ في هذه الخطوة لأن التفاوض الأولي قد ينجح بمجموعة لا تقبلها إعادة التوليد.
التراجع هو مجموعة المعاملات السابقة، لا بديلًا متسامحًا. إذا لم يقدّم العميل سوى مجموعة قديمة ضعيفة، فالحل تحسين السياسة المشتركة بين العميل والخادم، لا إضافة تلك المجموعة إلى البوابة حيث يمكن لكل طرف مستقبلي أن يتفاوض نزولًا إليها.
سجّل المعاملات الأربعة والمجموعة ونطاق الاتصال ونتيجة إعادة توليد المفاتيح. هذه ملاحظة قصيرة، وهي الفرق بين دليل تشغيل وقصة عن الوقت الذي ارتفع فيه النفق.