فعال کردن احراز هویت دو مرحله ای SSH در لینوکس

سرورهای اختصاصی و سرورهای مجازی لینوکس مکان های میزبانی محبوب هستند. این سرورها از طریق اتصال SSH مدیریت و پشتیبانی می شوند. بنابراین امنیت SSH و حفاظت از آن در برابر حملات سایبری و هکرها بسیار مهم است. احراز هویت چند مرحله ای یا دو مرحله ای (2FA) که به عنوان احراز هویت دو مرحله ای نیز شناخته می شود، یک فرآیند امنیتی است که در آن کاربر باید از دو روش احراز هویت مختلف برای دسترسی به حساب کاربری یا سیستم استفاده کند. عامل اول چیزی است که شما می دانید، یعنی نام کاربری و رمز عبور، و عامل دوم احراز هویت چیزی است که می توانید به عنوان یک آیتم منحصر به فرد (مانند تلفن هوشمند و کدهای امنیتی و بیومتریک) برای تأیید درخواست های احراز هویت داشته باشید.

در واقع، با فعال کردن 2FA، لایه دیگری از امنیت احراز هویت را در بالای رمز عبور خود اضافه می‌کنید که دسترسی مهاجمان به داده‌ها از دستگاه یا حساب آنلاین شخص را دشوارتر می‌کند. احراز هویت دو مرحله ای یا احراز هویت چند مرحله ای (محافظت 2FA) به شما و کاربرانتان در برابر حملات فیشینگ و هکرها محافظت می کند و ورود شما را ایمن می کند.

حال این سوال پیش می آید که چگونه می توانیم احراز هویت دو مرحله ای را برای SSH در لینوکس فعال کنیم؟ در این مقاله آموزشی لینوکس، نحوه راه اندازی و پیکربندی SSH برای احراز هویت دو مرحله ای تحت توزیع های لینوکس مبتنی بر RedHat و Debian مانند Fedora، CentOS Stream، Rocky Linux، AlmaLinux، Ubuntu، Debian و Mint را به شما آموزش می دهیم. بنابراین تا انتها با ما همراه باشید تا یاد بگیرید چگونه احراز هویت دو مرحله ای را برای SSH در لینوکس فعال کنید.

مراحل ایجاد احراز هویت دو مرحله ای برای SSH در لینوکس

به طور پیش فرض، SSH از ارتباط داده ایمن بین دستگاه های راه دور استفاده می کند. اما اگر می‌خواهید یک لایه امنیتی دیگر به اتصال SSH خود اضافه کنید، می‌توانید از ماژول Google Authenticator (تأیید هویت دو مرحله‌ای) استفاده کنید، که به شما امکان می‌دهد هنگام اتصال به سرور SSH یک رمز عبور تأیید تصادفی یک‌باره (TOTP) تنظیم کنید. ) اجازه ورود می دهد. ناگفته نماند، هنگام اتصال باید با استفاده از تلفن هوشمند یا رایانه شخصی خود کد تأیید را وارد کنید.

در واقع، Google Authenticator یک ماژول منبع باز است و شامل پیاده سازی یک رمز عبور (TOTP) توسعه یافته توسط گوگل است. این برنامه از چندین پلت فرم تلفن همراه و PAM (ماژول تأیید هویت متصل) پشتیبانی می کند. این OTP ها با استفاده از استانداردهای باز توسعه یافته توسط OATH Initiative for Open Authentication تولید می شوند.

در مرحله بعد، مراحل راه اندازی Google Authenticator در لینوکس و ایجاد احراز هویت دو مرحله ای را مرور می کنیم.

مرحله 1: Google Authenticator را روی لینوکس نصب کنید

برای ایجاد احراز هویت دو مرحله ای، ابتدا باید ماژول Google PAM را نصب کنید. در سیستم های مبتنی بر RedHat، باید بسته pam-devel را با استفاده از دستور yum نصب کنید:

# yum install google-authenticator -y

همچنین، در سیستم های مبتنی بر دبیان، بسته libpam0g-dev را با استفاده از دستور apt نصب کنید:

$ sudo apt install libpam-google-authenticator -y

مرحله 2: توکن احراز هویت گوگل را ایجاد کنید

هنگامی که دستور google-authenticator را اجرا می کنید، از شما خواسته می شود:

# google-authenticator

به سادگی “Y” (بله) را به عنوان پاسخ در بیشتر موقعیت ها تایپ کنید. اگر مشکلی پیش آمد، می‌توانید دستور google-authenticator را دوباره تایپ کنید و تنظیمات را بازنشانی کنید:

Do you want authentication tokens to be time-based (y/n) y

پس از این سوال، کلید مخفی و کدهای اضطراری خود را دریافت خواهید کرد. این جزئیات را در جایی بنویسید. زیرا بعداً برای راه‌اندازی برنامه Google Authenticator به کلید مخفی نیاز خواهید داشت:

# google-authenticator

Do you want authentication tokens to be time-based (y/n) y
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
  https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/[email protected]%3Fsecret%3DCYZF2YF7HFGX55ZEPQYLHOO5JM%26issuer%3Dtecmint
Failed to use libqrencode to show QR code visually for scanning.
Consider typing the OTP secret into your app manually.
Your new secret key is: CYZF2YF7HFGX55ZEPQYLHOM
Enter code from app (-1 to skip): -1 Code confirmation skipped Your emergency scratch codes are: 83714291 53083200 80975623 57217008 77496339

در مرحله بعد، جادوگر راه اندازی را دنبال کنید و در بیشتر موارد، پاسخ را به صورت “Y” (بله) مانند شکل زیر تایپ کنید:

