PAM_KRB5(5) pam-krb5 PAM_KRB5(5) نام (NAME) pam_krb5 - ماژول احراز هویت کربروس برای PAM خلاصه دستور (SYNOPSIS) auth sufficient pam_krb5.so minimum_uid=1000 session required pam_krb5.so minimum_uid=1000 account required pam_krb5.so minimum_uid=1000 password sufficient pam_krb5.so minimum_uid=1000 توضیحات (DESCRIPTION) ماژول سرویس کربروس برای PAM، که معمولاً در مسیر /lib/security/pam_krb5.so نصب می‌شود، قابلیت‌هایی را برای چهار عملیات PAM فراهم می‌آورد: احراز هویت، مدیریت حساب، مدیریت نشست و مدیریت گذرواژه. فایل pam_krb5.so یک شیء اشتراکی است که در صورت نیاز بر اساس پیکربندی PAM سیستم به صورت پویا توسط زیرسیستم PAM بارگیری می‌شود. سامانه PAM ساختاری برای اتصال ماژول‌های خارجی احراز هویت و مدیریت نشست است تا هر برنامه مجبور نباشد بهترین راه بررسی احراز هویت کاربر یا ایجاد نشست کاربری را در آن سیستم بداند. برای جزئیات بیشتر در مورد نحوه پیکربندی PAM در سیستم خود، صفحه راهنمای PAM، اغلب pam(7) را ببینید. اقدامات این ماژول هنگام فراخوانی از هر گروه به شرح زیر است: auth پیاده‌سازی توابع pam_authenticate() و pam_setcred() را فراهم می‌کند. تابع اول نام کاربری را از نشست PAM دریافت می‌کند، گذرواژه کاربر را درخواست می‌نماید (مگر اینکه برای استفاده از گذرواژه واردشده قبلی پیکربندی شده باشد)، و سپس احراز هویت اولیه کربروس را انجام داده و در صورت موفقیت، اعتبارنامه‌های به‌دست‌آمده را در یک کَش بلیت موقت ذخیره می‌کند. تابع دوم، بسته به فلگ‌هایی که با آن فراخوانی شده است، یا محتویات کَش بلیت موقت را در یک کَش بلیت ماندگار متعلق به کاربر می‌نویسد یا از کَش بلیت موقت برای تازه‌سازی کَش بلیت موجود کاربر استفاده می‌کند. گذرواژه‌هایی با طول برابر یا بیشتر از PAM_MAX_RESP_SIZE بایت (معمولاً ۵۱۲ بایت) رد خواهند شد، زیرا گذرواژه‌های بیش از حد طولانی می‌توانند برای حمله منع سرویس (DoS) استفاده شوند. پس از انجام احراز هویت اولیه، ماژول PAM کربروس تلاش می‌کند تا بلیت‌هایی را برای یک کلید در جدول کلید (keytab) محلی سیستم دریافت کرده و سپس آن بلیت‌ها را اعتبارسنجی کند. تا زمانی که این مرحله انجام نشود، احراز هویت در برابر جعل KDC آسیب‌پذیر است، اما این کار مستلزم آن است که سیستم دارای کلید محلی باشد و ماژول PAM به عنوان کاربری اجرا شود که بتواند فایل keytab (معمولاً /etc/krb5.keytab) را بخواند. می‌توانید با گزینه keytab ماژول PAM کربروس را به یک keytab دیگر هدایت کنید. اگر آن keytab قابل خواندن نباشد یا هیچ کلیدی در آن یافت نشود، رفتار پیش‌فرض (که بالقوه ناامن است) نادیده گرفتن این بررسی است. اگر می‌خواهید در صورت عدم امکان بررسی بلیت‌های به‌دست‌آمده، احراز هویت با شکست مواجه شود، "verify_ap_req_nofail" را در بخش [libdefaults] فایل /etc/krb5.conf روی true تنظیم کنید. توجه داشته باشید که این کار بر برنامه‌های دیگر غیر از این ماژول PAM نیز تأثیر می‌گذارد. به طور پیش‌فرض، هر زمان که کاربر احراز هویت شود، یک بررسی مجازشماری پایه نیز با استفاده از krb5_kuserok() انجام می‌شود. رفتار پیش‌فرض این تابع بررسی حساب کاربر برای وجود فایل .k5login است و در صورت وجود، اطمینان حاصل می‌کند که پرینسیپال کاربر در آن فایل فهرست شده باشد. اگر .k5login وجود نداشته باشد، بررسی پیش‌فرض این است که اطمینان حاصل شود پرینسیپال کاربر در قلمرو محلی پیش‌فرض قرار دارد و بخش کاربری پرینسیپال با نام حساب مطابقت دارد (این را می‌توان با پیکربندی نگاشت سفارشی aname به localname در krb5.conf تغییر داد؛ برای جزئیات به مستندات کربروس مراجعه کنید). این رفتار را می‌توان با چندین گزینه پیکربندی سفارشی کرد؛ به بخش‌های زیر مراجعه کنید. اگر نام کاربری ارائه‌شده به PAM شامل علامت "@" باشد و کربروس بتواند با در نظر گرفتن نام کاربری به عنوان یک پرینسیپال، آن را به یک نام حساب محلی نگاشت کند، pam_authenticate() کاربر PAM را به آن نام حساب محلی تغییر می‌دهد. این به کاربران اجازه می‌دهد با پرینسیپال کربروس خود وارد شوند و نگاشت به حساب را به کربروس بسپارند. این قابلیت را می‌توان با گزینه no_update_user غیرفعال کرد. با این حال توجه داشته باشید که این امکان را نمی‌توان با OpenSSH استفاده کرد. OpenSSH نام‌های کاربری را که قبل از انجام این بازنگاشت با حساب‌های محلی مطابقت ندارند رد می‌کند و یک گذرواژه نامعتبر را به ماژول PAM ارسال می‌نماید. همچنین آگاه باشید که چندین ماژول رایج دیگر PAM، مانند pam_securetty، انتظار دارند بتوانند کاربر را با getpwnam() جستجو کنند و در صورت استفاده از این ویژگی، نمی‌توان آن‌ها را قبل از pam_krb5 فراخوانی کرد. هنگامی که pam_setcred() برای مقداردهی اولیه یک کَش بلیت جدید فراخوانی می‌شود، متغیر محیطی KRB5CCNAME روی مسیر آن کَش بلیت تنظیم می‌شود. به طور پیش‌فرض، نام کَش به صورت /tmp/krb5cc_UID_RANDOM خواهد بود که در آن UID شناسه عددی کاربر و RANDOM شش حرف تصادفی است. این مورد را می‌توان با گزینه‌های ccache و ccache_dir پیکربندی کرد. ماژول pam-krb5 از مکان پیش‌فرض کَش بلیت یا default_cc_name در بخش "[libdefaults]" فایل krb5.conf استفاده نمی‌کند. مکان پیش‌فرض کَش، یک کَش مشترک را برای تمام نشست‌های همان کاربر استفاده می‌کند که در هنگام خروج کاربر از یکی از چندین نشست، باعث رفتار گیج‌کننده می‌شود. اگر pam_setcred() یک کَش بلیت جدید را مقداردهی اولیه کند، آن کَش بلیت را طوری تنظیم می‌کند که با بسته شدن نشست PAM حذف شود. به طور معمول، برنامه فراخواننده (login، sshd و غیره) شل کاربر را به عنوان یک زیرپردازش اجرا می‌کند، منتظر خروج آن می‌ماند و سپس نشست PAM را می‌بندد و در نتیجه نشست کاربر را پاکسازی می‌نماید. session پیاده‌سازی pam_open_session() (که معادل فراخوانی pam_setcred() با فلگ PAM_ESTABLISH_CRED است) و pam_close_session() (که کَش بلیت ایجادشده توسط pam_setcred() را از بین می‌برد) را فراهم می‌کند. account پیاده‌سازی pam_acct_mgmt() را فراهم می‌کند. تمام کاری که انجام می‌دهد این است که همان بررسی مجازشماری را که توسط پیاده‌سازی pam_authenticate() شرح داده شده در بالا انجام می‌شود، تکرار کند. password پیاده‌سازی pam_chauthtok() را فراهم می‌کند که تغییر گذرواژه را اجرا می‌نماید. از کاربر گذرواژه فعلی‌اش درخواست می‌شود (مگر اینکه برای استفاده از گذرواژه از پیش واردشده پیکربندی شده باشد) و سپس ماژول PAM اعتبارنامه‌هایی را برای پرینسیپال ویژه کربروس "kadmin/changepw" دریافت می‌کند. سپس دو بار از کاربر گذرواژه جدید درخواست می‌کند تا اطمینان حاصل شود که کاربر آن را به درستی وارد کرده است (باز هم مگر اینکه برای استفاده از گذرواژه از پیش واردشده پیکربندی شده باشد)، و سپس تغییر گذرواژه کربروس را انجام می‌دهد. گذرواژه‌هایی با طول برابر یا بیشتر از PAM_MAX_RESP_SIZE بایت (معمولاً ۵۱۲ بایت) رد خواهند شد، زیرا گذرواژه‌های بیش از حد طولانی می‌توانند به عنوان حمله منع سرویس استفاده شوند. برخلاف ماژول گذرواژه عادی یونیکس، این ماژول در صورتی که کاربر گذرواژه قدیمی را بداند، به هر کاربری اجازه می‌دهد گذرواژه هر کاربر دیگری را تغییر دهد. همچنین برخلاف ماژول گذرواژه عادی یونیکس، از کاربر root همیشه گذرواژه قدیمی درخواست می‌شود، زیرا root وضعیت ویژه‌ای در کربروس ندارد. (برای تغییر گذرواژه‌ها در کربروس بدون دانستن گذرواژه قدیمی، به جای آن از kadmin(8) استفاده کنید.) هر دو فراخوانی مدیریت حساب و نشست ماژول PAM کربروس، اگر در زمینه نشست PAM برای کاربری فراخوانی شوند که با کربروس احراز هویت نکرده است، PAM_IGNORE را برمی‌گردانند (کد بازگشتی "ignore" در زبان پیکربندی Linux PAM). توجه داشته باشید که این ماژول برای انجام احراز هویت کربروس فرض می‌کند شبکه در دسترس است. اگر شبکه در دسترس نباشد، زمان انتظار (timeout) برخی از کتابخانه‌های کربروس طولانی‌تر از زمان انتظار تحمیل‌شده توسط فرآیند ورود است. این بدان معناست که استفاده بی‌احتیاط از این ماژول می‌تواند ورود به کنسول را به عنوان root غیرممکن کند. به همین دلیل، همیشه باید از گزینه‌های ignore_root یا minimum_uid استفاده کنید، و یک ماژول احراز هویت محلی مانند pam_unix را ابتدا با فیلد کنترلی "sufficient" فهرست نمایید تا در صورت موفقیت‌آمیز بودن احراز هویت محلی با گذرواژه، ماژول PAM کربروس نادیده گرفته شود. این ماژول همان ماژول PAM کربروس موجود در Sourceforge یا ماژول ارائه‌شده در سیستم‌های Red Hat نیست. این ماژول از بسیاری از همان گزینه‌ها پشتیبانی می‌کند، برخی گزینه‌های اضافی دارد و از برخی گزینه‌هایی که آن ماژول‌ها پشتیبانی می‌کنند پشتیبانی نمی‌کند. پیکربندی (CONFIGURATION) ماژول PAM کربروس گزینه‌های متعددی می‌پذیرد که همه آن‌ها به هر گروه PAM مربوط نمی‌شوند؛ گزینه‌های نامربوط بدون اخطار نادیده گرفته خواهند شد. هر یک از این گزینه‌ها را می‌توان در پیکربندی PAM به عنوان آرگومان‌های فهرست‌شده پس از "pam_krb5.so" تنظیم کرد. برخی از گزینه‌ها را می‌توان در فایل krb5.conf سیستم نیز تنظیم کرد؛ در صورت امکان، این موضوع در توضیحات آن گزینه در زیر ذکر شده است. برای تنظیم یک گزینه بولی در فایل پیکربندی PAM، فقط نام گزینه را در آرگومان‌ها بیاورید. برای تنظیم گزینه‌ای که آرگومان می‌گیرد، پس از نام گزینه یک علامت مساوی (=) و مقدار آن را بدون هیچ فاصله خالی قرار دهید. فاصله خالی در آرگومان‌های گزینه‌ها در پیکربندی PAM پشتیبانی نمی‌شود. برای تنظیم یک گزینه برای ماژول PAM در فایل krb5.conf سیستم، آن گزینه را در بخش "[appdefaults]" قرار دهید. همه گزینه‌ها باید با علامت مساوی (=) و یک مقدار همراه باشند، بنابراین برای گزینه‌های بولی عبارت "= true" را اضافه کنید. ماژول PAM کربروس گزینه‌ها را در بالاترین سطح بخش "[appdefaults]" یا در زیربخشی به نام "pam"، در داخل یا خارج از بخشی برای قلمرو، جستجو می‌کند. برای نمونه، قطعه کد زیر از یک فایل krb5.conf گزینه forwardable را روی true، گزینه minimum_uid را روی 1000، و ignore_k5login را فقط در صورتی که قلمرو EXAMPLE.COM باشد تنظیم می‌کند. [appdefaults] forwardable = true pam = { minimum_uid = 1000 EXAMPLE.COM = { ignore_k5login = true } } برای اطلاعات بیشتر درباره نحو نگارش krb5.conf، به krb5.conf(5) مراجعه کنید. توجه داشته باشید که گزینه‌های وابسته به قلمرو تنها بر اساس قلمرو پیش‌فرض تنظیم می‌شوند، خواه طبق پیکربندی در krb5.conf(5) یا تنظیم‌شده توسط گزینه realm که در زیر شرح داده شده است. اگر کاربر در حسابی که با قلمرو مشخص شده احراز هویت کند، آن قلمرو در تعیین گزینه‌های اعمالی استفاده نخواهد شد. برای ماژول PAM تفاوتی ندارد که گزینه‌ها در سطح بالا یا در بخش "pam" مشخص شوند؛ بخش "pam" برای مواردی پشتیبانی می‌شود که گزینه‌هایی باید برای ماژول PAM تنظیم شوند اما برای سایر برنامه‌ها اعمال نگردند. اگر یک گزینه هم در krb5.conf و هم در پیکربندی PAM تنظیم شود، پیکربندی PAM تقدم دارد. اما توجه داشته باشید به دلیل نحو پیکربندی، راهی برای خاموش کردن یک گزینه بولی در پیکربندی PAM که در krb5.conf روشن شده است وجود ندارد. ابتدای توضیحات هر گزینه با نسخه‌ای از pam-krb5 علامت‌گذاری شده که آن گزینه با معنای فعلی‌اش در آن اضافه شده است. مجازشماری (Authorization) alt_auth_map= [3.12] عملکردی مشابه گزینه search_k5login دارد. آرگومان به عنوان پرینسیپال احراز هویت کربروس استفاده می‌شود، و هر %s در با نام کاربری جایگزین می‌گردد. اگر نام کاربری شامل علامت "@" باشد، تنها بخش قبل از قلمرو در نام کاربری برای جایگزینی %s به کار می‌رود. اگر شامل یک قلمرو باشد، همان استفاده خواهد شد؛ در غیر این صورت، قلمرو نام کاربری (در صورت وجود) به نتیجه الحاق می‌شود. هیچ‌گونه حذف علامت نقل‌قول صورت نمی‌گیرد. اگر این گزینه موجود باشد، رفتار پیش‌فرض این است که ابتدا این پرینسیپال جایگزین را امتحان کرده و در صورت شکست، به رفتار استاندارد بازگردد. کاربرد اصلی آن اجازه دادن به استفاده از پرینسیپال‌های جایگزین برای احراز هویت در برنامه‌هایی مانند sudo است. بیشتر نمونه‌ها شبیه این خواهند بود: alt_auth_map=%s/root که تلاش می‌کند ابتدا با نمونه root نام کاربری احراز هویت کند و سپس به نام کاربری عادی بازگردد (اما force_alt_auth و only_alt_auth را ببینید). این گزینه همچنین راهی کم‌هزینه برای تلاش جهت احراز هویت در یک قلمرو جایگزین در ابتدا و سپس بازگشت به قلمرو اصلی را فراهم می‌کند. تنظیمی مانند: alt_auth_map=%s@EXAMPLE.COM ابتدا تلاش برای احراز هویت را در قلمرو EXAMPLE.COM انجام می‌دهد و سپس به قلمرو پیش‌فرض محلی بازمی‌گردد. این روش راحت‌تر از اجرای چندباره ماژول با چندین قلمرو پیش‌فرض تنظیم‌شده با realm است، اما بسیار محدود است: فقط دو قلمرو را می‌توان امتحان کرد و قلمرو جایگزین همیشه ابتدا امتحان می‌شود. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد، هرچند معمولاً این کار منطقی نیست؛ معمولاً در گزینه‌های PAM پیکربندی برای برنامه‌های خاص استفاده می‌شود. این گزینه فقط برای گروه‌های auth و account کاربرد دارد. اگر این گزینه برای گروه auth تنظیم شده است، حتماً آن را برای گروه account نیز تنظیم کنید وگرنه مجازشماری حساب ممکن است با شکست مواجه شود. force_alt_auth [3.12] این گزینه به همراه alt_auth_map استفاده می‌شود و در صورتی که پرینسیپال نگاشت‌شده در KDC وجود داشته باشد، احراز هویت را با آن اجباری می‌کند. ماژول PAM کربروس تنها در صورتی که KDC وضعیت ناشناخته بودن پرینسیپال را برگرداند، به احراز هویت عادی بازمی‌گردد. این مورد می‌تواند برای اجبار احراز هویت با یک نمونه جایگزین استفاده شود. اگر alt_auth_map تنظیم نشده باشد، هیچ اثری ندارد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. ignore_k5login [2.0] هرگز به دنبال فایل .k5login در دایرکتوری خانگی کاربر نگرد. در عوض، فقط بررسی کن که پرینسیپال کربروس به نام حساب محلی نگاشت می‌شود. بررسی پیش‌فرض این است که اطمینان حاصل شود قلمرو با قلمرو محلی مطابقت دارد و بخش کاربری پرینسیپال با نام حساب محلی مطابقت دارد، اما این مورد را می‌توان با تنظیم نگاشت aname به localname در krb5.conf سفارشی کرد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه‌های auth و account کاربرد دارد. ignore_root [1.1] اگر نام کاربری "root" باشد هیچ کاری انجام نده. فراخوانی‌های احراز هویت و گذرواژه در سکوت شکست می‌خورند (که اجازه می‌دهد این وضعیت از طریق کنترل "optional" یا "sufficient" نادیده گرفته شود)، و فراخوانی‌های حساب و نشست (از جمله pam_setcred) مقدار PAM_IGNORE را برمی‌گردانند که به کتابخانه PAM می‌گوید طوری ادامه دهد که گویی در پیکربندی PAM نامی از آن‌ها برده نشده است. این گزینه پشتیبانی می‌شود و باقی خواهد ماند، اما معمولاً بهتر است به جای آن از minimum_uid استفاده کنید. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد. minimum_uid= [2.0] اگر نام حساب احراز هویت‌شده با یک حساب محلی مطابقت داشته باشد و آن حساب محلی دارای UID کمتر از باشد، هیچ کاری انجام نده. اگر هر دوی این شرایط برقرار باشد، فراخوانی‌های احراز هویت و گذرواژه در سکوت شکست خواهند خورد (که اجازه می‌دهد این وضعیت با کنترل "optional" یا "sufficient" نادیده گرفته شود)، و فراخوانی‌های حساب و نشست (از جمله pam_setcred) مقدار PAM_IGNORE را برمی‌گردانند که به کتابخانه PAM می‌گوید طوری ادامه دهد که گویی در پیکربندی PAM نامی از آن‌ها برده نشده است. استفاده از این گزینه اگر نیازی به استفاده از کربروس برای احراز هویت ورودهای مبتنی بر گذرواژه به حساب root ندارید (که به دلیل نیاز کربروس به اتصال شبکه توصیه نمی‌شود) به شدت توصیه می‌گردد. این گزینه نوعی دفاع در عمق در برابر پرینسیپال‌های کاربری که تصادفاً با یک حساب سیستمی مطابقت دارند و ممکن است به نادرستی به عنوان آن حساب سیستمی احراز هویت شوند، فراهم می‌آورد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد. only_alt_auth [3.12] این گزینه به همراه alt_auth_map استفاده می‌شود و استفاده از پرینسیپال نگاشت‌شده را برای احراز هویت اجباری می‌کند. این گزینه بازگشت به احراز هویت عادی را در تمام موارد غیرفعال کرده و بر search_k5login و force_alt_auth ارجحیت دارد. اگر alt_auth_map تنظیم نشده باشد، هیچ اثری ندارد و رفتار احراز هویت استاندارد استفاده می‌شود. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. search_k5login [2.0] معمولاً پیاده‌سازی کربروس از pam_authenticate تلاش می‌کند تا بلیت‌هایی را برای نام کاربری در حال احراز هویت در قلمرو محلی دریافت کند. اگر این گزینه تنظیم شده باشد و کاربر محلی یک فایل .k5login در دایرکتوری خانگی خود داشته باشد، ماژول در عوض آن فایل .k5login را باز کرده و می‌خواند، و تلاش می‌کند تا با استفاده از گذرواژه ارائه‌شده به عنوان هر یک از پرینسیپال‌های فهرست‌شده در آن به نوبت احراز هویت کند. اگر هر یک از این احراز هویت‌ها موفقیت‌آمیز باشد، کاربر با موفقیت احراز هویت خواهد شد؛ در غیر این صورت، احراز هویت با شکست مواجه می‌شود. این گزینه برای اجازه دادن به احراز هویت با گذرواژه (از طریق کنسول یا sshd بدون پشتیبانی GSS-API) در حساب‌های اشتراکی مفید است. اگر فایل .k5login وجود نداشته باشد، رفتار مانند حالت عادی است. استفاده از این گزینه مستلزم آن است که فایل .k5login کاربر در زمان احراز هویت قابل خواندن باشد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. رفتار کربروس (Kerberos Behavior) anon_fast [4.6] تلاش برای استفاده از تونل‌زنی امن احراز هویت انعطاف‌پذیر (FAST) با احراز هویت اولیه به عنوان کاربر ناشناس (WELLKNOWN/ANONYMOUS) و استفاده از اعتبارنامه‌های آن به عنوان زره FAST. این امر مستلزم فعال بودن PKINIT ناشناس برای قلمرو محلی، پیکربندی PKINIT روی سیستم محلی و پشتیبانی کتابخانه کربروس از FAST و PKINIT ناشناس است. مکانیزم FAST روشی برای محافظت از کربروس در برابر حملات حدس گذرواژه و ارائه سایر بهبودهای امنیتی است. برای کار کردن، FAST نیازمند دریافت بلیتی با یک کلید قوی است تا تبادلات با گذرواژه‌های کاربر را که بالقوه ضعیف‌تر هستند محافظت کند. این گزینه از احراز هویت ناشناس برای به‌دست آوردن آن کلید استفاده کرده و سپس از آن برای محافظت از احراز هویت بعدی بهره می‌برد. اگر PKINIT ناشناس در دسترس نباشد یا با شکست مواجه شود، FAST استفاده نخواهد شد و احراز هویت به صورت عادی ادامه می‌یابد. برای استفاده از یک کَش بلیت موجود برای اعتبارنامه‌های FAST، به جای این گزینه از fast_ccache استفاده کنید. اگر هر دوی fast_ccache و anon_fast تنظیم شده باشند، ابتدا کَش بلیت مشخص‌شده توسط fast_ccache امتحان می‌شود، و در صورتی که آن کَش قابل استفاده نباشد، ماژول PAM کربروس به تلاش برای PKINIT ناشناس بازمی‌گردد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه‌های auth و password کاربرد دارد. عملکرد مانند استفاده از گزینه fast_ccache است، اما کَش به صورت خودکار ایجاد و تخریب می‌شود. اگر هر دو گزینه fast_ccache و anon_fast استفاده شوند، fast_ccache اولویت دارد و هیچ احراز هویت ناشناسی انجام نمی‌شود. fast_ccache= [4.3] مانند anon_fast، اما از یک کَش بلیت کربروس موجود به جای PKINIT ناشناس استفاده می‌کند. این امکان استفاده از FAST را با قلمرویی که از PKINIT یا احراز هویت ناشناس پشتیبانی نمی‌کند فراهم می‌سازد. آرگومان باید کَش اعتبارنامه‌ای حاوی بلیتی باشد که با استفاده از یک کلید قوی به‌دست آمده است، مانند کلید تصادفی برای پرینسیپال میزبان سیستم محلی. اگر به کَش بلیتی اشاره کند که توسط فرآیند احراز هویت‌کننده قابل خواندن است و بلیت دارد، آنگاه FAST امتحان خواهد شد. ساده‌ترین راه برای استفاده از این گزینه استفاده از برنامه‌ای مانند k5start برای نگهداری کَش بلیت با استفاده از keytab میزبان است. این کَش بلیت معمولاً فقط باید توسط root قابل خواندن باشد، بنابراین این گزینه قادر به محافظت از احراز هویت‌هایی که به عنوان کاربران غیر root انجام می‌شوند (مانند محافظ‌های صفحه نمایش) نخواهد بود. اگر هیچ اعتبارنامه‌ای در کَش بلیت موجود نباشد، یا اگر کَش بلیت وجود نداشته باشد یا قابل خواندن نباشد، FAST استفاده نخواهد شد و احراز هویت به صورت عادی ادامه می‌یابد. با این حال، اگر اعتبارنامه‌های موجود در آن کَش بلیت منقضی شده باشند و KDC از FAST پشتیبانی کند، احراز هویت شکست خواهد خورد. برای استفاده از PKINIT ناشناس جهت محافظت از تبادل FAST، به جای آن از گزینه anon_fast استفاده کنید. پیکربندی anon_fast آسان‌تر است زیرا به کَش بلیت موجود نیازی ندارد، اما مستلزم در دسترس بودن و پیکربندی PKINIT و پشتیبانی قلمرو محلی از احراز هویت ناشناس است. اگر هر دوی fast_ccache و anon_fast تنظیم شده باشند، ابتدا کَش بلیت مشخص‌شده توسط fast_ccache امتحان می‌شود، و اگر آن کَش قابل استفاده نباشد، ماژول PAM کربروس به تلاش برای PKINIT ناشناس بازمی‌گردد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه‌های auth و password کاربرد دارد. forwardable [1.0] دریافت بلیت‌های قابل هدایت (forwardable). در صورت تنظیم (روی true یا false، اگرچه در krb5.conf فقط می‌توان آن را روی false تنظیم کرد)، این گزینه پیش‌فرض کتابخانه کربروس تنظیم‌شده در بخش [libdefaults] فایل krb5.conf را بازنویسی می‌کند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. keytab= [3.0] فایل keytab مورد استفاده هنگام اعتبارسنجی اعتبارنامه‌های کاربر را مشخص می‌کند. پیش‌فرض، keytab پیش‌فرض سیستم است (معمولاً /etc/krb5.keytab)، که معمولاً فقط توسط root قابل خواندن است. برنامه‌هایی که به عنوان root اجرا نمی‌شوند و از این ماژول PAM برای احراز هویت استفاده می‌کنند، ممکن است مایل باشند آن را به keytab دیگری که برنامه می‌تواند بخواند هدایت کنند. اولین پرینسیپال یافت‌شده در keytab به عنوان پرینسیپال برای اعتبارسنجی اعتبارنامه استفاده خواهد شد. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. realm= [2.2] تنظیم قلمرو پیش‌فرض کربروس و دریافت اعتبارنامه‌ها در آن قلمرو، به جای قلمرو پیش‌فرض عادی این سیستم. در صورت استفاده از این گزینه، برای نتایج یکدست باید برای تمام گروه‌های مورد استفاده تنظیم شود. این تنظیم بر تصمیمات مجازشماری تأثیر می‌گذارد زیرا قلمرو پیش‌فرض را تغییر می‌دهد. این تنظیم همچنین پرینسیپال سرویس مورد استفاده برای اعتبارسنجی اعتبارنامه‌های به‌دست‌آمده را تغییر می‌دهد تا در قلمرو مشخص‌شده باشد. اگر فقط می‌خواهید قلمرو فرضی برای پرینسیپال‌های کاربر را بدون تغییر قلمرو برای تصمیمات مجازشماری یا پرینسیپال سرویس مورد استفاده برای اعتبارسنجی اعتبارنامه‌ها تنظیم کنید، گزینه user_realm را ببینید. renew_lifetime= [2.0] دریافت بلیت‌های قابل تمدید با حداکثر طول عمر تمدید . مقدار باید یک رشته طول عمر کربروس مانند "2d4h10m" یا زمانی بر حسب دقیقه باشد. در صورت تنظیم، این گزینه مقدار پیش‌فرض کتابخانه کربروس تنظیم‌شده در بخش [libdefaults] فایل krb5.conf را بازنویسی می‌کند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. ticket_lifetime= [3.0] دریافت بلیت‌ها با حداکثر طول عمر . مقدار باید یک رشته طول عمر کربروس مانند "2d4h10m" یا زمانی بر حسب دقیقه باشد. در صورت تنظیم، این گزینه پیش‌فرض کتابخانه کربروس تنظیم‌شده در بخش [libdefaults] فایل krb5.conf را بازنویسی می‌کند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. user_realm [4.6] دریافت اعتبارنامه‌ها در قلمرو مشخص‌شده به جای قلمرو پیش‌فرض این سیستم. اگر این گزینه استفاده شود، برای نتایج یکدست باید برای تمام گروه‌های مورد استفاده تنظیم گردد (اگرچه گروه account در حال حاضر به قلمرو اهمیتی نمی‌دهد). این کار تصمیمات مجازشماری را تغییر نمی‌دهد. اگر قرار است اعتبارنامه‌های به‌دست‌آمده اجازه دسترسی به یک حساب پوسته را بدهند، کاربر به یک مدخل مناسب در فایل .k5login نیاز خواهد داشت یا سیستم باید نگاشت سفارشی aname_to_localname داشته باشد. رفتار PAM (PAM Behavior) clear_on_fail [3.9] هنگام تغییر گذرواژه‌ها، PAM ابتدا یک بررسی مقدماتی در کل پشته گذرواژه انجام می‌دهد و سپس هر ماژول را دوباره برای انجام تغییر گذرواژه فراخوانی می‌کند. پس از آن بررسی مقدماتی، ترتیب فراخوانی ماژول‌ها ثابت است. این بدان معناست که حتی اگر تغییر گذرواژه کربروس شکست بخورد (یا اگر یکی از تغییرهای گذرواژه دیگر در پشته شکست بخورد)، سایر ماژول‌های گذرواژه PAM در پشته همچنان فراخوانی خواهند شد حتی اگر ماژول شکست‌خورده required یا requisite علامت‌گذاری شده باشد. هنگام استفاده از چندین ماژول گذرواژه PAM برای همگام‌سازی گذرواژه‌ها بین چندین سیستم در زمان تغییر، این رفتار می‌تواند باعث تفاوت‌های ناخواسته بین محیط‌ها شود. تنظیم این گزینه راهکاری برای دور زدن این رفتار فراهم می‌کند. اگر این گزینه تنظیم شده باشد و تغییر گذرواژه کربروس تلاش شود و شکست بخورد (برای نمونه به دلیل خطاهای شبکه یا بررسی استحکام گذرواژه در KDC)، این ماژول گذرواژه ذخیره‌شده در پشته PAM را پاک می‌کند. این کار هر ماژول بعدی را که گزینه use_authtok برای آن تنظیم شده باشد مجبور به شکست می‌کند تا آن محیط‌ها از همگامی با گذرواژه در کربروس خارج نشوند. ماژول PAM کربروس اگر کاربر را به دلیل پیکربندی مانند minimum_uid رد کند، در گذرواژه ذخیره‌شده دستکاری نخواهد کرد. متأسفانه تنظیم این گزینه با سایر پیکربندی‌های مطلوب PAM تداخل ایجاد می‌کند، مانند تلاش برای تغییر گذرواژه در کربروس در ابتدا و بازگشت به پایگاه‌داده محلی گذرواژه یونیکس در صورت شکست. بنابراین به صورت پیش‌فرض فعال نیست. هنگام همگام‌سازی گذرواژه‌ها بین چندین محیط، آن را روشن کنید (و در صورت استفاده از pam_cracklib، ماژول pam_krb5 را بلافاصله پس از آن قرار دهید). این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه password کاربرد دارد. debug [1.0] ثبت اطلاعات ردیابی و اشکال‌زدایی پرجزئیات‌تر در syslog با اولویت LOG_DEBUG، شامل ورود به هر یک از رابط‌های خارجی PAM و خروج از آن‌ها (به جز pam_close_session). این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد. defer_pwchange [3.11] به طور پیش‌فرض، pam-krb5 مدیریت اعلان برای تغییر گذرواژه در صورت انقضای گذرواژه یک حساب در طول گروه auth را به کتابخانه کربروس واگذار می‌کند. اگر این کار شکست بخورد، pam_authenticate() یک خطا برمی‌گرداند. طبق استاندارد PAM، این روش درستی برای مدیریت گذرواژه‌های منقضی‌شده نیست. در عوض، pam_authenticate() باید بدون تلاش برای تغییر گذرواژه موفقیت را برگرداند، و سپس pam_acct_mgmt() باید PAM_NEW_AUTHTOK_REQD را برگرداند، که در آن نقطه برنامه فراخواننده مسئول رد کردن احراز هویت یا فراخوانی pam_chauthtok() است. با این حال، پیروی از استاندارد مستلزم آن است که همه برنامه‌ها pam_acct_mgmt() را فراخوانی کرده و وضعیت بازگشتی آن را بررسی کنند؛ در غیر این صورت، حساب‌های منقضی‌شده ممکن است بتوانند با موفقیت احراز هویت شوند. بسیاری از برنامه‌ها این کار را انجام نمی‌دهند. اگر این گزینه تنظیم شود، pam-krb5 به جای شکست در pam_authenticate() از مکانیزم کاملاً استاندارد PAM برای مدیریت حساب‌های منقضی‌شده استفاده می‌کند. با توجه به خطرات امنیتی برنامه‌های معیوب و فراگیر، در فعال کردن این گزینه بسیار محتاط باشید. معمولاً فقط باید برای حل یک مشکل خاص (مانند استفاده از کتابخانه‌های کربروس Solaris که از درخواست تغییر گذرواژه در طول احراز هویت پشتیبانی نمی‌کنند) و فقط برای برنامه‌های خاصی که مشخص است pam_acct_mgmt() را فراخوانی و وضعیت بازگشتی آن را به درستی بررسی می‌کنند، روشن شود. این گزینه تنها زمانی پشتیبانی می‌شود که pam-krb5 با MIT Kerberos کامپایل شده باشد. اگر در برابر Heimdal کامپایل شده باشد، این گزینه هیچ کاری انجام نمی‌دهد و مدیریت عادی تغییر گذرواژه منقضی‌شده همچنان رخ می‌دهد. (Heimdal فاقد API لازم برای پیاده‌سازی این گزینه است، حداقل تا نسخه 1.6). این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. fail_pwchange [4.2] به طور پیش‌فرض، pam-krb5 مدیریت اعلان تغییر گذرواژه را در صورت انقضای گذرواژه یک حساب در گروه auth به کتابخانه کربروس واگذار می‌کند. اگر این گزینه تنظیم شود، با گذرواژه‌های منقضی‌شده به عنوان یک شکست احراز هویت مشابه با گذرواژه نادرست رفتار می‌شود. همچنین defer_pwchange و force_pwchange را ببینید. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. force_pwchange [3.11] اگر این گزینه تنظیم شده باشد و احراز هویت با خطای کربروس مبنی بر منقضی شدن گذرواژه کاربر شکست بخورد، بلافاصله در طول مرحله authenticate برای تغییر گذرواژه آن‌ها تلاش می‌شود. در شرایط عادی، این کار غیرضروری است. بیشتر کتابخانه‌های کربروس این کار را برای شما انجام می‌دهند، و تنظیم این گزینه باعث می‌شود در صورت شکست اولین تلاش (انجام‌شده توسط کتابخانه کربروس)، دو بار از کاربر برای تغییر گذرواژه‌اش درخواست شود. با این حال، برخی از کتابخانه‌های کربروس سیستمی (مانند Solaris) درخواست تغییر گذرواژه در کتابخانه کربروس را غیرفعال کرده‌اند؛ در این سیستم‌ها، می‌توانید این گزینه را برای شبیه‌سازی رفتار عادی کتابخانه تنظیم کنید. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. no_update_user [4.7] به طور معمول، اگر pam-krb5 بتواند پرینسیپال را با استفاده از فراخوانی‌های krb5_aname_to_localname() یا مشابه‌های آن به یک نام محلی تبدیل کند، متغیر PAM_USER را برای این نشست PAM به نام محلی استاندارد تغییر می‌دهد. تنظیم این گزینه این رفتار را غیرفعال کرده و PAM_USER را روی هویت احراز هویت اولیه رها می‌کند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه auth کاربرد دارد. silent [1.0] پیام‌ها و خطاهای کربروس، مانند هشدارهای انقضای گذرواژه را از طریق اعلان‌گر به کاربر نشان نده. این معادل رفتاری است که برنامه PAM_SILENT را ارسال می‌کند، اما می‌تواند در پیکربندی PAM تنظیم شود. این گزینه فقط برای گروه‌های auth و password کاربرد دارد. trace= [4.6] در صورت پشتیبانی توسط کتابخانه کربروس، ثبت ردیابی کتابخانه کربروس را در فایل لاگ مشخص‌شده فعال می‌کند. این قابلیت برای اشکال‌زدایی موقت در نظر گرفته شده است. داده‌ها بدون بررسی‌های امنیتی بیشتر به فایل مشخص‌شده الحاق می‌شوند، بنابراین فایلی را در یک دایرکتوری با قابلیت نوشتن همگانی مشخص نکنید. PKINIT pkinit_anchors= [3.0] هنگام انجام احراز هویت PKINIT، از به عنوان لنگرهای اعتماد کارخواه (trust anchors) استفاده کن. این مقدار معمولاً ارجاعی به یک فایل حاوی مراجع صدور گواهی (CA) معتمد است. این گزینه تنها در صورتی استفاده می‌شود که try_pkinit یا use_pkinit تنظیم شده باشند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه‌های auth و password کاربرد دارد. pkinit_prompt [3.0] قبل از تلاش برای احراز هویت PKINIT، از کاربر بخواهید کارت هوشمند را وارد کند. ممکن است بخواهید این گزینه را برای برنامه‌هایی مانند gnome-screensaver تنظیم کنید که به محض حرکت ماوس PAM را فراخوانی می‌کنند و به کاربر فرصتی برای وارد کردن ابتدا کارت هوشمند نمی‌دهند. هرگونه اطلاعات واردشده در اولین اعلان نادیده گرفته می‌شود. اگر try_pkinit تنظیم شده باشد، کاربری که مایل است به جای آن از گذرواژه استفاده کند می‌تواند به سادگی کلید Enter را فشار دهد و سپس گذرواژه خود را به صورت عادی وارد نماید. این گزینه تنها در صورتی استفاده می‌شود که try_pkinit یا use_pkinit تنظیم شده باشند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه‌های auth و password کاربرد دارد. pkinit_user= [3.0] هنگام انجام احراز هویت PKINIT، از به عنوان شناسه کاربر (ID) استفاده کن. مقدار این رشته بسیار به نوع پیاده‌سازی PKINIT مورد استفاده شما بستگی دارد، اما عموماً چیزی شبیه به این خواهد بود: PKCS11:/usr/lib/pkcs11/lib/soft-pkcs11.so تا ماژول مورد استفاده با کارت هوشمند را مشخص کند. همچنین ممکن است به یک گواهی کاربر یا انواع دیگر شناسه‌های کاربری اشاره داشته باشد. برای جزئیات بیشتر به مستندات کتابخانه کربروس مراجعه کنید. این گزینه تنها در صورتی استفاده می‌شود که try_pkinit یا use_pkinit تنظیم شده باشند. این گزینه را می‌توان در "[appdefaults]" در krb5.conf تنظیم کرد و فقط برای گروه‌های auth و password کاربرد دارد. preauth_opt=