شاید شما هم به دنبال افزایش امنیت در لینوکس و همچنین فعال کردن تایید دو مرحله ای برای لینوکس با استفاده از اپلیکیشن ۲FA از شرکت گوگل با نام Google Authenticator باشید؛ پس این مقاله از لرنچی مخصوص شماست.
AlmaLinux یک جایگزین ارزان و بهتر برای سیستم عامل CentOS است که اتفاقاً یک جایگزین باینری ۱:۱ برای Red Hat Enterprise Linux نیز میباشد. احتمال بسیار زیادی وجود دارد که شما به زودی این توزیع سرور لینوکس را برای استفاده، آماده خواهید کرد. وقتی این کار را انجام دادید، پس باید مطمئن شوید امنیت آن در سطح بسیار خوبی بالا باشد.
یکی از راه های تقویت امنیت هر سرور لینوکس فعال کردن احراز هویت دو عاملی (۲FA) در لینوکس برای ورودهای SSH است. این بسته نصبی کاملاً آسان است و ارتباطات از راه دور را بطور قابل توجهی ایمن تر می کند. به جای تایپ کردن گذرواژه برای تأیید اعتبار SSH ، همچنین باید یک کد ۶ رقمی موقت را از برنامه احراز هویت مورد علاقه خود ( مانند Authy یا Google Authenticator ) وارد کنید. (مثل رمز دوم بانکی :)) )
موارد مورد نیاز برای افزودن رمز دو مرحله ای به لینوکس
- سیستم عامل لینوکس
- یک برنامه ثبت رمز دو مرحله ای مانند برنامه Authy و یا Google Authenticator
- یک یوزر با دسترسی های sudo
نحوه نصب Google Authenticator در AlmaLinux
این همان برنامه Google Authenticator نیست که روی دستگاه تلفن همراه خود نصب می کنید. این Google Authenticator بر روی سرور شما نصب خواهد شد و امکان افزودن ۲FA به ورودهای SSH در لینوکس را فراهم می کند.
برای نصب Google Authenticator در AlmaLinux ، ابتدا باید مخزن EPEL را با دستور زیر اضافه کنید :
sudo dnf install epel-release -y
پس از افزودن مخزن EPEL به لینوکس خود دستور زیر را جهت نصب Google Authenticator در AlmaLinux وارد نمایید :
sudo dnf install google-authenticator qrencode qrencode-libs -y
google-authenticator -s ~/.ssh/google_authenticator
دستور بالا را که وارد نمودید، از شما سوالی پرسیده میشود که با Y به آن پاسخ دهید. پس از انجام تمامی موارد بالا به صورت درست و اصولی، یک QR Code برای شما در صفحه ترمینال ظاهر خواهد شد. ( برای مشاهده کامل QR Code صفحه ترمینال خود را بزرگتر کنید )
سپس برنامه TOTP (Authy یا Google Authenticator) را در دستگاه تلفن همراه خود باز کنید و حساب جدیدی اضافه کنید. کد QR را اسکن کرده و سپس، در صورت درخواست از ترمینال AlmaLinux ، کد شش رقمی ارائه شده توسط برنامه را تایپ کنید و در نهایت در ترمینال خود Y را مجددا تایپ کنید و اینتر بزنید.
نحوه پیکربندی SSH و PAM در لینوکس
اولین کاری که باید انجام دهیم پیکربندی SSH daemon است. پرونده را با دستور زیر باز کنید :
sudo nano /etc/ssh/sshd_config
در این پرونده، مطمئن شوید که UsePAM و ChallengeResponseAuthentication روی Yes تنظیم شده باشند. سپس ذخیره کنید و فایل را ببندید.
سپس فایل پیکربندی PAM sshd را با دستور زیر باز کنید :
sudo nano /etc/pam.d/sshd
در فایل پیکربندی PAM sshd ، خط زیر را در پایین اضافه کنید :
auth required pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator
در نهایت ذخیره کنید و فایل را ببندید.
پس از انجام درست مراحل بالا، SSH daemon را با دستور زیر ریستارت کنید :
sudo systemctl restart sshd
اگر ترجیح می دهید اعتبار سنجی کلید SSH / 2FA را پیکربندی کنید، فایل پیکربندی daemon SSH را با دستور زیر باز کنید :
sudo nano /etc/ssh/sshd_config
در آن پرونده، مطمئن شوید که UsePAM و ChallengeResponseAuthentication روی Yes تنظیم شده باشند. همچنین، مطمئن شوید که PubkeyAuthentication روی Yes تنظیم شده است و در پایین پرونده، خط زیر را اضافه کنید :
AuthenticationMethods publickey,keyboard-interactive
در نهایت ذخیره کنید و فایل را ببندید.
سپس، فایل پیکربندی PAM را با دستور زیر باز کنید :
sudo nano /etc/pam.d/sshd
در آخرین لاین این فایل، لاین زیر را با استفاده از (#) کامنت کنید و در نهایت در نهایت ذخیره کنید و فایل را ببندید.
auth substack password-auth
auth required pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator
پس از انجام درست مراحل بالا، SSH را با دستور زیر ریستارت کنید :
sudo systemctl restart sshd
نحوه ورود به لینوکس با رمز دومرحله ای (۲FA)
پس از انجام موارد بالا و در نهایت پیکربندی فایل های ذکر شده، زین پس برای ورود به محیط SSH سرور لینوکس خود نیاز به رمز دوم موقت نیز دارید. این رمز در برنامه Google Authenticator واقع در گوشی همراه شما ساخته شده و میتوانید از آن استفاده کنید.
نحوه استفاده نیز به این صورت است که؛ هنگامی که پسورد ثابت و همیشگی خود را برای ورود به محیط SSH وارد میکنید؛ پسورد دوم موقتی را که نیز توسط برنامه ساخته میشود را باید در SSH خود وارد کرده تا بتوانید از آن استفاده کنید.