اقرأ تلك العبارة كتصريح عن كائن مشترك ومؤشر دالة، لا عن كلمة مرور. يمكن للكلمات نفسها أن تصدر عن OpenVPN إضافة، أو عن مكدس PAM محمّل لخدمة واحدة، أو من داخل خادم RADIUS، وهذه ثلاث تحقيقات مختلفة. ابدأ بتحديد العملية.

تفترض الفحوص أدناه أن الرسالة ظهرت عبر تكامل Linux-PAM عند تسجيل الدخول إلى VPN. إذا صدرت من إعدادات خادم RADIUS نفسه، فابدأ من أدلة ذلك الخادم.

سمِّ العملية قبل تسمية الحزمة

ثلاثة مكوّنات تُسمى وحدة ولا يمكن استبدال أي منها بالآخر. تُحمّل إضافة مصادقة OpenVPN بواسطة خادم VPN وتنفّذ واجهة الاستدعاء العكسي لذلك الخادم. ووحدة PAM كائن مشترك تحمّله libpam لخدمة محددة، وينفّذ نقاط دخول مثل pam_sm_authenticate. ووحدة FreeRADIUS جزء من إعدادات ذلك الخادم نفسه. وقد تصدر رسالة بالكلمات نفسها عن أي من الثلاثة، لذا السؤال الأول هو أي سطر سجل أنتجها.

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

اقرأ خطأ التحميل، ثم نقطة الدخول

يبلّغ PAM عن وحدة غير معروفة عندما يعجز عن تحميل الكائن المشترك المحدد، أو عندما لا يوفّر الكائن المحمّل الدالة التي يتطلبها ذلك السطر في المكدس. وهذان إصلاحان مختلفان: الأول مشكلة مسار أو تغليف أو ABI، والثاني نقطة دخول غير مطابقة. يحتاج سطر المصادقة إلى pam_sm_authenticate بينما يحتاج سطر الحساب إلى pam_sm_acct_mgmt، والمكتبة التي تنفّذ واحداً فقط منهما ستفشل في الآخر، كما تُظهر شيفرة التوجيه ذلك. ولا يثبت العثور على الملف على القرص أيًّا من الأمرين.

أخذ مكتبة باسم مشابه من توزيعة أو معمارية معالج مختلفة ليس إصلاحاً، وقد يترك عمليةً تحمّل وحدة لم تُختبر قط مقابل libpam الخاصة بها. تحقّق من الحزمة التي تملك المسار المقصود ومن معمارية الملف الحقيقية قبل تغيير أي شيء.

حافظ على الضمانات التي كان المكدس يقدمها

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

قد يكون مكدس متعدد الوحدات قد شغّل خدمة خلفية أخرى قبل السطر الفاشل، لذا لا يثبت الخطأ أنه لم يُرسل أي طلب RADIUS.

تحقّق من تسجيل الدخول لا من الوحدة

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

تحميل وحدة بنظافة تقدّم، وليس اختباراً منتهياً.

سجّل اسم الخدمة وملفات السياسة ونقاط الدخول المعنية، مع المحاولة الواحدة التي استخدمتها كدليل. هذا السجل هو ما يجعل الحادثة التالية بحثاً سريعاً بدل تمرين تنقيب.

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