راهنمای مقاومسازی امنیتی SSH
روشهای ضروری تقویت امنیت SSH را برای محافظت از سرور خود بیاموزید. مراحل کلیدی مانند تغییر پورتهای پیشفرض، فعال کردن 2FA، محدود کردن دسترسی و نظارت بر گزارشها را بررسی کنید.
تقویت امنیت SSH
اتصال امن (SSH) ابزاری اساسی برای مدیریت سرور است که ارتباط رمزگذاری شده را برای دسترسی از راه دور فراهم میکند. با این حال، این ابزار همچنین هدف رایجی برای حملات سایبری است. اجرای اقدامات امنیتی اولیه SSH برای محافظت از سرور شما در برابر دسترسی غیرمجاز و حملات جستجوی فراگیر ضروری است. این راهنما با شیوههای امنیتی بنیادی آغاز میشود و به تکنیکهای پیشرفته برای یک رویکرد جامع برای مقاومسازی تنظیمات SSH شما میپردازد. چه یک مدیر مبتدی باشید و چه یک مدیر باتجربه، این راهنما به شما کمک میکند تا سرور خود را به طور مؤثر ایمن کنید.
اقدامات امنیتی اولیه SSH
- به طور پیشفرض، SSH روی پورت ۲۲ گوش میدهد، که هدف شناختهشدهای برای مهاجمان است. تغییر آن به یک پورت غیراستاندارد، احتمال حملات جستجوی فراگیر را کاهش میدهد.
غیرفعال کردن ورود با root: - دسترسی مستقیم به ریشه یک ریسک قابل توجه است. به جای آن از یک حساب کاربری معمولی با امتیازات sudo استفاده کنید.
فعال کردن احراز هویت کلید SSH: - برای افزایش امنیت، ورودهای مبتنی بر رمز عبور را با کلیدهای SSH جایگزین کنید. این روش تضمین میکند که فقط کاربران دارای کلید خصوصی میتوانند به سرور دسترسی داشته باشند.
محدود کردن تلاشهای ناموفق برای ورود: - ابزارهایی مانند Fail2Ban را نصب کنید تا آدرسهای IP را پس از تعداد مشخصی تلاش ناموفق برای ورود به سیستم مسدود کنید.
سیستم خود را بهروز نگه دارید: - مرتباً سرور و نرمافزار SSH خود را بهروزرسانی کنید تا آسیبپذیریها را برطرف کرده و امنیت کلی را بهبود بخشید.
با شروع این شیوههای اولیه، پایه و اساس محکمی برای امنیت SSH بنا خواهید کرد. بخشهای بعدی بر اساس این اصول و با استراتژیهای پیشرفته، سرور شما را در برابر تهدیدات پیچیده مقاومتر خواهند کرد.
۱. تغییر پورت پیشفرض SSH
پورت پیشفرض SSH (پورت ۲۲) یکی از اهداف اصلی حملات جستجوی فراگیر است. تغییر پورت میتواند اولین قدم برای بهبود امنیت باشد. مراحل: فایل پیکربندی SSH را ویرایش کنید: sudo nano /etc/ssh/sshd_config خط Port 22 را پیدا کنید و آن را به پورت دیگری تغییر دهید (مثلاً ۲۲۲۲): Port 2222 برای اعمال تغییرات، SSH را مجدداً راهاندازی کنید: sudo systemctl restart sshd قبل از قطع اتصال، بررسی کنید که آیا پورت جدید باز است یا خیر:
۲. استفاده از احراز هویت کلید SSH به جای رمز عبور
احراز هویت با کلید SSH بسیار امنتر از استفاده از رمزهای عبور است، زیرا از حملات جستجوی فراگیر جلوگیری میکند. مراحل: یک جفت کلید SSH ایجاد کنید (اگر از قبل ندارید): ssh-keygen -t rsa -b 4096 کلید عمومی را در سرور کپی کنید: ssh-copy-id user@your_server_ip احراز هویت با رمز عبور را در فایل پیکربندی SSH غیرفعال کنید: sudo nano /etc/ssh/sshd_config موارد زیر را تنظیم کنید: PasswordAuthentication noRestart SSH: sudo systemctl restart sshd
۳. نصب و پیکربندی Fail2Ban برای جلوگیری از حملات Brute Force
Fail2Ban ابزاری است که حملات جستجوی فراگیر (brute-force) را شناسایی کرده و آدرسهای IP مشکوک را مسدود میکند. مراحل: نصب Fail2Ban: sudo apt-get install fail2ban پیکربندی Fail2Ban برای SSH:
- Edit the jail.local file:
sudo nano /etc/fail2ban/jail.local
- بخش [sshd] را به صورت زیر اضافه یا ویرایش کنید:
- پورت صحیح را برای SSH تنظیم کنید (مثلاً ۲۲۲۲).
Fail2Ban را مجدداً راه اندازی کنید: sudo systemctl restart fail2ban بررسی وضعیت Fail2Ban: sudo fail2ban-client status sshd
۴. غیرفعال کردن ورود کاربر root از طریق SSH
اجازه ورود به سیستم با دسترسی root از طریق SSH یک ریسک امنیتی است. بهتر است ورود به سیستم با دسترسی root را غیرفعال کنید و از یک حساب کاربری معمولی با امتیازات sudo استفاده کنید. مراحل: فایل پیکربندی SSH را ویرایش کنید: sudo nano /etc/ssh/sshd_config خط PermitRootLogin را پیدا کنید و آن را روی no:PermitRootLogin noRestart SSH:sudo systemctl restart sshd تنظیم کنید.

