مقدمه

پروتکل SSH (Secure Shell) یکی از ابزارهای اصلی برای مدیریت ایمن سرورهاست. با استفاده از SSH می‌توان به‌صورت رمزنگاری‌شده به سرورهای لینوکس متصل شد، فایل‌ها را منتقل کرد و دستورات مدیریتی اجرا کرد. این مقاله گام‌به‌گام نحوه نصب، فعال‌سازی، پیکربندی و ایمن‌سازی SSH در لینوکس را همراه با مثال‌ها و Best Practices توضیح می‌دهد.

نصب و فعال‌سازی SSH

1

در Ubuntu/Debian

نصب SSH Server در سیستم‌های مبتنی بر Debian

نکات مهم

  • پکیج openssh-server نصب می‌شود
  • سرویس به صورت خودکار شروع می‌شود
Terminal
sudo apt update
sudo apt install openssh-server -y

مدیریت سرویس SSH

1

بررسی وضعیت

بررسی وضعیت سرویس SSH

نکات مهم

  • سرویس باید فعال باشد
  • پورت 22 باید باز باشد
Terminal
systemctl status ssh
2

راه‌اندازی مجدد

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

نکات مهم

  • اتصالات فعال قطع می‌شوند
  • تغییرات تنظیمات اعمال می‌شود
Terminal
sudo systemctl restart ssh
3

فعال‌سازی در بوت

فعال‌سازی سرویس SSH در بوت سیستم

نکات مهم

  • سرویس به صورت خودکار شروع می‌شود
  • در صورت ریبوت سیستم سرویس فعال می‌ماند
Terminal
sudo systemctl enable ssh

اتصال اولیه با رمز عبور

1

اتصال در لینوکس/macOS

اتصال SSH با رمز عبور در سیستم‌های لینوکس و macOS

نکات مهم

  • نام کاربری و رمز عبور مورد نیاز است
  • IP آدرس سرور را وارد کنید
Terminal
ssh user@192.168.1.100
2

اتصال در ویندوز

اتصال SSH با رمز عبور در ویندوز PowerShell

نکات مهم

  • PowerShell یا Command Prompt استفاده کنید
  • SSH Client باید نصب باشد
PowerShell
ssh user@server-ip

احراز هویت با کلید عمومی و خصوصی

1

ایجاد کلید در ویندوز

ایجاد کلید SSH RSA در سیستم ویندوز

نکات مهم

  • کلید RSA با طول 4096 بیت ایجاد می‌شود
  • مسیر پیش‌فرض: C:\Users\<username>\.ssh\
Terminal
ssh-keygen -t rsa -b 4096
2

ایجاد کلید در لینوکس

ایجاد کلید SSH ED25519 در سیستم لینوکس

نکات مهم

  • ED25519 سریع‌تر و امن‌تر از RSA است
  • کلید در ~/.ssh/ ذخیره می‌شود
Terminal
ssh-keygen -t ed25519
3

کپی کلید به سرور

انتقال کلید عمومی به سرور SSH

نکات مهم

  • کلید عمومی به authorized_keys اضافه می‌شود
  • در لینوکس از ssh-copy-id استفاده کنید
Terminal
ssh-copy-id user@server-ip
4

تنظیم مجوز فایل‌ها

تنظیم مجوزهای امنیتی برای فایل‌های SSH

نکات مهم

  • پوشه .ssh باید مجوز 700 داشته باشد
  • فایل authorized_keys باید مجوز 600 داشته باشد
Terminal
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

تنظیمات امنیتی مهم در SSH

فایل اصلی: /etc/ssh/sshd_config

1

تغییر پورت پیش‌فرض

تغییر پورت SSH از 22 به پورت امن‌تر

نکات مهم

  • پورت 22 هدف حملات اسکریپتی است
  • پورت‌های 2222، 2200، 2022 پیشنهاد می‌شود
Config
Port 2222
2

غیرفعال‌کردن Root Login

غیرفعال‌سازی ورود مستقیم Root از طریق SSH

