امنسازی SSH روی سرور لینوکس در ۶ قدم
با چند تنظیم ساده، دسترسی SSH سرور لینوکس را در برابر حملات حدس رمز و دسترسی غیرمجاز محکم کنید.
فهرست مطالب
تقریباً هر سروری که به اینترنت وصل شود، در چند دقیقه اول حملات حدس رمز روی SSH را میبیند. با چند تنظیم ساده میشود این حملات را بیاثر کرد.
قبل از شروع: همیشه یک نشست SSH دوم را باز نگه دارید تا اگر تنظیمی اشتباه بود، از همان نشست آن را برگردانید.
۱. کلید SSH بسازید
روی کامپیوتر خودتان (نه سرور):
ssh-keygen -t ed25519
ssh-copy-id user@your-server
۲. کاربر غیر root بسازید
sudo adduser deploy
sudo usermod -aG sudo deploy
۳. تنظیمات SSH را سختتر کنید
فایل /etc/ssh/sshd_config.d/00-hardening.conf را بسازید:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
AllowUsers deploy
نام فایل را با 00 شروع کنید. در OpenSSH اولین مقدار خواندهشده برای هر تنظیم برنده است و بعضی ایمیجهای ابری فایلی مثل 50-cloud-init.conf دارند که ورود با رمز را فعال میکند.
sudo sshd -t
sudo systemctl reload ssh
سپس در یک ترمینال جدید وارد شوید و مطمئن شوید همهچیز کار میکند.
۴. فایروال را فعال کنید
sudo ufw allow OpenSSH
sudo ufw enable
۵. Fail2ban را نصب کنید
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
۶. تغییر پورت؟
عوض کردن پورت ۲۲ امنیت واقعی نمیدهد و فقط حجم لاگهای بیارزش را کم میکند.
جمعبندی
ورود با کلید، بستن root، فایروال و Fail2ban مهمترین لایهها هستند. یک بار درست تنظیم کنید و در مستندات سرور ثبت کنید.
پرسشهای متداول
آیا غیرفعال کردن ورود با رمز عبور SSH امنتر است؟
بله. با ورود فقط با کلید، حملات حدس رمز عملاً بیاثر میشوند، به شرط اینکه کلید خصوصی محافظت شود.
آیا تغییر پورت SSH لازم است؟
نه. این کار امنیت واقعی نمیدهد و فقط حجم لاگهای مزاحم را کم میکند.