رفض مفتاح PSK في L2TP/IPsec: تتبّع مربّع الحوار ثم الملفات
قد يخسر المفتاح الظاهر على الشاشة أمام ملف أسرار قديم أو فاصل سطر غير مرئي. تتبّعه من حقل NetworkManager إلى داخل /etc/ipsec.d.
تلصق المفتاح المشترك مسبقًا من رسالة المدير في مربّع حوار NetworkManager، وتؤشّر على خانة الإظهار، فيتطابق حرفًا بحرف. ومع ذلك ينتهي الاتصال بفشل في المصادقة قبل أن يرتفع النفق. عندما رأيت ذلك يحدث أول مرة افترضت أن المفتاح خطأ، ولم يكن كذلك. هناك أمران آخران يحدّدان ما يقرأه الخادم فعليًا: ملف الأسرار الذي يكتبه الملحق لذلك الاتصال، وما إذا كانت القيمة قد وصلت عبر مربّع الحوار دون تغيير.
الجولة أدناه تتتبّع المفتاح من الحقل إلى الملف، وهذا هو الترتيب الذي يخبرك أين ضاع. نفّذها على الجهاز الذي يفشل، لا على الجهاز الذي يعمل، لأن الفرق بين هذين الجهازين هو عادةً تخطيط الملفات لا المفتاح.
ابدأ من مربّع الحوار، لكن لا تثق بالحقل
افتح تبويب IPsec الخاص بالاتصال واكتب المفتاح من جديد بدل لصقه. المفتاح المنسوخ من رسالة دردشة أو ملف PDF أو مدير كلمات مرور قد يصل بفاصل سطر في النهاية لا يعرضه الحقل، وتبقى الحروف الظاهرة صحيحة.
اضغط زر إظهار كلمة المرور وانظر إلى نهاية السلسلة لا وسطها. إن ترك المؤشر سطرًا فارغًا تحت النص فاحذفه وأعد كتابة الحرف الأخير. هذا التعديل الواحد يحلّ نصيبًا مفاجئًا من هذه البلاغات، ويكلّف أقل من قراءة أي سجل.
إن جاء المفتاح من نظام تذاكر يلفّ الأسطر الطويلة، فاطلبه عبر قناة لا تلفّ الأسطر. قارن الأطوال مع المدير بدل مقارنة سلسلتين جنبًا إلى جنب؛ الحرف المفقود عند نقطة لفّ لا يُرى في خط متناسب.
اتبع المفتاح إلى داخل /etc/ipsec.d
لا يسلّم الملحق المفتاح المشترك مسبقًا إلى خادم IPsec كوسيط في سطر أوامر. بدلًا من ذلك يخزّن القيمة في ملف أسرار ويرتّب أن يسحب الخادم ذلك الملف، بإضافة سطر تضمين إلى /etc/ipsec.secrets إن لم يكن موجودًا. ما يحمله مربّع الحوار هو مدخل إلى ذلك الملف المولّد، لا القيمة المستخدمة.
اسرد ما هو موجود قبل أن تغيّر أي شيء:
ipsec --version
sudo ls -l /etc/ipsec.d/*.secrets /etc/ipsec.d/ipsec.nm-l2tp.secrets 2>/dev/null
sudo grep -n "include" /etc/ipsec.secrets
كتبت إصدارات أقدم من الملحق ملفًا واحدًا لكل اتصال، مسمّى باسم UUID الاتصال، مثل /etc/ipsec.d/nm-l2tp-ipsec-<uuid>.secrets. حذف ملف تعريف في التطبيق المصغّر لا يحذف ذلك الملف بشكل موثوق. إن بقي ملف قديم من خادم سابق على القرص وما زال مضمّنًا، فقد يختار الخادم سرًّا يعود إلى ملف تعريف لم تعد تستخدمه، فيفشل الاتصال بينما الحقل الظاهر صحيح.
افهم ما فعله تغيير 1.2.12 بالترقيات
استبدل إصدار الملحق 1.2.12 ملفات الأسرار لكل اتصال بملف مشترك واحد، /etc/ipsec.d/ipsec.nm-l2tp.secrets. الترقية لا تنظّف الملفات الأقدم المسماة باسم UUID، وسطر include /etc/ipsec.d/*.secrets الموجود ما زال يسحبها. الإصدار 1.2.16 غيّر معالجة المقترحات الافتراضية، لا تخطيط الأسرار.
يفسّر هذا التاريخ لماذا يتصرف جهازان لهما ما يبدو ملف التعريف نفسه بشكل مختلف. المفتاح متطابق؛ أما مجموعة الملفات التي يضمّنها الخادم فليست كذلك. عندما تزيل ملفًا يتيمًا، انقله جانبًا بدل حذفه، وتأكد من الاتصال، ثم احذفه بعد تسجيل الحالة العاملة. إعادة تسميته تُبقي القيمة القديمة قابلة للاسترجاع إن تبيّن أن العطل في مكان آخر.
افصل الحروف التي لا تستطيع صيغة التخزين حملها
تذكر وثائق strongSwan الخاصة بسلسلة السر المشترك أن القيمة لا يمكن أن تحتوي على فاصل سطر أو حرف علامة اقتباس مزدوجة. المفتاح المنسوخ من مستند قد يحمل أحدهما دون أي فرق بصري في مربّع حوار عادي.
منذ 1.2.12 لم تعد القيمة المخزّنة نصًا عاديًا. يرمّز الملحق المفتاح المشترك مسبقًا بترميز base64 قبل أن يصل إلى الملف، وتقدّم ملاحظات الإصدار ذلك الترميز سببًا لقبول علامة الاقتباس المزدوجة الآن في المفتاح. لذا فعلامة الاقتباس المكتوبة في الحقل قابلة للتمثيل؛ ولا ينطبق ذلك على كل حرف تحكّم.
الطول قيد مختلف. لا ينطبق حد أدنى عالمي عبر برمجيات L2TP/IPsec: بعض العملاء يقبلون مفاتيح أقصر من عشرين حرفًا وبعض البوابات تفرض حدًّا أدنى. إن رُفض مفتاح قصير، فالقاعدة تنتمي إلى سياسة الخادم أو إلى تحقّق ذلك العميل، ورفع شيء محليًا لن يغيّره.
اقرأ أي طبقة مصادقة فشلت
شغّل ipsec --version أولًا، لأن strongSwan وLibreswan يستخدمان أسماء ملفات وصيغة مختلفة، والنصيحة الخاصة بأحدهما قد تضرّ الآخر. ثم اقرأ مرحلة الفشل من رسالة العميل أو سجل الخادم: الشكوى من المفتاح المشترك مسبقًا حدث مختلف عن اسم مستخدم وكلمة مرور مرفوضين.
يصادق المفتاح المشترك مسبقًا على طرفي النفق. ويصادق اسم المستخدم وكلمة المرور على الشخص داخل L2TP، ويتولى PPP التعامل معهما بعد أن يكون اقتران IPsec قائمًا. المفتاح الصحيح مع حساب خاطئ يفشل أيضًا، وتغيير الحساب لن يصلح مفتاحًا لم يقرأه الخادم قراءة صحيحة أبدًا.
عند إغلاق التذكرة، اكتب الأمور الأربعة كلها: إصدار الملحق، وملف الأسرار المستخدم، وهل أُعيد كتابة المفتاح أم لُصق، والطبقة المذكورة في الخطأ. بذلك يستطيع من يكرر هذه الجولة لاحقًا أن يقفز مباشرة إلى الفرق بين الجهاز العامل والجهاز الفاشل.