يوفّر Windows عميل IKEv2 يتحكم فيه PowerShell من البداية إلى النهاية، لذا لا يحتاج النفق العامل إلى واجهة رسومية ولا إلى برامج طرف ثالث. تأتي كل حالات الفشل تقريبًا من ثلاثة مواضع: أين انتهت الشهادة، وكيف كُتبت بادئات المسارات، وماذا تتوقع طريقة EAP المختارة. تعامل معها بهذا الترتيب، لأن كل واحدة قابلة للفحص قبل أن تبدأ التالية، وخطأ لاحق سيحجب خطأ أسبق.

توجد أنفاق شهادة الجهاز لتبدأ قبل أن يسجّل أي شخص الدخول، ولهذا يجب أن تعيش الهوية عادة في مخزن الحاسوب بدلًا من مخزن المستخدم.

الشهادة أولًا، ثم النفق

عمليتا استيراد مهمتان. تذهب هوية العميل إلى Cert:\LocalMachine\My عبر Import-PfxCertificate، وتذهب الجهة المُصدرة CA إلى Cert:\LocalMachine\Root عبر Import-Certificate. الشهادة الطرفية وحدها لا تثبت أي سلسلة، لذا فإن تخطي الاستيراد الثاني يترك التحقق بلا شيء يبني عليه. وإلى جانب الوجود، يجب أن يكون المفتاح الخاص مرفقًا وأن يُسمح لحساب الحاسوب بقراءته. يسرد Get-ChildItem Cert:\LocalMachine\My ما وصل؛ قارن البصمات بدلًا من الأسماء، لأن الأسماء المتطابقة تقريبًا شائعة.

افحص استخدام المفتاح الموسّع قبل النشر. مصادقة العميل هي الشرط المعتاد لهوية جهاز IKEv2، ويجب أن يثق الطرف الآخر بالجهة CA التي وقّعتها. الهوية الموجودة في مخزن المستخدم لا وجود لها بالنسبة لاتصال في سياق الحاسوب.

أنشئ الملف التعريفي ومساراته

يكتب Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection الملف التعريفي. ينشر مفتاح -AllUserConnection هذا الملف في دفتر الهاتف العام، وهو مناسب لصندوق مشترك أو يُدار كخدمة؛ احذفه لمستخدم واحد. وأي عنوان تمرره يجب أن يطابق اسم DNS في شهادة الخادم، وإلا ظهر الفشل بعد أن يصبح النفق قائمًا. ثم تُضاف البادئات واحدة تلو الأخرى عبر Add-VpnConnectionRoute، وفقط تلك التي يحتاجها التصميم فعلًا.

يحمل IPv6 طابعًا غريبًا: يرفض Windows ::/0 كمسار VPN، لذا فإن ::/1 مع 8000::/1 يغطيان معًا الفضاء العنواني نفسه. كما أن توجيه بادئة لا يمنح شيئًا في جدار الحماية البعيد، لذا تبقى قائمة البادئات وسياسة جدار الحماية وثيقتين منفصلتين.

بيانات الاعتماد تنتمي إلى طريقة المصادقة

لا يحتاج ملف تعريف شهادة الجهاز إلى أي سر للمستخدم، بينما يحتاج ملف EAP-MSCHAPv2 إليه. في الحالة الثانية توفّر وحدة VPNCredentialsHelper الأمر Set-VpnConnectionUsernamePassword، وهو يريد نصًا صريحًا: $cred.Password من نوع SecureString، لذا أزل الغلاف أولًا عبر GetNetworkCredential().Password. ثبّت الوحدة أينما يعمل الأمر، لا على محطة العمل التي كُتب فيها فقط. أما EAP-TLS أو طريقة مخصصة فلا تستخدم هذا الأمر إطلاقًا؛ بل تأخذ ملف XML لإعداد EAP.

يرفع rasdial "Office IKEv2" الاتصال من صدفة، وهي أسرع طريقة لرؤية النتيجة في المقدمة بدلًا من سجل أحداث.

ما لا يثبته النفق المتصل

تغطي حالة الاتصال تبادل IKE وخطوة المصادقة، ولا شيء بعد ذلك. سلوك DNS والمسار إلى مضيف خاص وجدار الحماية البعيد كلها ما زالت غير مُثبتة. ابدأ من الداخل: محوّل النفق، ثم بحث عن مسار لعنوان خاص، ثم خدمة واحدة مصرّح لك باستخدامها. أول ملاحظة تفشل تحدد الطبقة التي يجب فحصها.

عند تغيير ملف تعريف، احذف السابق بالأمر Remove-VpnConnection -Name "Office IKEv2" -Force قبل إعادة إنشائه؛ وإلا بقيت الإعدادات والمسارات القديمة عبر التعديل. وإن لم يتصل بعد ذلك، قارن البصمة المسجلة في الملف التعريفي بالبصمة الموجودة في المخزن، لأن Windows قد يحتفظ بمرجع إلى هوية استُبدلت منذ ذلك الحين تحت اسم لم يتغير.

احتفظ بالبصمة وطريقة EAP وقائمة المسارات بجانب الملف التعريفي. فهي معًا تفسّر معظم ما يحدث لاحقًا.

مقالات ذات صلة