PAM_GOOGLE_AUTHENTICATOR(8) PAM_GOOGLE_AUTHENTICATOR(8)

pam_google_authenticator - ماژول PAM برای احراز هویت دومرحله‌ای گوگل

pam_google_authenticator.so [secret=file] [authtok_prompt=prompt] [user=username] [no_strict_owner] [allowed_perm=0nnn] [debug] [try_first_pass|use_first_pass|forward_pass] [noskewadj] [no_increment_hotp] [nullok] [echo_verification_code]

ماژول pam_google_authenticator برای محافظت از احراز هویت کاربر با عامل دوم، چه مبتنی بر زمان (TOTP) و چه مبتنی بر شمارنده (HOTP) طراحی شده است. پیش از ورود، از کاربر هم گذرواژه و هم یک کد یک‌بارمصرف درخواست خواهد شد. این کدهای یک‌بارمصرف را می‌توان با برنامه Google Authenticator که بر روی دستگاه اندروید یا هوشمند کاربر نصب شده است، تولید کرد. برای تولید و اعتبارسنجی این کدهای یک‌بارمصرف، یک کلید مخفی (که به صورت تصادفی تولید می‌شود) باید میان دستگاه تولیدکننده کدها و سیستمی که این ماژول PAM روی آن فعال است، به اشتراک گذاشته شود.

بسته به نحوه پیکربندی (به بخش گزینه‌ها مراجعه فرمایید)، این ماژول مستلزم آن است که یک فایل مخفی به طور دستی برای هر حساب کاربری در سیستم تنظیم گردد. این فایل مخفی حاوی کلید محرمانه و گزینه‌های اختصاصی کاربر است (به google-authenticator(1) مراجعه کنید). مگر در حالتی که گزینه nullok استفاده شده باشد، در صورت عدم وجود این فایل مخفی تلاش‌ها برای ورود رد خواهند شد. همچنین مدیر سیستم می‌تواند این فایل‌های مخفی را از طرف کاربران بسازد و سپس کلیدهای محرمانه را در اختیار آنان قرار دهد.

تعیین مکانی غیراستاندارد برای فایل مخفی.

به‌طور پیش‌فرض، ماژول PAM فایل مخفی را در پرونده .google_authenticator درون پوشه خانگی کاربر واردشونده جستجو می‌کند. این گزینه مسیر مذکور را بازنویسی می‌کند.

مسیر ارائه‌شده می‌تواند حاوی متغیرهای کوتاه زیر باشد:

•
${USER} که به عنوان نام کاربری تفسیر می‌شود.
•
${HOME} و ~ که به عنوان پوشه خانگی کاربر تفسیر خواهند شد.
بازنویسی متن اعلان پیش‌فرض برای دریافت توکن.

توجه داشته باشید که اگر فاصله‌های خالی در متن اعلان ارائه‌شده وجود دارد، کل آرگومان باید درون قلاب (کروشه) قرار گیرد.

تغییر به یک کاربر از پیش تعیین‌شده قبل از انجام هرگونه عملیات روی فایل.
غیرفعال کردن بررسی مالکیت فایل مخفی.

به‌طور پیش‌فرض، مالک فایل مخفی باید همان کاربری باشد که وارد سیستم می‌شود. این گزینه بررسی مذکور را غیرفعال می‌سازد.

بازنویسی مجوزهای مجاز بررسی‌شده برای فایل مخفی.

به‌طور پیش‌فرض، فایل مخفی تنها باید توسط مالکش قابل خواندن باشد (یعنی حالت 0600). این گزینه اجازه می‌دهد حالت دسترسی دیگری برای این فایل تعیین گردد.

فعال کردن پیام‌های گزارش‌گیری پرجزئیات‌تر در syslog.
گزینه‌های پشته‌بندی (Stacking) برای این ماژول PAM.

از آنجا که برخی کلاینت‌های PAM نمی‌توانند چیزی جز گذرواژه را از کاربر درخواست کنند، گزینه‌های پشته‌بندی زیر قابل استفاده هستند:

