| PAM_FAILLOCK(8) | راهنمای لینوکس PAM | PAM_FAILLOCK(8) |
نام (NAME)
pam_faillock - ماژول PAM برای قفل کردن حسابها پس از تلاشهای ناموفق ورود
خلاصه دستور (SYNOPSIS)
auth ... pam_faillock.so {preauth|authfail|authsucc} [conf=/path/to/config-file] [dir=/path/to/tally-directory] [even_deny_root] [deny=n] [fail_interval=n] [unlock_time=n] [root_unlock_time=n] [admin_group=name] [audit] [silent] [no_log_info]
account ... pam_faillock.so [dir=/path/to/tally-directory] [no_log_info]
توضیحات (DESCRIPTION)
این ماژول فهرستی از تلاشهای ناموفق احراز هویت را برای هر کاربر در یک بازه زمانی مشخص نگهداری میکند و در صورتی که تعداد دفعات متوالی احراز هویت ناموفق بیشتر از deny باشد، حساب کاربری را قفل میکند.
بهطور معمول، تلاشهای ناموفق برای احراز هویت root باعث مسدود شدن حساب کاربری ریشه (root) نخواهد شد، تا از حملات منع خدمت (denial-of-service) جلوگیری شود؛ اگر به کاربران شما دسترسی شل داده نشده باشد و root تنها بتواند از طریق su یا در کنسول محلی دستگاه (نه telnet/rsh و غیره) وارد شود، این رفتار ایمن است.
گزینهها (OPTIONS)
{preauth|authfail|authsucc}
آرگومان preauth باید هنگامی استفاده شود که ماژول قبل از ماژولهای درخواستکننده اطلاعات هویتی کاربر (مانند رمز عبور) فراخوانی میشود. ماژول فقط بررسی میکند که آیا به دلیل تعداد غیرعادی دفعات متوالی احراز هویت ناموفق اخیر، باید از دسترسی کاربر به سرویس جلوگیری شود یا خیر. این فراخوانی در صورت استفاده از authsucc اختیاری است.
آرگومان authfail باید هنگامی استفاده شود که ماژول پس از ماژولهای تعیینکننده نتیجه احراز هویت و پس از شکست آنها فراخوانی شود. ماژول شکست را در پرونده شمارش (tally) مربوط به کاربر ثبت میکند، مگر آنکه کاربر پیش از این به دلیل شکستهای قبلی احراز هویت مسدود شده باشد.
آرگومان authsucc باید هنگامی استفاده شود که ماژول پس از ماژولهای تعیینکننده نتیجه احراز هویت و پس از موفقیت آنها فراخوانی شود. در این حالت، ماژول رکورد شکستها را در پرونده شمارش مربوط به کاربر پاک میکند، مگر آنکه کاربر قبلاً مسدود شده باشد؛ در غیر این صورت، خطای احراز هویت بازمیگرداند. اگر این فراخوانی انجام نشود، pam_faillock تفاوتی بین تلاشهای ناموفق متوالی و غیرمتوالی قائل نخواهد شد. در چنین حالتی باید از فراخوانی preauth استفاده شود. به دلیل پیچیدگیهای نحوه پیکربندی پشته PAM، امکان فراخوانی pam_faillock بهعنوان یک ماژول account نیز وجود دارد. در چنین پیکربندیای، ماژول باید در مرحله preauth نیز فراخوانی شود.
conf=/path/to/config-file
گزینههای مربوط به پیکربندی رفتار ماژول در صفحه راهنمای faillock.conf(5) شرح داده شدهاند. گزینههای مشخصشده در خط فرمان ماژول، مقادیر موجود در پرونده پیکربندی را بازنویسی (override) میکنند.
انواع ماژول ارائهشده (MODULE TYPES PROVIDED)
انواع ماژول auth و account ارائه شدهاند.
مقادیر بازگشتی (RETURN VALUES)
PAM_AUTH_ERR
PAM_BUF_ERR
PAM_CONV_ERR
PAM_INCOMPLETE
PAM_SUCCESS
PAM_IGNORE
نکات (NOTES)
پیکربندی گزینهها در خط فرمان ماژول توصیه نمیشود. بهجای آن باید از /etc/security/faillock.conf استفاده شود.
پیکربندی pam_faillock در پشته PAM با پیکربندی ماژول pam_tally2 متفاوت است.
پروندههای جداگانه حاوی رکوردهای شکست با مالکیت همان کاربر ایجاد میشوند. این موضوع به ماژول pam_faillock.so اجازه میدهد هنگامی که از یک محافظ صفحه نمایش (screensaver) فراخوانی میشود نیز بهدرستی کار کند.
توجه داشته باشید که استفاده از ماژول در حالت preauth بدون تعیین گزینه silent در /etc/security/faillock.conf یا با فیلد کنترلی requisite باعث نشت اطلاعات درباره وجود یا عدم وجود حساب کاربری در سیستم میشود، زیرا شکستها برای کاربران ناشناخته ثبت نمیشوند. پیام مربوط به قفل بودن حساب کاربری هرگز برای حسابهای کاربری ناموجود نمایش داده نمیشود و به مهاجم اجازه میدهد استنباط کند که یک حساب خاص در سیستم وجود ندارد.
مثالها (EXAMPLES)
در اینجا دو نمونه پیکربندی احتمالی برای /etc/pam.d/login آورده شده است. این تنظیمات باعث میشوند pam_faillock حساب کاربری را پس از ۴ بار ورود ناموفق متوالی در طول بازه زمانی پیشفرض ۱۵ دقیقه قفل کند. حساب root نیز قفل خواهد شد. حسابها پس از ۲۰ دقیقه بهطور خودکار از حالت قفل خارج میشوند.
در اولین مثال، ماژول فقط در فاز auth فراخوانی میشود و ماژول هیچ اطلاعاتی درباره مسدود شدن حساب توسط pam_faillock چاپ نمیکند. فراخوانی preauth میتواند اضافه شود تا به کاربران اطلاع دهد که ورود آنها توسط ماژول مسدود شده است و همچنین در چنین حالتی، احراز هویت را بدون درخواست رمز عبور متوقف کند.
نمونه پرونده /etc/security/faillock.conf:
deny=4 unlock_time=1200 silent
نمونه پرونده /etc/pam.d/config:
auth required pam_securetty.so auth required pam_env.so auth required pam_nologin.so # optionally call: auth requisite pam_faillock.so preauth # to display the message about account being locked auth [success=1 default=bad] pam_unix.so auth [default=die] pam_faillock.so authfail auth sufficient pam_faillock.so authsucc auth required pam_deny.so account required pam_unix.so password required pam_unix.so shadow session required pam_selinux.so close session required pam_loginuid.so session required pam_unix.so session required pam_selinux.so open
در مثال دوم، ماژول در هر دو فاز auth و account فراخوانی میشود و در صورتی که گزینه silent در faillock.conf مشخص نشده باشد، قفل بودن حساب را به کاربری که در حال احراز هویت است اطلاع میدهد.
auth required pam_securetty.so auth required pam_env.so auth required pam_nologin.so auth required pam_faillock.so preauth # optionally use requisite above if you do not want to prompt for the password # on locked accounts auth sufficient pam_unix.so auth [default=die] pam_faillock.so authfail auth required pam_deny.so account required pam_faillock.so # if you drop the above call to pam_faillock.so the lock will be done also # on non-consecutive authentication failures account required pam_unix.so password required pam_unix.so shadow session required pam_selinux.so close session required pam_loginuid.so session required pam_unix.so session required pam_selinux.so open
فایلها (FILES)
/var/run/faillock/*
نکته: این پروندهها پس از راهاندازی مجدد در سیستمهایی که پوشه /var/run/faillock در آنها روی حافظه مجازی سوار (mount) شده باشد، ناپدید خواهند شد. برای ذخیرهسازی پایدار، از گزینه dir= در پرونده /etc/security/faillock.conf استفاده کنید.
/etc/security/faillock.conf
همچنین ببینید (SEE ALSO)
faillock(8), faillock.conf(5), pam.conf(5), pam.d(5), pam(8)
نویسندگان (AUTHORS)
برنامه pam_faillock توسط Tomas Mraz نوشته شده است.
| 2025-06-29 | Linux-PAM |