ماژول PAM ناشناخته است: کدام فرایند واقعاً شکست خورد
پیام یک شیء مشترک و یک نقطه ورود را نام میبرد، نه یک گذرواژه. فرایندی را که آن را ثبت کرده بیابید و سپس بارگذاری، نمادها و تضمینهای پشته را بررسی کنید.
آن عبارت را اظهارنظری درباره یک شیء مشترک و یک اشارهگر تابع بخوانید، نه درباره یک گذرواژه. همان کلمات میتوانند از یک 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 ارسال نشده است.
ورود را تأیید کنید، نه ماژول را
پس از اصلاح ناسازگاری، مسیر پذیرش واقعی را بیازمایید. حساب معتبر باید موفق شود، دادههای ورودی نامعتبر باید همچنان شکست بخورند و حساب ممنوع باید همچنان رد شود. همچنین تأیید کنید که هر الزام گواهی یا عامل اضافی هنوز اعمال میشود، زیرا پشته تعمیرشدهای که مرحلهای را میگذراند از دید کارخواه موفق به نظر میرسد.
بارگذاری پاک یک ماژول پیشرفت است، نه آزمون کاملشده.
ثبت کنید که کدام نام سرویس، کدام فایلهای سیاست و کدام نقاط ورود درگیر بودند، همراه با همان تلاش واحدی که بهعنوان شاهد به کار بردید. همین ثبت است که رویداد بعدی را به یک جستوجو تبدیل میکند و نه یک تمرین باستانشناسی.