مقدمه
پروتکل SSH (Secure Shell) یکی از ابزارهای اصلی برای مدیریت ایمن سرورهاست. با استفاده از SSH میتوان بهصورت رمزنگاریشده به سرورهای لینوکس متصل شد، فایلها را منتقل کرد و دستورات مدیریتی اجرا کرد. این مقاله گامبهگام نحوه نصب، فعالسازی، پیکربندی و ایمنسازی SSH در لینوکس را همراه با مثالها و Best Practices توضیح میدهد.
نصب و فعالسازی SSH
در Ubuntu/Debian
نصب SSH Server در سیستمهای مبتنی بر Debian
نکات مهم
- پکیج openssh-server نصب میشود
- سرویس به صورت خودکار شروع میشود
sudo apt update
sudo apt install openssh-server -y
مدیریت سرویس SSH
بررسی وضعیت
بررسی وضعیت سرویس SSH
نکات مهم
- سرویس باید فعال باشد
- پورت 22 باید باز باشد
systemctl status ssh
راهاندازی مجدد
راهاندازی مجدد سرویس SSH
نکات مهم
- اتصالات فعال قطع میشوند
- تغییرات تنظیمات اعمال میشود
sudo systemctl restart ssh
فعالسازی در بوت
فعالسازی سرویس SSH در بوت سیستم
نکات مهم
- سرویس به صورت خودکار شروع میشود
- در صورت ریبوت سیستم سرویس فعال میماند
sudo systemctl enable ssh
اتصال اولیه با رمز عبور
اتصال در لینوکس/macOS
اتصال SSH با رمز عبور در سیستمهای لینوکس و macOS
نکات مهم
- نام کاربری و رمز عبور مورد نیاز است
- IP آدرس سرور را وارد کنید
ssh user@192.168.1.100
اتصال در ویندوز
اتصال SSH با رمز عبور در ویندوز PowerShell
نکات مهم
- PowerShell یا Command Prompt استفاده کنید
- SSH Client باید نصب باشد
ssh user@server-ip
احراز هویت با کلید عمومی و خصوصی
ایجاد کلید در ویندوز
ایجاد کلید SSH RSA در سیستم ویندوز
نکات مهم
- کلید RSA با طول 4096 بیت ایجاد میشود
- مسیر پیشفرض: C:\Users\<username>\.ssh\
ssh-keygen -t rsa -b 4096
ایجاد کلید در لینوکس
ایجاد کلید SSH ED25519 در سیستم لینوکس
نکات مهم
- ED25519 سریعتر و امنتر از RSA است
- کلید در ~/.ssh/ ذخیره میشود
ssh-keygen -t ed25519
کپی کلید به سرور
انتقال کلید عمومی به سرور SSH
نکات مهم
- کلید عمومی به authorized_keys اضافه میشود
- در لینوکس از ssh-copy-id استفاده کنید
ssh-copy-id user@server-ip
تنظیم مجوز فایلها
تنظیم مجوزهای امنیتی برای فایلهای SSH
نکات مهم
- پوشه .ssh باید مجوز 700 داشته باشد
- فایل authorized_keys باید مجوز 600 داشته باشد
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
تنظیمات امنیتی مهم در SSH
فایل اصلی: /etc/ssh/sshd_config
تغییر پورت پیشفرض
تغییر پورت SSH از 22 به پورت امنتر
نکات مهم
- پورت 22 هدف حملات اسکریپتی است
- پورتهای 2222، 2200، 2022 پیشنهاد میشود
Port 2222
غیرفعالکردن Root Login
غیرفعالسازی ورود مستقیم Root از طریق SSH
نکات مهم
- امنیت سیستم را افزایش میدهد
- از sudo برای دسترسی Root استفاده کنید
PermitRootLogin no
فعالسازی Root Login (غیرتوصیهشده)
فعالسازی ورود Root فقط برای تست
نکات مهم
- ⚠️ ریسک امنیتی بالا دارد
- فقط در محیط تست استفاده کنید
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && sudo systemctl restart ssh && sudo passwd
محدود کردن کاربران مجاز
محدودسازی دسترسی SSH به کاربران خاص
نکات مهم
- فقط کاربران مشخص شده دسترسی دارند
- امنیت سیستم را افزایش میدهد
AllowUsers admin devops
نصب Fail2ban
نصب Fail2ban برای جلوگیری از حملات Brute Force
نکات مهم
- حملات Brute Force را مسدود میکند
- IP های مشکوک را بلاک میکند
sudo apt install fail2ban -y
تست و عیبیابی اتصال SSH
مشاهده لاگها
مشاهده لاگهای سرویس SSH برای عیبیابی
نکات مهم
- لاگها را به صورت Real-time مشاهده کنید
- خطاهای اتصال را بررسی کنید
sudo journalctl -u ssh -f
تست باز بودن پورت
بررسی باز بودن پورت SSH از راه دور
نکات مهم
- پورت 22 یا پورت تغییر یافته را تست کنید
- از netcat برای تست استفاده کنید
nc -zv server-ip 22
اتصال با حالت Debug
اتصال SSH با حالت Debug برای عیبیابی
نکات مهم
- جزئیات کامل اتصال نمایش داده میشود
- خطاهای دقیق را شناسایی کنید
ssh -v user@server-ip
Best Practices در سازمانها
استفاده از کلید ED25519
استفاده از کلیدهای ED25519 بهجای RSA
نکات مهم
- ED25519 سریعتر و امنتر است
- حجم کلید کمتر است
الزام استفاده از SSH Key
الزام کاربران به استفاده از SSH Key و غیرفعال کردن پسورد
نکات مهم
- امنیت بالاتر از رمز عبور
- جلوگیری از حملات Brute Force
تغییر پورت پیشفرض
تغییر پورت پیشفرض برای کاهش حملات اسکریپتی
نکات مهم
- کاهش حملات خودکار
- پورتهای غیراستاندارد استفاده کنید
استفاده از MFA/2FA
استفاده از احراز هویت چندعاملی برای امنیت بیشتر
نکات مهم
- امنیت اضافی برای دسترسی
- حتی در صورت نفوذ کلید
مانیتورینگ لاگین
مانیتورینگ تلاشهای لاگین با ابزارهای پیشرفته
نکات مهم
- استفاده از Splunk یا SIEM
- تشخیص حملات در زمان واقعی
نتیجهگیری
SSH ستون فقرات مدیریت امن در لینوکس است. نصب و فعالسازی آن ساده است، اما پیکربندی امنیتی (کلیدها، محدودسازی کاربران و Fail2ban) حیاتی است. Root Login باید در اکثر موارد غیرفعال باشد مگر برای شرایط خاص. رعایت Best Practices باعث افزایش امنیت و کاهش ریسک نفوذ خواهد شد.
پرسشهای متداول
آیا تغییر پورت SSH امنیت را بالا میبرد؟
بله، جلوی بسیاری از اسکنهای خودکار را میگیرد اما کافی نیست.
بهترین الگوریتم کلید برای استفاده چیست؟
ED25519 به دلیل سرعت و امنیت بالا توصیه میشود.
اگر دسترسی Root لازم باشد چه کنم؟
میتوانید موقتاً Root Login را فعال کنید یا از sudo استفاده کنید.
چگونه میتوان حملات Brute Force را محدود کرد؟
با نصب Fail2ban یا تنظیم محدودیتهای لاگین.