كيف تحمي خادمك باستخدام Fail2Ban في Linux

يعد تأمين الخادم أولوية قصوى لأي عمل أو مؤسسة. يعد Fail2Ban أحد أهم الأدوات في مجموعة أدوات مسؤول النظام. يشرح هذا الدليل ماهية Fail2Ban وكيف يمكنك حماية خادمك باستخدام Fail2Ban في Linux الخاص بك من الهجمات.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

ما هو Fail2Ban؟

Fail2Ban هي أداة لمنع التطفل تراقب ملفات السجل وتحظر عناوين IP التي تظهر علامات على نشاط ضار. يقوم بذلك عن طريق إنشاء “عوامل تصفية” تطابق أنماطًا معينة في ملفات السجل وتنفيذ إجراءات ، مثل حظر عنوان IP المخالف.

لماذا استخدم Fail2Ban في Linux؟

هناك عدة أسباب لاستخدام Fail2Ban في Linux. يمكن:

  • يوفر لك الوقت عن طريق الحظر التلقائي لعناوين IP الضارة.
  • تساعد في تأمين الخادم الخاص بك عن طريق تقليل فرص نجاح الهجوم.
  • يمنحك راحة البال مع العلم أن خادمك يخضع للمراقبة والحماية.

تثبيت Fail2Ban في Linux

بشكل افتراضي ، يتوفر Fail2Ban في مستودعات Ubuntu. قم بتثبيته باستخدام apt.

sudo add-apt-repository universe sudo apt update && sudo apt install fail2ban -y

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

سيقوم Fail2Ban بتعيين خدمته في الخلفية ، لكن systemd سيعطلها افتراضيًا. يمكنك البدء وتمكينه بالأوامر التالية:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

تحقق من تشغيل Fail2Ban باستخدام الأمر التالي:

sudo systemctl status fail2ban

سترى ناتجًا مشابهًا للصورة أدناه.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

تكوين Fail2Ban في Linux

يحتوي الدليل “/ etc / fail2ban” على ملفات التكوين الخاصة بـ Fail2Ban. بشكل افتراضي ، يأتي Fail2Ban مع ملف “jail.conf” يحتوي على الإعدادات التي سيتم تطبيقها على جميع الخدمات.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

ومع ذلك ، فمن الممارسات الجيدة إنشاء ملف “jail.local” محلي وتجاوز الإعدادات في “jail.conf” ، حيث ستفقد أي تغييرات تجريها على “jail.conf” كلما تم تحديث البرنامج.

يمكنك إنشاء ملف “jail.local” الخاص بك باستخدام الأوامر التالية:

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

افتح ملف jail.local لتحريره:

sudo nano /etc/fail2ban/jail.local

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

من المفيد أن تعرف: تعلم كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام LINUX.

استكشاف ملف jail.local

سترى ناتجًا مشابهًا كما هو موضح أدناه وقد تغمره عدد الخيارات المتاحة. لكن لا تقلق ، فنحن نوجهك عبر أهم الخيارات.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

سترى رمز “#” في بداية السطر ، مما يشير إلى أنه تعليق. يستخدم Fail2Ban هذه لشرح ما يفعله إعداد معين. يمكنك تمكين بعض الإعدادات هنا عن طريق إزالة هذا الرمز.

يحتوي قسم “[DEFAULT]” على الخيارات المطبقة على جميع السجون. هذا هو التكوين العام لـ Fail2Ban. تُظهر لقطة الشاشة التالية مثالاً على ذلك.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

هناك أيضًا أقسام أخرى تبدأ باسم الخدمة. ينطبق هذا السجن على خدمة معينة أعلى السجون العالمية.

اقرأ أيضا:  كيفية عكس المحاكاة والتحكم في الـ Android عن بعد من Ubuntu

على سبيل المثال ، هناك قسم لسجن “sshd”. يحتوي هذا القسم على الخيارات الخاصة بخدمة sshd.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

نصيحة: يمكنك أيضًا معرفة المزيد حول تقوية الخادم عن طريق تأمين خادم SSH الخاص بك.

تمكين ميزة Autoban

انتقل إلى إعداد “bantime = 1h” وقم بإزالة الرمز “#” في بداية السطر لتمكينه. يعيّن هذا السطر المدة التي سيستغرقها Fail2Ban في تعطيل عنوان IP. الوحدة الافتراضية هي ساعة واحدة. يمكنك أيضًا استخدام وحدات أخرى ، مثل الدقائق (m) أو الأيام (d) أو حتى الأسابيع (w).

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

يمكنك زيادة أو تقليل هذه القيمة كما تراه مناسبًا. على سبيل المثال ، يمكنك تغيير هذه القيمة إلى 30 مترًا لتقليل مدة الحظر إلى 30 دقيقة.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

تغيير الطول الافتراضي لنافذة تسجيل الدخول

الإعدادات التالية هي “maxretry” و “findtime”. إنهم يحددون عدد محاولات تسجيل الدخول التي يمكن للمهاجم القيام بها قبل أن يحظر Fail2Ban عنوان IP الخاص به.

