ماذا تفعل هذه الوحدة #
fail2ban هو الحارس الذي يراقب سجلّات خادمك، وعندما يكتشف محاولات وصول خبيثة (على سبيل المثال، الكثير من محاولات كلمة المرور الفاشلة عبر SSH)، يحظر تلقائيًا عنوان IP المسؤول لفترة من الوقت. يُنظَّم كل خدمة مراقَبة في سجن (jail) (على سبيل المثال sshd).
تمنحك وحدة fail2ban السيطرة على حالات الحظر هذه في وقت التشغيل، دون الحاجة لتذكّر صيغة fail2ban-client: استعلم عن حالة السجون، وأدرِج من المحظور، وتحقق مما إذا كان عنوان IP محدّد مُقفَلًا، واحظر أو ارفع الحظر يدويًا، وافتح قفل كل شيء دفعة واحدة في حالة طوارئ، وأعد تحميل الإعداد بعد أي تغيير.
تعمل هذه الوحدة على fail2ban مثبَّت وقيد التشغيل بالفعل. جميع الأوامر الفرعية تستعلم عن حالة الخدمة أو تعدّلها، لذا فهي تحتاج إلى امتيازات root (استخدم sudo). إذا مُنعت أنت نفسك بسبب عنوان IP الخاص بك، فانتقل مباشرة إلى فتح القفل في الطوارئ.
المهام الشائعة #
اختر ما تريد فعله. كل وصفة تأتي بالأمر مكتوبًا بالفعل — ما عليك سوى تغيير عنوان IP أو السجن بما يخصّك، والضغط على نسخ.
1
عرض الحالة والسجون
تحقق بنظرة واحدة مما إذا كان fail2ban نشطًا وكم عدد المحظورين.
اتصل عبر SSH بخادمك بالمستخدم ubuntu واطلب الحالة العامة:
$ sudo imaxe fail2ban statusهل تريدها بصيغة قابلة للقراءة آليًا، لسكربت أو لوحة معلومات؟ أضِف --json:
$ sudo imaxe fail2ban status --jsonsshd) وعدد عناوين IP المحظورة في كل منها.2
عرض عناوين IP المحظورة
أدرِج حالات الحظر النشطة، من جميع السجون أو من سجن محدّد.
كل عناوين IP المحظورة، من جميع السجون دفعة واحدة:
$ sudo imaxe fail2ban bannedهل يهمّك سجن واحد فقط؟ حدّده كوسيط:
$ sudo imaxe fail2ban banned sshd3
التحقق مما إذا كان عنوان IP محظورًا
اعرف في أي سجون يكون عنوان محدّد مُقفَلًا.
اسأل مباشرة عن عنوان IP؛ سيخبرك في أي سجون يظهر محظورًا:
$ sudo imaxe fail2ban check 203.0.113.74
حظر عنوان IP أو رفع الحظر عنه
اقفِل يدويًا عنوانًا مُسيئًا أو حرّر مستخدمًا شرعيًا.
احظر عنوان IP في سجن محدّد (إذا كان هناك سجن واحد فقط، فيُستنتج تلقائيًا):
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdهل حظرت شخصًا شرعيًا؟ ارفع عنه الحظر من جميع السجون دفعة واحدة:
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check على العنوان ذاته.5
فتح قفل كل شيء (طوارئ)
مُنعت من الدخول: حرّر جميع عناوين IP من جميع السجون.
إذا عَلِق عنوان IP الخاص بك واحتجت لاستعادة الوصول فورًا، فارفع الحظر عنها جميعًا. أضِف --yes لتخطّي التأكيد:
$ sudo imaxe fail2ban unban-all --yesبعد أي تغيير في إعداد السجون، أعد تحميله ليُطبَّق:
$ sudo imaxe fail2ban reloadunban-allإنها عملية تدميرية للحظر: تترك جميع عناوين IP دون قفل، بما فيها الخبيثة. استخدمها فقط لاستعادة الوصول في حالة طوارئ وتحقق بعدها من الحالة باستخدام imaxe fail2ban status.
صيغة الاستخدام #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]جميع الأوامر الفرعية تتطلب امتيازات root (استخدم sudo) لأنها تستعلم عن حالة fail2ban أو تعدّلها عبر fail2ban-client. أضِف --json إلى status أو banned أو check للحصول على مخرجات قابلة للقراءة آليًا، صالحة لكتابة السكربتات.
الأوامر الفرعية #
| الأمر الفرعي | ماذا يفعل | الرايات المعنية |
|---|---|---|
| status | حالة fail2ban: نشط، والسجون وعدد عناوين IP المحظورة لكل سجن. | --json |
| banned | يُدرِج عناوين IP المحظورة (جميع السجون أو سجن محدّد). | --json |
| check | يبيّن في أي سجون يكون عنوان IP محظورًا. | --json |
| ban | يحظر عنوان IP يدويًا في سجن. | --jail |
| unban | يرفع الحظر عن عنوان IP من جميع السجون. | — |
| unban-all | طوارئ: يرفع الحظر عن كل عناوين IP من جميع السجون. | --yes |
| reload | يعيد تحميل إعداد fail2ban (يتحقق من صحّة jail.local). | — |
الوسائط والرايات #
| الوسيط / الراية | النوع | الافتراضي | الوصف |
|---|---|---|---|
| <ip> مطلوب | string | — | عنوان IP المراد العمل عليه. إلزامي في check وban وunban. |
| <jail> | string | الكل | في banned، السجن المحدّد المراد إدراجه. بدون وسيط، تُدرَج جميع السجون. |
| --jail | string | تلقائي | في ban، السجن الوجهة للحظر. إذا كان هناك سجن واحد فقط، فيُستنتج تلقائيًا. |
| --yes | bool | false | في unban-all، يؤكّد دون سؤال (عملية تدميرية للحظر). |
| --json | bool | false | في status/banned/check، يُصدِر النتيجة كـ JSON على stdout. |
الملفات والمسارات #
| المسار | المحتوى |
|---|---|
| /etc/fail2ban/jail.local | الإعداد المحلي لـ fail2ban: السجون النشطة، وأوقات الحظر والعتبات. ما يتحقق منه reload. |
| /var/run/fail2ban/fail2ban.sock | مقبس التحكم الذي يتحدث عبره fail2ban-client مع الخدمة. |
| /var/log/fail2ban.log | سجلّ fail2ban نفسه: حالات الحظر ورفع الحظر وإعادة التحميل. |
رموز الخروج والسجلّات #
يُرجِع كل تنفيذ رمزًا يمكنك التحقق منه باستخدام echo $? — مفيد للتسلسل في السكربتات:
تابِع السجلّ مباشرةً أثناء التنقيح:
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logحل المشكلات #
| العَرَض | السبب المحتمل | الحل |
|---|---|---|
| يظهر SERVICE (رمز 3) | fail2ban متوقّف أو المقبس لا يستجيب. | شغّل الخدمة باستخدام systemctl start fail2ban وأعِد المحاولة. |
| يظهر JAIL (رمز 4) | السجن في --jail غير موجود أو هناك عدة سجون ولا يمكن استنتاجه. | اطّلع على السجون باستخدام imaxe fail2ban status وحدّد الصحيح في --jail. |
| يظهر RELOAD (رمز 5) | هناك خطأ في الصياغة في jail.local. | صحّح /etc/fail2ban/jail.local وأعِد إطلاق reload. |
| مُنعت من الدخول عبر SSH | عنوان IP الخاص بك راكم الأخطاء وأصبح محظورًا في sshd. | من وسيلة أخرى، ارفع عنه الحظر باستخدام unban أو حرّرها جميعًا باستخدام unban-all --yes. |
هل واجهتك مشكلة مع وحدة Fail2ban؟
راسلنا مرفقًا مخرجات «imaxe <module> status --json» وسنرد عليك بسرعة.