Fail2ban حملات Brute Force به SSH را خودکار مسدود می‌کند. آموزش نصب و تنظیم آن روی اوبونتو را در این مقاله ببینید.

آموزش نصب Fail2ban برای امنیت SSH

اگر لاگ SSH سرورتان را نگاه کنید، احتمالاً صدها تلاش ورود ناموفق از آی‌پی‌های ناشناس می‌بینید — ربات‌های خودکار دائم در حال حدس زدن رمز عبور سرورهای دنیا هستند. Fail2ban ابزاری است که این نوع حملات Brute Force را به‌صورت خودکار شناسایی و مسدود می‌کند.

Fail2ban چطور کار می‌کند؟

Fail2ban لاگ‌های سرویس‌هایی مثل SSH را زیر نظر دارد و اگر یک آی‌پی در بازه زمانی مشخص چند بار تلاش ناموفق برای ورود داشته باشد، به‌صورت خودکار آن آی‌پی را برای مدتی (یا برای همیشه) در فایروال مسدود می‌کند.

نصب Fail2ban روی اوبونتو

sudo apt update
sudo apt install fail2ban

تنظیمات اولیه

هرگز فایل اصلی jail.conf را مستقیم ویرایش نکنید (با آپدیت بازنویسی می‌شود)؛ به‌جایش یک کپی محلی بسازید:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

بخش مربوط به SSH را پیدا و مقادیر زیر را تنظیم کنید:

[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
findtime = 600

این تنظیمات یعنی: اگر یک آی‌پی در ۱۰ دقیقه، ۵ بار تلاش ناموفق داشته باشد، به مدت ۱ ساعت مسدود می‌شود. اگر پورت SSH را طبق این آموزش عوض کرده‌اید، مقدار port را با شماره پورت جدید جایگزین کنید.

راه‌اندازی و بررسی وضعیت

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
sudo fail2ban-client status sshd

خروجی این دستور نشان می‌دهد چند آی‌پی تا الان مسدود شده‌اند.

آزادسازی دستی یک آی‌پی

اگر به اشتباه آی‌پی خودتان مسدود شد:

sudo fail2ban-client set sshd unbanip YOUR_IP

Fail2ban بخشی از یک استراتژی امنیتی کامل است

Fail2ban به‌تنهایی کافی نیست؛ آن را در کنار تغییر پورت پیش‌فرض SSH، غیرفعال کردن ورود مستقیم روت، و استفاده از فایروال UFW به‌کار ببرید تا سرور چند لایه دفاعی همزمان داشته باشد.