نکات مهم

  • امنیت سیستم را افزایش می‌دهد
  • از sudo برای دسترسی Root استفاده کنید
Config
PermitRootLogin no
3

فعال‌سازی Root Login (غیرتوصیه‌شده)

فعال‌سازی ورود Root فقط برای تست

نکات مهم

  • ⚠️ ریسک امنیتی بالا دارد
  • فقط در محیط تست استفاده کنید
Terminal
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && sudo systemctl restart ssh && sudo passwd
4

محدود کردن کاربران مجاز

محدودسازی دسترسی SSH به کاربران خاص

نکات مهم

  • فقط کاربران مشخص شده دسترسی دارند
  • امنیت سیستم را افزایش می‌دهد
Config
AllowUsers admin devops
5

نصب Fail2ban

نصب Fail2ban برای جلوگیری از حملات Brute Force

نکات مهم

  • حملات Brute Force را مسدود می‌کند
  • IP های مشکوک را بلاک می‌کند
Terminal
sudo apt install fail2ban -y

تست و عیب‌یابی اتصال SSH

1

مشاهده لاگ‌ها

مشاهده لاگ‌های سرویس SSH برای عیب‌یابی

نکات مهم

  • لاگ‌ها را به صورت Real-time مشاهده کنید
  • خطاهای اتصال را بررسی کنید
Terminal
sudo journalctl -u ssh -f
2

تست باز بودن پورت

بررسی باز بودن پورت SSH از راه دور

نکات مهم

  • پورت 22 یا پورت تغییر یافته را تست کنید
  • از netcat برای تست استفاده کنید
Terminal
nc -zv server-ip 22
3

اتصال با حالت Debug

اتصال SSH با حالت Debug برای عیب‌یابی

نکات مهم

  • جزئیات کامل اتصال نمایش داده می‌شود
  • خطاهای دقیق را شناسایی کنید
Terminal
ssh -v user@server-ip

Best Practices در سازمان‌ها

1

استفاده از کلید ED25519

استفاده از کلیدهای ED25519 به‌جای RSA

نکات مهم

  • ED25519 سریع‌تر و امن‌تر است
  • حجم کلید کمتر است
2

الزام استفاده از SSH Key

الزام کاربران به استفاده از SSH Key و غیرفعال کردن پسورد

نکات مهم

  • امنیت بالاتر از رمز عبور
  • جلوگیری از حملات Brute Force
3

تغییر پورت پیش‌فرض

تغییر پورت پیش‌فرض برای کاهش حملات اسکریپتی

نکات مهم

  • کاهش حملات خودکار
  • پورت‌های غیراستاندارد استفاده کنید
4

استفاده از MFA/2FA

استفاده از احراز هویت چندعاملی برای امنیت بیشتر

نکات مهم

  • امنیت اضافی برای دسترسی
  • حتی در صورت نفوذ کلید
5

مانیتورینگ لاگین

مانیتورینگ تلاش‌های لاگین با ابزارهای پیشرفته

نکات مهم

  • استفاده از Splunk یا SIEM
  • تشخیص حملات در زمان واقعی

نتیجه‌گیری

SSH ستون فقرات مدیریت امن در لینوکس است. نصب و فعال‌سازی آن ساده است، اما پیکربندی امنیتی (کلیدها، محدودسازی کاربران و Fail2ban) حیاتی است. Root Login باید در اکثر موارد غیرفعال باشد مگر برای شرایط خاص. رعایت Best Practices باعث افزایش امنیت و کاهش ریسک نفوذ خواهد شد.

پرسش‌های متداول

آیا تغییر پورت SSH امنیت را بالا می‌برد؟

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

بهترین الگوریتم کلید برای استفاده چیست؟

ED25519 به دلیل سرعت و امنیت بالا توصیه می‌شود.

اگر دسترسی Root لازم باشد چه کنم؟

می‌توانید موقتاً Root Login را فعال کنید یا از sudo استفاده کنید.

چگونه می‌توان حملات Brute Force را محدود کرد؟

با نصب Fail2ban یا تنظیم محدودیت‌های لاگین.