القيم الافتراضية لـ “maxretry” و “findtime” هي 5 و 10 m. إذا فشل IP في المصادقة خمس مرات في عشر دقائق ، فسيقوم Fail2Ban بحظره طوال المدة المحددة بواسطة إعداد bantime.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

يمكنك تغيير هذه القيم إلى ما تريد. على سبيل المثال ، يمكنك ضبط “maxretry” على 3 و “findtime” على 5m: سيعطل Fail2Ban عنوان IP إذا فشل في المصادقة ثلاث مرات في خمس دقائق.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

تمكين ميزة إشعار Fail2Ban في Linux

الإعدادات التالية هي destemail و sendername و mta. هذه الإعدادات هي ما سيستخدمه Fail2Ban لتكوين إشعارات البريد الإلكتروني.

  • إعداد البريد الإلكتروني هو عنوان البريد الإلكتروني الذي سيرسل البرنامج إشعاراته إليه.
  • اسم المرسل هو الاسم الذي سيظهر في الحقل “من” في البريد الإلكتروني للإشعار.
  • mta هو وكيل نقل البريد الذي سيستخدمه Fail2Ban لإرسال رسائل البريد الإلكتروني. mta الافتراضي هو sendmail ، ولكن يمكنك تغييره إلى شيء آخر مثل mail.

إذا كنت ترغب في تلقي إشعارات البريد الإلكتروني ، فأنت بحاجة إلى إلغاء التعليق على هذه السطور وإدخال القيم المناسبة كما هو موضح.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

عند حدوث حظر ، ستتلقى إشعارًا بالبريد الإلكتروني يحتوي على تفاصيل حول الحظر كما هو موضح.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

إنشاء أوامر حظر مخصصة

الإعداد التالي هو “action_ =.” يحدد هذا الإجراء الذي يتخذه Fail2ban عندما يحظر عنوان IP. الإجراء الافتراضي هو استخدام iptables لحجب IP حتى انقضاء “bantime”.

يمكنك أيضًا استخدام إجراءات أخرى ، كما هو موضح أدناه. يتمسك هذا البرنامج التعليمي بالإعداد الافتراضي من أجل البساطة.

  • action_mw: يرسل إشعارًا بالبريد الإلكتروني عندما يتم حظر عنوان IP ، مرفقًا بمعلومات WHOIS ذات الصلة.
  • action_mwl: يرسل إشعارًا بالبريد الإلكتروني عند حظر عنوان IP ، مرفقًا بمعلومات WHOIS ذات الصلة وإدخالات ملف السجل التي أدت إلى الحظر.
  • action_xarf: يرسل إشعارًا بالبريد الإلكتروني بتنسيق X-ARF عندما يتم حظر عنوان IP مع إدخالات ملف السجل التي أدت إلى بدء الحظر.
اقرأ أيضا:  كيفية إعداد خادم VNC في Ubuntu

تتوفر العديد من الإجراءات الأخرى ، ولكن من المستحيل تغطيتها جميعًا في هذا البرنامج التعليمي. يمكنك أن تقرأ عن جميع الإجراءات المتاحة في وثائق Fail2ban.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

تمكين التكوين الخاص بالخدمة

بصرف النظر عن تكوين السلوك الافتراضي لـ Fail2ban ، من الممكن أيضًا استخدام “ملفات التصفية” المعدة مسبقًا لبعض خدمات الإنترنت الشائعة. هذه ملفات صغيرة كتبها المطورون للبحث عن مخرجات سجل معينة لخادم معين.

على سبيل المثال ، يحتوي ملف “apache-shellshock.conf” على جميع الإعدادات الضرورية للسماح لـ Fail2ban بالتحقق من أي محاولات ضارة لإنشاء خطأ shellshock.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

يمكنك العثور على جميع ملفات التصفية المتاحة لنظامك من خلال سرد الدليل “/etc/fail2ban/filter.d”:

ls /etc/fail2ban/filter.d

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

بمجرد معرفة المرشحات التي تريد استخدامها ، أخبر Fail2ban بتحميلها أثناء بدء التشغيل عن طريق فتح ملف “jail.local” الخاص بك:

sudo nano /etc/fail2ban/jail.local

قم بإنشاء مساحة في “jail.local” حيث يمكنك تنشيط عوامل التصفية الجديدة الخاصة بك. أقوم بإنشاء خاصتي بين عنوان التعليق والكتلة [INCLUDES].

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

أضف عوامل التصفية التي تريد تنشيطها. على سبيل المثال ، ما يلي هو مقتطف أستخدمه في التكوين الخاص بي:

# Comments: use '#' for comment lines and ';' (following a space) for inline comments
 
[sshd]
enabled = true
 
[nginx-bad-request]
enabled = true
 
[bitwarden]
enabled = true
 
[INCLUDES]

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

بمجرد الانتهاء من ذلك ، احفظ وأغلق الملف. أعد تشغيل fail2ban لتطبيق التغييرات.

sudo systemctl restart fail2ban

