نصب و تنظیم Fail2ban برای جلوگیری از حمله رمز عبور
رباتها بهطور مداوم رمز SSH را امتحان میکنند؛ Fail2ban تلاشهای ناموفق را شناسایی و IP مهاجم را موقتاً بلاک میکند.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- نصب و تنظیم Fail2ban برای جلوگیری از حمله رمز عبور
- بسته fail2ban را نصب کنید
- وضعیت bantها را بررسی کنید
چرا این موضوع مهم است؟
موضوع Security یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
اگر تازه سرور خریدهاید، این آموزش نقطه شروع خوبی برای آشنایی با سرویس و جلوگیری از خطاهای رایج است.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — بسته fail2ban را نصب کنید
بسته fail2ban را نصب کنید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 2 — فایل jail.local را از نمونه بسازید
فایل jail.local را از نمونه بسازید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
گام 3 — بخش sshd را فعال کنید
بخش sshd را فعال کنید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 4 — مقدار maxretry و bantime را تنظیم کنید
مقدار maxretry و bantime را تنظیم کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 5 — سرویس را فعال و ریاستارت کنید
سرویس را فعال و ریاستارت کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 6 — وضعیت bantها را بررسی کنید
وضعیت bantها را بررسی کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
نمونه دستورها
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshdنکات امنیتی و بهینهسازی
- رمزها و کلیدها را در فایلهای محافظتشده نگه دارید و هرگز در کد یا مخزن عمومی قرار ندهید.
- لاگها را پایش کنید تا رفتار غیرعادی زودتر شناسایی شود.
- تغییرات را مستند کنید تا در آینده یا هنگام تحویل به تیم دیگر قابل پیگیری باشد.
خطاهای رایج و راهحل
- خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راهحل نیست.
- قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
- خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راهحل نیست.
سؤالات متداول
Fail2ban روی پنل وب هم کار میکند؟
بله، jail برای Nginx و پنلهای مدیریتی وجود دارد و میتوانید الگوی لاگ آنها را اضافه کنید.
چطور یک IP را آزاد کنم؟
با fail2ban-client set sshd unbanip IP.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
گام بعدی پیشنهادی: یک برنامه بکاپ خودکار و مانیتورینگ آپتایم برای همین سرویس راهاندازی کنید.