Fail2ban يراقب سجلات الخدمات وييحظر مؤقتاً العناوين التي تتصرف بشكل مسيء (محاولات SSH متكررة، مسح HTTP، إلخ). يكمّل UFW وتأمين SSH.
المتطلبات
- Ubuntu/Debian (أو مشتق) مع
sudo - خدمة للحماية (مثل
sshd،nginx)
التثبيت
Bashsudo apt update && sudo apt install -y fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban
إعداد أساسي
ضع الملفات المخصصة في /etc/fail2ban/jail.d/ لتجنب الكتابة فوقها عند التحديث.
أنشئ /etc/fail2ban/jail.d/local.conf:
INI1[DEFAULT] 2bantime = 1h 3findtime = 10m 4maxretry = 5 5ignoreip = 127.0.0.1/8 ::1 6 7[sshd] 8enabled = true 9port = ssh 10logpath = %(sshd_log)s 11backend = %(sshd_backend)s
إذا غيّرت منفذ SSH، استبدل port = ssh بالمنفذ (مثل port = 2222).
أعد التحميل:
Bashsudo systemctl restart fail2ban sudo fail2ban-client status sudo fail2ban-client status sshd
حماية Nginx (طلبات HTTP مبالغ فيها)
INI[nginx-http-auth] enabled = true port = http,https logpath = /var/log/nginx/error.log
عدّل مسارات السجلات حسب تثبيتك.
جيد أن تعرف
- أضف IP الثابت في
ignoreipلتجنب حظر نفسك أثناء الاختبار. - راقب
sudo fail2ban-client status sshdبعد النشر. - الحظر مؤقت (
bantime).
إلغاء حظر يدوي
Bashsudo fail2ban-client set sshd unbanip 198.51.100.10
استكشاف الأخطاء
- لا يوجد حظر: تحقق من
enabled = trueوصحةlogpath. - حظرت نفسك: استخدم كونسول الاستضافة أو IP آخر وعدّل
ignoreipأو ألغِ الحظر.