۵. فعال کردن احراز هویت دو مرحلهای (2FA) برای SSH
افزودن احراز هویت دو مرحلهای (2FA) به SSH یک لایه امنیتی اضافی اضافه میکند. حتی اگر یک مهاجم رمز عبور شما را حدس بزند، برای ورود به سیستم به یک کد اضافی نیاز خواهد داشت. مراحل: نصب pam_google_authenticator: sudo apt-get install libpam-google-authenticator اجرای google-authenticator برای هر کاربر: google-authenticator فایل پیکربندی PAM را برای SSH ویرایش کنید: sudo nano /etc/pam.d/sshd خط زیر را در انتها اضافه کنید:auth required pam_google_authenticator.so سپس، فایل پیکربندی SSH را برای فعال کردن 2FA ویرایش کنید: sudo nano /etc/ssh/sshd_config موارد زیر را تنظیم کنید: ChallengeResponseAuthentication yesRestart SSH: sudo systemctl restart sshd
۶. محدود کردن دسترسی SSH به آدرسهای IP خاص
محدود کردن دسترسی SSH به آدرسهای IP خاص، امنیت را تا حد زیادی بهبود میبخشد. مراحل: از iptables برای اجازه دسترسی SSH فقط از یک آدرس IP خاص استفاده کنید:
برای دائمی کردن قوانین iptables: sudo apt-get install iptables-persistent
۷. نظارت بر گزارشها و وضعیت SSH
بررسی منظم لاگهای SSH و نظارت بر وضعیت میتواند به شما در تشخیص هرگونه فعالیت مشکوک کمک کند. مراحل: لاگهای SSH را بررسی کنید: sudo tail -f /var/log/auth.log برای نظارت بهتر از logwatch استفاده کنید:
۸. از ابزارهای امنیتی برای اسکن تهدیدات استفاده کنید
ابزارهایی مانند Lynis و RKHunter میتوانند به شناسایی آسیبپذیریها و تهدیدهای امنیتی کمک کنند. مراحل: Lynis را نصب کنید:
نصب RKHunter:
۹. محدود کردن تلاشهای مجدد برای احراز هویت SSH
محدود کردن تعداد تلاشهای ناموفق برای ورود به SSH میتواند از حملات جستجوی فراگیر جلوگیری کند. مراحل: فایل sshd_config را ویرایش کنید: sudo nano /etc/ssh/sshd_config موارد زیر را تنظیم کنید: MaxAuthTries 3SSH را مجدداً راهاندازی کنید: sudo systemctl sshd را مجدداً راهاندازی کنید
۱۰. از عامل کلید SSH استفاده کنید
برای جلوگیری از وارد کردن مکرر رمزهای عبور یا کلیدهای SSH هنگام اتصال، میتوانید از SSH Key Agent استفاده کنید که به طور خودکار کلیدهای SSH شما را بارگذاری میکند. مراحل: کلیدهای SSH خود را به agent اضافه کنید:
با دنبال کردن این مراحل، میتوانید امنیت اتصالات SSH خود را به میزان قابل توجهی بهبود بخشیده و سرور خود را از دسترسی غیرمجاز محافظت کنید.