•
try_first_pass: قبل از درخواست کد یک‌بارمصرف از کاربر، این ماژول ابتدا گذرواژه ماژول پشته‌شده قبلی را آزمایش می‌کند تا در صورتی که این ماژول را نیز ارضا کند از آن بهره ببرد.
•
use_first_pass: اجبار این ماژول به استفاده از گذرواژه ماژول پشته‌شده پیشین. با این گزینه، این ماژول هرگز کد یک‌بارمصرف را از کاربر درخواست نخواهد کرد. بنابراین اگر کد معتبری در دسترس نباشد، دسترسی کاربر رد خواهد شد.
•
forward_pass: درخواست هم‌زمان گذرواژه سیستم و کد اعتبارسنجی در یک اعلان واحد از کاربر. گذرواژه سیستم سپس به ماژول بعدی PAM هدایت می‌شود که باید با یکی از گزینه‌های use_first_pass یا try_first_pass پیکربندی شده باشد.
عدم تنظیم خودکار انحراف زمانی.

به‌طور پیش‌فرض، ماژول PAM تلاش می‌کند انحراف زمانی میان سرور و دستگاه تولیدکننده کدهای یک‌بارمصرف را تصحیح کند. این گزینه این رفتار را غیرفعال می‌کند.

توجه داشته باشید که این گزینه فقط در حالت مبتنی بر زمان (TOTP) کاربرد دارد.

عدم افزایش شمارنده برای تلاش‌های ناموفق.

در برخی شرایط، تلاش‌های ناموفق گذرواژه همچنان اعلان OTP دریافت می‌کنند. این گزینه افزایش شمارنده را در چنین موقعیت‌هایی غیرفعال می‌سازد.

توجه داشته باشید که این گزینه فقط در حالت مبتنی بر شمارنده (HOTP) کاربرد دارد.

اجازه ورود بدون OTP به کاربرانی که هنوز OTP را برپا نکرده‌اند.

در زمان استقرار و راه‌اندازی اولیه سیستم، ممکن است همه کاربران هنوز کلید مخفی نساخته باشند. این گزینه به آن‌ها اجازه می‌دهد حتی اگر فایل مخفی وجود نداشته باشد، وارد شوند.

نمایش بازتابی (Echo) کد تأیید هنگام وارد کردن آن توسط کاربر.

تنها نوع ماژول auth ارائه می‌شود.

کد یک‌بارمصرف ارائه‌شده صحیح است یا یک کد اضطراری معتبر می‌باشد.
این ماژول نادیده گرفته می‌شود.
کد یک‌بارمصرف ارائه‌شده صحیح نبوده و یک کد اضطراری معتبر نیست، یا خطایی رخ داده است.

خطوط زیر را می‌توان برای فعال‌سازی این ماژول PAM در فایل‌های پیکربندی استفاده کرد:

•
auth required pam_google_authenticator.so no_increment_hotp # اطمینان از اینکه شمارنده (برای حالت HOTP) در تلاش‌های ناموفق افزایش نمی‌یابد.
•
auth required pam_google_authenticator.so nullok # اجازه ورود به کاربران در صورتی که فایل مخفی آن‌ها وجود نداشته باشد.
•
auth required pam_google_authenticator.so secret=/var/unencrypted-home/${USER}/.google_authenticator # ذخیره فایل‌های مخفی در یک مکان اختصاصی
•
auth required pam_google_authenticator.so [authtok_prompt=Your\ secret\ token:\ ] # استفاده از یک اعلان خاص برای توکن
•
auth required pam_google_authenticator.so noskewadj # عدم تنظیم خودکار انحراف زمانی

برای دستیابی به بالاترین سطح امنیت، مطمئن شوید که گذرواژه و کد یک‌بارمصرف هر دو درخواست می‌شوند، حتی اگر گذرواژه یا کد اشتباه باشند. این بدان معنی است که دست‌کم اولین ماژول از بین pam_unix.so (یا هر ماژول دیگری که برای بررسی گذرواژه‌ها به کار می‌رود) و pam_google_authenticator.so باید به عنوان required تنظیم شوند، نه requisite.

google-authenticator(1).

کد منبع و تمام مستندات Google Authenticator را می‌توان از پیوند زیر دریافت کرد: https://github.com/google/google-authenticator-libpam

Google Authenticator PAM module manual