Do you want me to update your "/root/.google_authenticator" file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) y If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y

بله را تایپ کنید تا فرآیند احراز هویت دو مرحله ای SSH تکمیل شود

مرحله 3: نحوه پیکربندی SSH برای استفاده از Google Authenticator در لینوکس

فایل پیکربندی PAM “/etc/pam.d/sshd” را باز کنید و خط زیر را به پایین فایل اضافه کنید:

auth required pam_google_authenticator.so nullok
auth required pam_permit.so

برای فعال کردن احراز هویت دو مرحله‌ای SSH در لینوکس، کد زیر را به فایل پیکربندی اضافه کنید.

سپس، فایل پیکربندی SSH “/etc/ssh/sshd_config” را باز کنید و به پایین بروید تا خط زیر را پیدا کنید:

ChallengeResponseAuthentication no

آن را به “بله” تغییر دهید:

ChallengeResponseAuthentication yes

فایل پیکربندی را به Yes تغییر دهید تا احراز هویت دو مرحله ای SSH در لینوکس فعال شود

در نهایت، سرویس SSH را مجددا راه اندازی کنید تا تغییرات جدید اعمال شوند:

# systemctl restart sshd
Or
$ sudo systemctl restart sshd

مرحله 4: برنامه Google Authenticator را پیکربندی کنید

برنامه Google Authenticator را در تلفن هوشمند خود راه اندازی کنید. روی علامت + کلیک کرده و Enter a setup key را انتخاب کنید. اگر این برنامه را ندارید، می‌توانید برنامه Google Authenticator را در دستگاه‌های Android یا iPhone یا Blackberry خود دانلود و نصب کنید. پس از آن، نام کاربری (نام حساب) و کلید مخفی ایجاد شده قبلی را وارد کنید.

برای فعال کردن احراز هویت دو مرحله ای SSH در لینوکس، Google Authenticator را دانلود و نصب کنید

پس از این، یک رمز عبور یک بار مصرف (کد تایید) ایجاد می شود که هر 30 ثانیه به طور مداوم در تلفن همراه شما تغییر می کند.

رمز عبور یکبار مصرف ایجاد شده در Google Authenticator را خواهید دید

اکنون هر زمان که از طریق SSH وارد سیستم شوید، کد و رمز عبور Google Authenticator از شما خواسته می شود. نیازی به گفتن نیست که شما فقط 30 ثانیه فرصت دارید تا این کد تایید را وارد کنید. توجه داشته باشید که اگر این زمان را از دست بدهید، یک کد تایید جدید دوباره ایجاد می شود که باید آن را وارد کنید:

login as: tecmint
Access denied
Using keyboard-interactive authentication.
Verification code:
Using keyboard-interactive authentication.
Password:
Last login: Tue Apr 23 13:58:29 2022 from 172.16.25.125
[[email protected] ~]#

اگر گوشی هوشمند ندارید، می توانید از افزونه فایرفاکس به نام Authenticator نیز برای احراز هویت دو مرحله ای استفاده کنید.

نکته: احراز هویت دو مرحله ای با ورود به سیستم SSH مبتنی بر رمز عبور کار می کند. این بدان معناست که اگر هر بار از کلید خصوصی/عمومی SSH استفاده می‌کنید، دیگر نیازی به احراز هویت دو مرحله‌ای نیست و مستقیماً وارد می‌شود.

فعال کردن احراز هویت دو مرحله ای SSH در لینوکس

نتیجه

سرورهای اختصاصی و مجازی لینوکس به دلیل قابلیت هایی که دارند بسیار محبوب هستند. امنیت و امنیت داده ها در اثر حملات هکرها نگرانی بسیاری از کاربران است. همانطور که می دانید این سرورها از طریق اتصال SSH مدیریت و پشتیبانی می شوند. به همین دلیل است که ایمن سازی ssh بسیار مهم است.

احراز هویت دو مرحله ای یکی از بهترین راه ها برای ایمن سازی و محافظت از SSH در برابر حملات مخرب و هکرها است. در واقع احراز هویت دو مرحله ای کمک زیادی به تقویت فرآیند احراز هویت یک سرویس خاص می کند. در این مقاله آموزش سیستم عامل به صورت گام به گام نحوه ایجاد احراز هویت دو مرحله ای برای SSH در لینوکس با استفاده از Google Authenticator را آموزش دادیم. با استفاده از این آموزش می توانید به راحتی این فرآیند را برای سیستم خود ایجاد کنید.

سوالات متداول

1. چگونه می توانیم احراز هویت دو مرحله ای را در لینوکس فعال کنیم؟

SSH را روی سیستم خود راه اندازی کنید و نام کاربری خود را وارد کنید. پس از وارد کردن نام کاربری، SSH از شما احراز هویت دو یا چند عاملی (2FA / MFA) درخواست می‌کند. اگر روش OTP را روی SMS 2FA قرار داده اید، کد OTP را که از طریق تلفن همراه شما دریافت می شود وارد کنید.

2. چگونه Google Authenticator را روی لینوکس نصب کنیم؟

  • مخزن EPEL را اضافه کنید.
  • Google Authenticator را نصب کنید.
  • برنامه اولیه سازی را اجرا کنید.
  • پس از اجرای دستور چند سوال از شما پرسیده می شود.
  • openssh (SSHD) را پیکربندی کنید.
  • فایل پیکربندی SSH را ویرایش کنید
  • سرویس SSHD را مجددا راه اندازی کنید.

منبع:

tecmint.com