PAM_YUBICO(8) راهنمای ماژول PAM یوبیکو PAM_YUBICO(8) نام (NAME) pam_yubico - ماژول احراز هویت با استفاده از کلید امنیتی YubiKey خلاصه دستور (SYNOPSIS) pam_yubico [...] توضیحات (DESCRIPTION) این ماژول برای احراز هویت با کلیدهای امنیتی YubiKey به کار می‌رود؛ خواه از طریق اعتبارسنجی برخط گذرواژه یک‌بارمصرف (OTP)، یا اعتبارسنجی آفلاین با سازوکار چالش-پاسخ مبتنی بر HMAC-SHA1. گزینه‌ها (OPTIONS) debug حالت اشکال‌زدایی را فعال می‌کند. debug_file=file نام فایلی که پیام‌های اشکال‌زدایی در آن نوشته می‌شوند؛ این فایل باید از قبل وجود داشته و یک فایل معمولی باشد. مقدار پیش‌فرض خروجی استاندارد (stdout) است. mode=[client|challenge-response] حالت عملیاتی ماژول؛ مقدار client برای اعتبارسنجی OTP و مقدار challenge-response برای اعتبارسنجی چالش-پاسخ. مقدار پیش‌فرض client است. authfile=file مسیر فایلی که نگاشت شناسه توکن‌های YubiKey به نام‌های کاربری را نگهداری می‌کند. قالب فایل به‌صورت username:first_public_id:second_public_id:... است. مکان پیش‌فرض این فایل $HOME/.yubico/authorized_yubikeys می‌باشد. id=id شناسه کلاینت API شما برای اتصال به سرور اعتبارسنجی. key=key کلید کلاینت شما در قالب base64. این کلید تحت عنوان کلید API نیز شناخته می‌شود و یکپارچگی ارتباط میان کلاینت (شما) و سرور اعتبارسنجی را تضمین می‌کند. اگر می‌خواهید برای استفاده با سرویس پیش‌فرض YubiCloud یک کلید دریافت کنید، به نشانی زیر مراجعه کنید: https://upgrade.yubico.com/getapikey alwaysok تمامی تلاش‌های احراز هویت را موفقیت‌آمیز در نظر می‌گیرد (خطرناک، تنها برای حالت ارائه و دمو). try_first_pass پیش از درخواست گذرواژه از کاربر، ماژول ابتدا گذرواژه ارائه‌شده به ماژول قبلی در پشته PAM را بررسی می‌کند تا در صورت کفایت، از همان استفاده کند. use_first_pass ماژول را مجبور به استفاده از گذرواژه ماژول پشته‌شده قبلی می‌کند و هرگز از کاربر گذرواژه نخواهد خواست؛ اگر هیچ گذرواژه‌ای در دسترس نباشد یا نامعتبر باشد، دسترسی کاربر رد خواهد شد. always_prompt در صورت فعال بودن، تلاشی برای بررسی اینکه آیا برای کاربر کلید YubiKey پیکربندی شده است یا خیر انجام نمی‌دهد و در هر صورت درخواست کلید می‌کند. این گزینه زمانی کاربرد دارد که ldap_bind_as_user فعال باشد اما از این ماژول برای خواندن گذرواژه کاربر (در سناریوی احراز هویت ترکیبی YubiKey+OTP) استفاده شود. nullok اگر هیچ توکنی برای کاربر در فایل‌های نگاشت احراز هویت یا در LDAP تعریف نشده باشد، با خطا متوقف نشود. از این گزینه می‌توان برای اختیاری کردن احراز هویت با YubiKey استفاده کرد، مگر آنکه برای کاربر توکن‌های مرتبط ثبت شده باشد. ldap_starttls در صورت تنظیم، پیش از تلاش برای متصل شدن (bind) به ارتباط LDAP، دستور STARTTLS را صادر می‌کند. این یک پیکربندی معمول برای سرورهایی است که تنها روی درگاه ۳۸۹ شنود می‌کنند اما نیازمند TLS هستند. ldap_bind_as_user استفاده از مشخصات کاربری که در حال ورود به سیستم است برای اتصال به LDAP. این گزینه از گذرواژه واردشده توسط کاربر از طریق PAM استفاده می‌کند. در صورت فعال بودن این گزینه، مقادیر ldapdn و uid_attr نیز باید تنظیم شوند. فعال بودن این گزینه باعث نادیده گرفته شدن ldap_bind_user و ldap_bind_password می‌شود. urllist=list فهرستی از الگوهای URL مورد استفاده. این مقدار با فراخوانی ykclient_set_url_bases تنظیم می‌شود. این فهرست باید در قالب زیر باشد: https://api1.example.com/wsapi/2.0/verify;https://api2.example.com/wsapi/2.0/verify url=url این گزینه نباید استفاده شود؛ لطفاً به‌جای آن از گزینه urllist استفاده کنید. الگوی URL مورد استفاده را تعیین می‌کند؛ این مقدار با فراخوانی ykclient_set_url_template مقداردهی می‌شود. قالب URL باید به این صورت تنظیم شود: https://api.example.com/wsapi/2.0/verify?id=%d&otp=%s capath=path مسیری که گواهی‌های X509 در آن ذخیره شده‌اند. در صورتی که به ترتیب از https یا ldaps در url و ldap_uri استفاده شده باشد، تعیین این مسیر الزامی است. cainfo=file گزینه‌ای برای امکان استفاده از یک فایل بسته گواهی‌های CA (CA bundle) به‌جای مسیر پوشه. proxy=proxy پروکسی مورد استفاده برای اتصال به سرور اعتبارسنجی. طرح‌های معتبر شامل http://, https://, socks4://, socks4a://, socks5:// یا socks5h:// هستند. طرح socks5h از پروکسی درخواست می‌کند تا تفکیک نام (DNS) را نیز انجام دهد. در صورت عدم تعیین طرح یا درگاه، از درگاه ۱۰۸۰ پروکسی HTTP استفاده خواهد شد. مثال: socks5h://user:pass@10.10.0.1:1080 verbose_otp نمایش گذرواژه یک‌بارمصرف هنگام تایپ شدن؛ یعنی فعال‌سازی بازتاب (echo) نویسه‌های ورودی در ترمینال. توصیه می‌شود در صورت استفاده از احراز هویت دو مرحله‌ای از این گزینه استفاده نکنید زیرا گذرواژه شما روی نمایشگر آشکار می‌شود. این گزینه مستلزم آن است که سرویس به‌کارگیرنده ماژول PAM از نمایش فیلدهای سفارشی پشتیبانی کند. این گزینه را نمی‌توان همراه با OpenSSH استفاده کرد. ldap_uri=uri نشانی URI سرور LDAP (مانند ldap://localhost). ldap_server=server میزبان سرور LDAP (از درگاه پیش‌فرض LDAP استفاده می‌شود). منسوخ شده است. به‌جای آن از ldap_uri استفاده کنید. ldapdn=dn نام متمایز (DN) مکانی که کاربران در آن نگهداری می‌شوند (مانند: ou=users,dc=domain,dc=com). در صورت استفاده از ldap_filter این مقدار به‌عنوان ریشه پایه برای جستجوی زیردرخت به کار می‌رود. ldap_clientcertfile=clientcertfile مسیر فایل گواهی کلاینت برای استفاده در زمان برقراری ارتباط با سرور LDAP. توجه داشته باشید که این گزینه مستلزم تعیین ldap_clientkeyfile نیز می‌باشد. ldap_clientkeyfile=clientkeyfile مسیر کلید مورد استفاده به همراه گواهی کلاینت در زمان ارتباط با سرور LDAP. توجه داشته باشید که این گزینه مستلزم تعیین ldap_clientcertfile نیز می‌باشد. user_attr=attr مشخصه LDAP مورد استفاده برای ذخیره‌سازی نام‌های کاربری (مانند: cn). yubi_attr=attr مشخصه LDAP مورد استفاده برای ذخیره‌سازی شناسه YubiKey. yubi_attr_prefix=prefix پیشوند مقدار مشخصه LDAP؛ در حالتی که از یک مشخصه عمومی برای نگهداری چندین نوع شناسه استفاده می‌شود. token_id_length=length طول شناسه پیشوند در ابتدای OTP (در صورت استفاده از YubiCloud این مقدار ۱۲ است). ldap_bind_user=user کاربری که تلاش برای اتصال (bind) به LDAP به عنوان او انجام می‌شود. ldap_bind_password=password گذرواژه مورد استفاده برای اتصال به LDAP. ldap_filter=filter فیلتر LDAP برای تلاش جهت یافتن شیء مناسب در LDAP. در این رشته، عبارت %u با نام کاربری جایگزین خواهد شد. ldap_cacertfile=cacertfile فایل گواهی مرجع صدور گواهی (CA) برای اتصال LDAP. chalresp_path=path مسیر یک دایرکتوری سراسری در سیستم که فایل‌های چالش-پاسخ کاربران در آن قرار می‌گیرد. مکان پیش‌فرض برابر است با $HOME/.yubico/. mysql_server=mysqlserver نام میزبان/نشانی سرور پایگاه‌داده mysql. مثال: 10.0.0.1 mysql_port=mysqlport درگاه شبکه سرور mysql. mysql_user=mysqluser کاربر مجاز برای دسترسی به پایگاه‌داده. اکیداً توصیه می‌شود از کاربری مشخص با دسترسی فقط‌خواندنی استفاده شود. mysql_password=mysqlpassword گذرواژه mysql اختصاص‌یافته به کاربر. mysql_database=mysqldatabase نام پایگاه‌داده. مثال: otp مثال‌ها (EXAMPLES) auth sufficient pam_yubico.so id=16 debug auth required pam_yubico.so mode=challenge-response auth required pam_yubico.so id=16 ldap_uri=ldaps://ldap.example.com ldap_filter=(uid=%u) yubi_attr=yubiKeyId فایل‌ها (FILES) $HOME/.yubico/authorized_yubikeys اگر گزینه authfile تنظیم نشده باشد، این فایل برای نگاشت میان شناسه عمومی YubiKey و نام‌های کاربری در حالت client استفاده می‌شود. $HOME/.yubico/challenge, $HOME/.yubico/challenge-serial_number اگر گزینه chalresp_path تنظیم نشده باشد، از این فایل‌ها برای نگهداری چالش بعدی و پاسخ مورد انتظار برای کاربر در حالت challenge-response استفاده می‌شود. در صورتی که chalresp_path تنظیم شده باشد، نام فایل به‌جای challenge برابر با username خواهد بود. اشکالات (BUGS) اشکالات yubico-pam را در سامانه ردیابی اشکالات گزارش دهید: https://github.com/Yubico/yubico-pam/issues همچنین ببینید (SEE ALSO) ykpamcfg(1), pam(7) صفحه خانگی yubico-pam: https://developers.yubico.com/yubico-pam کلیدهای امنیتی YubiKey را می‌توان از Yubico تهیه کرد: http://www.yubico.com yubico-pam Version 2.27 PAM_YUBICO(8)