بهترین روش‌ها برای افزایش امنیت SSH در سرورهای لینوکس: راهنمای کامل و کاربردی

بهترین روش‌ها برای افزایش امنیت SSH در سرورهای لینوکس: راهنمای کامل و کاربردی

افزایش امنیت SSH (Secure Shell) برای جلوگیری از حملات و دسترسی‌های غیرمجاز به سرور، امری ضروری است. در ادامه، چندین روش کاربردی برای بالا بردن امنیت SSH را مرور می‌کنیم.

1. غیرفعال کردن ورود با رمز عبور (Password Authentication)

یکی از بهترین روش‌ها برای افزایش امنیت SSH این است که ورود با رمز عبور را غیرفعال کنید و تنها از کلیدهای SSH استفاده کنید. برای این کار، ابتدا باید مطمئن شوید که کلیدهای SSH را پیکربندی کرده‌اید.

پس از تنظیم کلید SSH، مراحل زیر را دنبال کنید:

  • فایل پیکربندی SSH را با استفاده از ویرایشگر متنی باز کنید:

sudo nano /etc/ssh/sshd_config

  • خط زیر را پیدا کنید و مقدار آن را به no تغییر دهید:
PasswordAuthentication no
 
  • سرویس SSH را مجدداً راه‌اندازی کنید تا تغییرات اعمال شوند:
sudo systemctl restart ssh

این کار باعث می‌شود که ورود با رمز عبور غیرفعال شود و تنها کاربرانی که کلید SSH معتبر دارند، بتوانند وارد شوند.

2. استفاده از کلیدهای SSH به جای رمز عبور

کلیدهای SSH جایگزین ایمن‌تری برای رمزهای عبور هستند. برای ایجاد کلید SSH، از دستور زیر در سیستم محلی خود استفاده کنید:

ssh-copy-id username@server_ip
 

پس از این کار، می‌توانید بدون وارد کردن رمز عبور، به سرور متصل شوید.

3. تغییر پورت پیش‌فرض SSH (Port 22)

پورت پیش‌فرض SSH، یعنی پورت 22، یکی از اهداف متداول برای حملات است. تغییر این پورت می‌تواند امنیت را بهبود بخشد، زیرا حمله‌کنندگان معمولاً پورت 22 را جستجو می‌کنند.

برای تغییر پورت SSH:

فایل پیکربندی SSH را باز کنید

sudo nano /etc/ssh/sshd_config

خط Port 22 را پیدا کنید و پورت دلخواه خود را جایگزین کنید، مثلاً:

Port 2222

سرویس SSH را مجدداً راه‌اندازی کنید:

sudo systemctl restart ssh
 به یاد داشته باشید که فایروال سرور نیز باید پورت جدید را اجازه دهد:
sudo ufw allow 2222/tcp
 

4. فعال کردن احراز هویت دو مرحله‌ای (2FA)

با فعال‌سازی احراز هویت دو مرحله‌ای (Two-Factor Authentication)، می‌توانید یک لایه امنیتی دیگر به SSH اضافه کنید. این کار از ابزارهایی مانند Google Authenticator یا Duo استفاده می‌کند.

برای نصب Google Authenticator:


برای نصب Google Authenticator:

      1. ابزار PAM مورد نیاز برای احراز هویت دو مرحله‌ای را نصب کنید:

sudo apt install libpam-google-authenticator
  • سپس با اجرای دستور زیر، کد QR خود را دریافت کنید:

  • google-authenticator
  • تنظیمات PAM را ویرایش کنید:

  • sudo nano /etc/pam.d/sshd
     
  • خط زیر را به ابتدای فایل اضافه کنید:

  • auth required pam_google_authenticator.so
     
  • فایل sshd_config را ویرایش کرده و این تنظیمات را تغییر دهید:

  • ChallengeResponseAuthentication yes
     
     
  • سرویس SSH را مجدداً راه‌اندازی کنید.

  • 5. محدود کردن دسترسی با استفاده از فایروال (UFW)

    برای محدود کردن دسترسی به SSH، می‌توانید از فایروال UFW استفاده کنید تا فقط IPهای مشخص به سرور شما دسترسی داشته باشند.

      • برای اجازه دسترسی از یک IP خاص:

    sudo ufw allow from your_ip_address to any port 22
  • فعال‌سازی فایروال:

  • sudo ufw enable

    6. استفاده از Fail2Ban برای جلوگیری از حملات Brute Force

    Fail2Ban ابزاری است که تلاش‌های ناموفق برای ورود به SSH را شناسایی کرده و IPهای مشکوک را مسدود می‌کند.

    • برای نصب Fail2Ban:

    sudo apt install fail2ban
  • سپس فایل پیکربندی را ویرایش کنید:

  • sudo nano /etc/fail2ban/jail.local
  • تنظیمات مربوط به SSH را اضافه کنید:

  • [sshd] enabled = true port = 22 filter = sshd logpath = /var/log/auth.log maxretry = 3
     
  • Fail2Ban را راه‌اندازی کنید:

  • sudo systemctl restart fail2ban

    7. استفاده از TCP Wrappers برای محدود کردن دسترسی IPها

    TCP Wrappers یک ابزار ساده برای محدود کردن دسترسی بر اساس آدرس IP است. شما می‌توانید با ویرایش فایل‌های /etc/hosts.allow و /etc/hosts.deny دسترسی به SSH را محدود کنید.

    • اجازه دسترسی به یک IP خاص در hosts.allow:

    sshd: your_ip_address
  • مسدود کردن همه دسترسی‌ها به غیر از IPهای مجاز در hosts.deny:

  • sshd: ALL

    8. غیرفعال کردن ورود مستقیم با کاربر Root

    به دلایل امنیتی، توصیه می‌شود ورود مستقیم با کاربر Root را غیرفعال کنید و به جای آن از یک کاربر با دسترسی sudo استفاده کنید.

    برای غیرفعال کردن ورود Root:

    1. فایل sshd_config را باز کنید:

    sudo nano /etc/ssh/sshd_config
  • خط زیر را پیدا کنید و مقدار آن را به no تغییر دهید:

  • PermitRootLogin no
  • سپس سرویس SSH را مجدداً راه‌اندازی کنید:

  • sudo systemctl restart ssh

    نتیجه‌گیری

    افزایش امنیت SSH از طریق استفاده از کلیدهای SSH، غیرفعال کردن ورود با رمز عبور، تغییر پورت، فعال‌سازی 2FA و استفاده از ابزارهایی مانند Fail2Ban و TCP Wrappers می‌تواند به جلوگیری از دسترسی‌های غیرمجاز و حملات احتمالی کمک کند. این اقدامات به شما این اطمینان را می‌دهد که سرور لینوکس شما به بهترین شکل از حملات محافظت می‌شود.

     
     

      نماد‌های اعتماد

      logo-samandehi
      اپلیکیشن کرگدنKargadan on Bazaar

      © تمامی حقوق مادی و معنوی برای کرگدن محفوظ می‌باشد.