اکثر فضای میزبانی در اینترنت را سرورهای اختصاصی و مجازی لینوکس تشکیل میدهند. همانطور که میدانید مدیریت و پشتیبانی سرورهای لینوکس از طریق ارتباط SSH صورت میگیرد. بنابراین ایمنسازی SSH و حفاظت از آن در برابر هک و حملات سایبری از اهمیت بالایی برخوردار است. اگر اخبار و مقالات امنیتی پیشگامان را دنبال کرده باشید، میدانید که در مطلب گذشته درباره ایمنسازی سرور لینوکس در مقابل حملات SSH نوشته بودیم. حالا در این مطلب نحوه فعالسازی تایید دو مرحلهای (Two Factor Authentication) را برای اتصالات SSH توضیح میدهیم که تاثیر بسیاری در امنیت سرور مجازی لینوکس خواهد داشت.
دستورات این آموزش بر مبنای توزیع فدورا هستند، اما با اندکی تغییر برای لینوکسهای اوبونتو یا دبیان هم کاربرد دارند. قبل از شروع آموزش، پیشنهاد میکنیم از دسترسی فیزیکی یا کنسول به سرور لینوکس خود اطمینان حاصل کنید تا در صورت وقوع مشکل امکان بازیابی و رفع مشکل سرور خود را داشته باشید.
نصب احراز هویت دو مرحلهای
ابتدا یک ترمینال باز کنید و برای نصب ابزار احراز هویت گوگل، دستور زیر را وارد کنید:
sudo dnf install google-authenticator nano -y
بعد از نصب، با دستور زیر میتوانید ابزار را اجرا کنید:
google-authenticator
سپس به دو سوال بعدی جواب مثبت دهید. در مرحله بعدی به شما یک QR کد نمایش داده میشود که باید با اپلیکیشن authenticator گوشی همراه خود اسکن کنید. همچنین تعدادی کد امنیتی هم به شما نمایش داده میشود که باید در محلی امن ذخیره کنید. در ادامه سه سوال دیگر هم از شما پرسیده میشود که باید جواب بله بدهید.
تنظیم SSH
به صورت پیشفرض دیمن SSH در فدورا فعال نیست. با دستورات زیر SSH را فعال کنید:
sudo systemctl start sshd sudo systemctl enable sshd
بعد از اجرای SSH، کلیدهای خود را با دستور زیر به سرور لینوکس اضافه کنید.
ssh-copy-id USER@FEDORA_IP
بعد از اضافه کردن کلید SSH خود، حالا باید امکان تایید دو مرحلهای را در تنظیمات SSH سرور فعال کنید. برای این منظور دستور زیر را در ترمینال سرور لینوکس وارد کنید:
sudo nano /etc/pam.d/sshd
سپس با استفاده از علامت شارپ خط اول را کامنت کرده و خط دوم را در انتهای فایل اضافه کنید:
#auth substack password-auth auth sufficient pam_google_authenticator.so
فایل را ذخیره کنید و آن را ببندید. حالا باید تنظیمات دیمن SSH را درست کنید. سپس تنظیمات خطهای بعدی را به ترتیب به بله و خیر تغییر دهید:
sudo nano /etc/ssh/sshd_config ChallengeResponseAuthentication yes PasswordAuthentication no
سپس خط زیر را به آخر فایل اضافه کرده و فایل را ذخیره کنید:
AuthenticationMethods publickey,password publickey,keyboard-interactive
در نهایت برای اعمال تغییرات سرویس SSH را ریست (راهاندازی مجدد!) کنید:
sudo systemctl restart sshd
حالا خواهید دید که بعد از SSH به سرور لینوکس، از شما کد تایید خواسته میشود که باید با استفاده از برنامه تایید دو مرحلهای که در گوشی خود دارید، آن را وارد کنید.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.