اختبار التكوين الخاص بك

الآن بعد أن قمت بتهيئة Fail2Ban في Linux، حان الوقت لاختباره.

إن أبسط طريقة لاختبار التكوين الخاص بك هي محاولة تسجيل الدخول باستخدام كلمة مرور غير صحيحة عدة مرات في تتابع سريع. يمكنك استخدام اتصال SSH للقيام بذلك.

على جهاز التخلص ، حاول SSH في خادم Fail2ban الخاص بك باستخدام اسم مستخدم “admin”. استبدل “your_server_ip_address” بعنوان IP الفعلي لخادم Fail2ban الخاص بك.

ssh admin@your_server_ip_address

أدخل كلمة مرور عشوائية عند مطالبتك بذلك وكررها عدة مرات. بعد عدة محاولات ، سترى رسالة تفيد بأن الخادم رفض محاولة الاتصال الخاصة بك.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

بصرف النظر عن استخدام ssh ، يمكنك أيضًا اختبار ملفات التصفية الأخرى في Fail2ban عن طريق تشغيل “حالة الفشل”. في حالتي ، أستخدم عامل تصفية “nginx-bad-request” الذي يكتشف ما إذا كان هناك مضيف يغمر الخادم بطلبات غير صالحة.

اقرأ أيضا:  كيفية تشفير الملفات في Linux باستخدام Tomb

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

مع العلم بذلك ، يمكنك اختبار هذه الميزة عن طريق إرسال طلبات فارغة عمداً إلى خادم الويب الخاص بك باستخدام curl:

curl -H "User-Agent:" -H "Host:" https://yourwebsite.com -v

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

التحقق من إجراءات Fail2Ban في Linux

أخيرًا ، قم بتشغيل الأمر التالي على خادم Fail2ban للتحقق من أن fail2ban قد أضاف القواعد الضرورية إلى iptables.

يقوم الأمر grep بتصفية إخراج الأمر iptables. يخبر الخيار -S iptables أن يطبع القواعد بتنسيق يمكن تحليله بسهولة.

sudo iptables -S | grep f2b

سترى ناتجًا مشابهًا لما في الصورة أدناه. تخبر الوسيطة “–reject-with icmp-port-unreachable” iptables بإرسال رسالة لا يمكن الوصول إلى منفذ ICMP إلى العميل عندما يحاول الاتصال. يمكنك أيضًا مشاهدة عناوين IP للأجهزة التي حظرها الخادم.

كيف تحمي خادمك باستخدام Fail2Ban في Linux - %categories

نصيحة: يجب عليك أيضًا استخدام SELinux لتأمين خادم Linux الخاص بك.

أسئلة شائعة

س1: لماذا أحصل على إشعار فارغ عبر البريد الإلكتروني عندما يحظر Fail2ban عنوان IP؟
الجواب: إذا تلقيت إشعارًا فارغًا بالبريد الإلكتروني ، فمن المحتمل أنك لم تقم بتهيئة خادم البريد بشكل صحيح. تحقق من تهيئة خادم البريد وتأكد من قدرته على إرسال البريد الإلكتروني.

س2: كيف يمكنني إلغاء حظر عنوان IP؟
الجواب: أولاً ، ابحث عن السجن حيث عنوان IP محظور حاليًا: sudo fail2ban-client status <jail_name> ، ثم قم بإلغاء حظر عنوان IP عن طريق تشغيل ما يلي: sudo fail2ban-client set <jail_name> unsanip <ip_address>.

س3: كيف يمكنني عرض ملف سجل fail2ban؟
الجواب: قد ترغب في عرض ملف سجل fail2ban لاستكشاف المشكلات وإصلاحها أو لمعرفة سبب حظر عنوان IP. يحتوي الملف “/var/log/fail2ban.log” على جميع السجلات التي تم إنشاؤها بواسطة fail2ban. استخدم الأمر cat لعرض ملف سجل fail2ban: cat /var/log/fail2ban.log.

س4: لقد قمت بتمكين ملفات تصفية متعددة. لماذا كلهم لا يعملون؟
الجواب: تحدث هذه المشكلة على الأرجح بسبب قيام عامل تصفية بالكتابة فوق ملف مختلف سبقه. تتمثل إحدى طرق إصلاح ذلك في إنشاء ملف الفلتر الخاص بك عن طريق الجمع بين عدة عوامل تصفية معًا.

س5: هل سيحمي Fail2ban الخادم الخاص بي من هجوم DoS؟
الجواب: نعم و لا. بالنسبة للجزء الأكبر ، سيتمكن Fail2ban من منع أي عنوان IP يقوم بإرسال طلبات غير صالحة إلى الخادم الخاص بك. ومع ذلك ، فإن أحد أكبر قيود هذا البرنامج هو أنه لا يمكنه العمل في الأحداث التي لا تنتج إدخال سجل. على هذا النحو ، لا يزال من المهم تأمين خادم Linux الخاص بك باستخدام أدوات أخرى لهذه الأشكال من الهجمات.

قد يعجبك ايضا