فعالسازی احراز هویت دومرحلهای (2FA) برای SSH و پنلهای مدیریتی
حتی با استفاده از کلید SSH یا رمز عبور قوی، اگر این اطلاعات به هر دلیلی افشا شود، مهاجم میتواند بهراحتی به سرور دسترسی پیدا کند. احراز هویت دومرحلهای (2FA) با افزودن یک لایه امنیتی دوم، این ریسک را بهطور چشمگیری کاهش میدهد.
2FA چیست و چرا اهمیت دارد؟
در احراز هویت دومرحلهای، علاوه بر رمز عبور یا کلید SSH، کاربر باید یک کد یکبارمصرف (OTP) که توسط اپلیکیشنی مانند Google Authenticator تولید میشود را نیز وارد کند. حتی اگر رمز عبور یا کلید لو برود، بدون دسترسی به این کد، ورود به سرور امکانپذیر نخواهد بود.
نصب و پیکربندی Google Authenticator PAM Module
sudo apt update
sudo apt install libpam-google-authenticator -y
# اجرای ابزار پیکربندی برای کاربر جاری
google-authenticatorدر حین اجرا، یک QR Code نمایش داده میشود که باید با اپلیکیشن Google Authenticator اسکن شود. همچنین کدهای بازیابی اضطراری (Backup Codes) نمایش داده میشوند که باید در مکانی امن ذخیره شوند.
پیکربندی PAM و SSH
پس از نصب ماژول، باید فایل پیکربندی PAM را ویرایش کنید:
sudo nano /etc/pam.d/sshd
# افزودن خط زیر در ابتدای فایل
auth required pam_google_authenticator.soسپس در فایل تنظیمات SSH، گزینههای زیر را فعال کنید:
sudo nano /etc/ssh/sshd_config
# تنظیم موارد زیر
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
sudo systemctl restart sshdبا این تنظیم، کاربران علاوه بر کلید SSH باید کد یکبارمصرف را نیز وارد کنند.
نکات مهم امنیتی
- پیش از قطع اتصال فعلی، حتماً در یک نشست جداگانه ورود با 2FA را تست کنید تا از قفل شدن دسترسی جلوگیری شود.
- کدهای بازیابی اضطراری را در مکانی خارج از سرور نگهداری کنید.
- 2FA را میتوان برای پنلهای مدیریتی وب مانند phpMyAdmin یا پنلهای سفارشی نیز با استفاده از کتابخانههای مشابه پیادهسازی کرد.
2FA در کنار سایر تدابیر امنیتی
فعالسازی 2FA بهتنهایی کافی نیست و باید در کنار سایر اقدامات امنیتی مانند نصب Fail2Ban برای مقابله با تلاشهای Brute-Force به کار گرفته شود؛ جزئیات کامل این موضوع در مقاله آموزش Fail2Ban و هاردنینگ SSH آمده است. برای آشنایی کاملتر با مفاهیم پایه SSH نیز میتوانید به راهنمای جامع SSH مراجعه کنید.
جمعبندی
احراز هویت دومرحلهای یکی از سادهترین و در عین حال مؤثرترین راهها برای افزایش امنیت دسترسی به سرور است. با صرف چند دقیقه برای پیکربندی، میتوانید ریسک نفوذ ناشی از افشای رمز عبور یا کلید را بهطور قابلتوجهی کاهش دهید.
2FA در کنار سایر لایههای امنیتی شبکه
فعالسازی 2FA باید در کنار محدودسازی دسترسی در سطح شبکه انجام شود؛ برای مثال بستن پورتهای غیرضروری و مجاز کردن فقط ترافیک مورد نیاز از طریق یک فایروال شبکه مانند UFW، سطح حمله را بهطور قابلتوجهی کاهش میدهد. راهنمای کامل در مقاله امنسازی سرور با فایروال UFW آمده است.