قاعدة المعرفة

كيفية تفعيل وإعداد Fail2Ban لحماية السيرفر من محاولات الدخول المتكررة

طباعة
0

يُعدّ Fail2Ban من الأدوات الفعّالة لحماية السيرفرات العاملة بأنظمة Linux، إذ يراقب سجلات الدخول ويكتشف محاولات الدخول الفاشلة المتكرّرة (مثل هجمات التخمين على SSH) ثم يحظر العناوين المهاجمة مؤقتًا عبر الجدار الناري.

المتطلبات قبل البدء

  • صلاحية وصول root أو sudo.
  • اتصال إنترنت فعّال لتثبيت الحزم.
  • معرفة منفذ SSH المستخدم (الافتراضي 22).

تثبيت Fail2Ban حسب نوع التوزيعة

توزيعات RHEL (AlmaLinux / Rocky / CloudLinux / CentOS)
sudo dnf install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

مسار سجل الدخول الافتراضي في هذه الأنظمة هو:

/var/log/secure
توزيعات Debian وUbuntu
sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

مسار سجل الدخول الافتراضي في هذه الأنظمة هو:

/var/log/auth.log

الإعداد الأساسي (مشترك لجميع التوزيعات)

  1. إنشاء نسخة إعداد محلية:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  1. فتح الملف للتحرير:
sudo nano /etc/fail2ban/jail.local
  1. تفعيل الحماية (Jail) الخاصة بـ SSH كما يلي:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # في Ubuntu/Debian
# logpath = /var/log/secure # في AlmaLinux/RHEL/Rocky
maxretry = 5
findtime = 600
bantime = 600

شرح إعدادات الحماية (Jail)

  • [sshd]: وحدة الحماية الخاصة بخدمة SSH.
  • enabled = true: لتفعيل المراقبة على الخدمة.
  • port = ssh: رقم المنفذ (عادة 22).
  • filter = sshd: يحدد الفلتر الذي يطابق رسائل الدخول الفاشلة.
  • logpath: مسار السجل الذي تتم مراقبته. في Ubuntu/Debian يكون auth.log، وفي RHEL/AlmaLinux يكون secure.
  • maxretry = 5: عدد المحاولات قبل الحظر.
  • findtime = 600: المدة الزمنية لحساب المحاولات (10 دقائق).
  • bantime = 600: مدة الحظر (10 دقائق).
نصيحة: يمكنك زيادة مدة الحظر إلى ساعة مثلًا بتغيير bantime إلى 3600.
sudo systemctl restart fail2ban

التحقق من الحالة والاختبار

sudo fail2ban-client status
sudo fail2ban-client status sshd
تنبيه: تأكد من صحة logpath حسب توزيعتك، وإلا فلن يتم اكتشاف المحاولات الفاشلة.

أخطاء شائعة وحلولها

  • bash: nano: command not found
    الحل: تثبيت محرر nano
    sudo dnf install nano -y # في RHEL/AlmaLinux
    sudo apt install nano -y # في Ubuntu/Debian
  • Failed to start fail2ban.service: Unit not found
    الحل: تحديث المستودعات وإعادة تحميل الخدمات
    sudo dnf update -y
    sudo apt update
    sudo systemctl daemon-reload
    sudo systemctl enable --now fail2ban
  • Fail2Ban لا يحظر أي عناوين:
    السبب غالبًا خطأ في logpath. تأكد من المسار الصحيح وأعد تشغيل الخدمة.
هل تحتاج مساعدة؟ إذا واجهت أي مشكلة أثناء الإعداد، لا تتردد في فتح تذكرة دعم.
هل كانت هذه الإجابة مفيدة؟