كيفية استخدام Fail2ban لتأمين خادم Linux الخاص بك

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

مع برنامج منع التطفل مثل fail2ban ، يمكنك فحص سجلات الخادم وإضافة قواعد iptables إضافية لحظر عناوين IP التي بها مشكلات.

اقرأ أيضا: كيفية تثبيت Fail2Ban لحماية SSH على CentOS / RHEL 8

سيوضح لك هذا البرنامج التعليمي كيفية التثبيت fail2ban وإعداد التكوين الأساسي لحماية نظام Linux الخاص بك من هجمات القوة الغاشمة.

متطلبات

تمت كتابة Fail2ban بلغة python والشرط الوحيد هو تثبيت Python:

  • يتطلب فرع Fail2ban 0.9.x Python> = 2.6 أو Python> = 3.2
  • يتطلب فرع Fail2ban 0.8.x Python> = 2.4
  • وصول الجذر إلى نظامك
  • اختياريًا ، iptables أو showewall و sendmail

كيفية تثبيت Fail2Ban في أنظمة Linux

تركيب fail2ban سهل نسبيًا:

قم بتثبيت Fail2Ban على CentOS / RHEL

أولاً ، قم بتحديث الحزم الخاصة بك ، وقم بتمكين ابيل المستودع والتثبيت fail2ban كما هو مبين.

# تحديث يومي. # yum تثبيت الإصدار epel. # yum install fail2ban. 

قم بتثبيت Fail2Ban على Debian / Ubuntu

أولاً ، قم بتحديث الحزم الخاصة بك وتثبيتها fail2ban كما هو مبين.

# apt-get update && apt-get Upgrade -y. # apt-get install fail2ban. 

اختياريًا ، إذا كنت ترغب في تمكين دعم البريد (لإشعارات البريد) ، فيمكنك تثبيت sendmail.

# yum قم بتثبيت Sendmail [تشغيل CentOS / RHEL] # apt-get install sendmail-bin sendmail [Onدبيان / أوبونتو]

لتمكين fail2ban و ارسل بريد استخدم الأوامر التالية:

# systemctl ابدأ fail2ban. # systemctl تمكين fail2ban. # systemctl ابدأ Sendmail. # systemctl قم بتمكين الإرسال. 

كيفية تكوين Fail2ban في أنظمة Linux

بشكل افتراضي، fail2ban يستخدم .conf الملفات الموجودة في /etc/fail2ban/ التي تقرأ أولاً. ومع ذلك ، يمكن تجاوز هذه بواسطة .محلي الملفات الموجودة في نفس الدليل.

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

لغرض هذا البرنامج التعليمي ، سنقوم بنسخ ملف fail2ban.conf ملف fail2ban.local.

# cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local. 

الآن يمكنك إجراء التغييرات في ملف .محلي ملف باستخدام محرر النصوص المفضل لديك. القيم التي يمكنك تعديلها هي:

  • تسجيل مستوى - هذا هو مستوى التفاصيل التي يجب تسجيلها. الخيارات الممكنة هي:
    • حرج
    • خطأ
    • تحذير
    • تنويه
    • معلومات
    • تصحيح
  • logtarget - سجل الإجراءات في ملف معين. النظام الأساسي /var/log/fail2ban.log. ومع ذلك ، يمكنك تغيير هذا إلى:
    • STDOUT - إخراج أي بيانات
    • STDERR - إخراج أي أخطاء
    • SYSLOG - التسجيل المستند إلى الرسائل
    • ملف - الإخراج إلى ملف
  • قابس كهرباء - الدليل الذي سيتم وضع ملف مأخذ التوصيل فيه.
  • ملف - موقع ملف التعريف.

تكوين Fail2ban jail.local

أحد أهم الملفات في fail2ban هو jail.conf الذي يحدد سجونك. هذا هو المكان الذي تحدد فيه الخدمات التي يجب تمكين fail2ban لها.

كما ذكرنا سابقاً .conf يمكن تغيير الملفات أثناء الترقيات ، لذلك يجب عليك إنشاء ملف السجن ملف حيث يمكنك تطبيق التعديلات الخاصة بك.

هناك طريقة أخرى للقيام بذلك وهي ببساطة نسخ ملف .conf ملف مع:

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

في حال كنت تستخدم CentOS أو فيدورا، سوف تحتاج إلى تغيير الخلفية في السجن من "تلقاءي" ل "systemd".

تمكين الخلفية في Fail2ban
تمكين الخلفية في Fail2ban

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

سيقوم ملف السجن بتمكين SSH افتراضيًا لـ ديبيان و أوبونتو، ولكن ليس في CentOS. إذا كنت ترغب في تمكينه ، فما عليك سوى تغيير السطر التالي في /etc/fail2ban/jail.local:

[sshd] تمكين = صحيح.
أوقات الحظر وإعادة المحاولة

يمكنك تكوين الظروف التي يتم بعدها حظر عنوان IP. من اجل ذلك الهدف، fail2ban الاستخدامات بانتيم, اوجد وقت و ماكسريتري.

  • بانتيم - هذا هو عدد الثواني التي سيظل فيها عنوان IP محظورًا (افتراضي 10 دقيقة).
  • اوجد وقت - مقدار الوقت بين محاولات تسجيل الدخول ، قبل حظر المضيف. (إفتراضي 10 دقيقة). بمعنى آخر ، إذا تم ضبط fail2ban على حظر عنوان IP بعد ذلك 3 محاولات تسجيل الدخول الفاشلة ، تلك 3 محاولات ، يجب أن تتم خلال فترة البحث (10 دقيقة).
  • ماكسريتري - عدد المحاولات التي يجب إجراؤها قبل تطبيق الحظر. (إفتراضي 3).
القائمة البيضاء لعنوان IP

بالطبع ، سترغب في إضافة بعض عناوين IP إلى القائمة البيضاء. لتكوين مثل هذه عناوين IP مفتوحة /etc/fail2ban/jail.local باستخدام محرر النصوص المفضل لديك وأزل التعليق عن السطر التالي:

تجاهل = 127.0.0.1/8:: 1. 

بعد ذلك ، يمكنك وضع عناوين IP التي تريد تجاهلها. يجب فصل عناوين IP عن المسافة أو الفاصلة.

تنبيهات البريد الإلكتروني

إذا كنت ترغب في تلقي تنبيهات عبر البريد عند الحدث ، فسيتعين عليك تكوين الإعدادات التالية في /etc/fail2ban/jail.local:

  • تدمير - عنوان البريد الإلكتروني ، حيث ستتلقى الإشعار.
  • اسم المرسل - المرسل الذي ستراه عند استلام الرسالة.
  • مرسل - عنوان البريد الإلكتروني الذي ترسل منه fail2ban رسائل البريد الإلكتروني.

الافتراضي mta (وكيل نقل البريد) على ارسل بريد.

لتلقي إشعارات البريد ، ستحتاج أيضًا إلى تغيير "عمل" الإعداد من:

الإجراء =٪ (action_) s. 

إلى أحد هؤلاء:

الإجراء =٪ (action_mw) s. الإجراء =٪ (action_mwl) s. 
  • ٪ (action_mw) s - سيحظر المضيف ويرسل بريدًا به تقرير whois.
  • ٪ (action_mwl) s - سيحظر المضيف ويوفر معلومات whois وجميع المعلومات ذات الصلة من ملف السجل.

تكوين Fail2ban Jail الإضافي

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

[jail_to_enable]... تمكين = صحيح. 

أين يجب أن تحل محل jail_to_enable مع السجن الفعلي ، على سبيل المثال ، "sshd". في ال السجن ملف ، سيتم تحديد القيم التالية مسبقًا لخدمة ssh:

[sshd] المنفذ = ssh. مسار السجل =٪ (sshd_log) s. 

يمكنك تمكين عامل التصفية الذي سيساعد في تحديد ما إذا كان أحد السطور في السجل فاشلاً. قيمة عامل التصفية هي في الواقع إشارة إلى ملف متبوعًا باسم الخدمة .conf. فمثلا: /etc/fail2ban/filter.d/sshd.conf.

الصيغة هي:

عامل التصفية = الخدمة. 

فمثلا:

عامل التصفية = sshd. 

يمكنك مراجعة عوامل التصفية الموجودة في الدليل التالي: /etc/fail2ban/filter.d/.

استخدم fail2ban-client

يأتي Fail2ban مع عميل يمكن استخدامه لمراجعة التكوين الحالي وتغييره. نظرًا لأنه يوفر العديد من الخيارات ، يمكنك الاطلاع على دليله باستخدام:

# رجل fail2ban-client 

هنا سترى بعض الأوامر الأساسية التي يمكنك استخدامها. لمراجعة الوضع الحالي لـ fail2ban أو لسجن معين ، يمكنك استخدام:

# fail2ban-client status. 

ستبدو النتيجة مشابهة لهذا:

تحقق من حالة Fail2ban
تحقق من حالة Fail2ban

بالنسبة للسجن الفردي ، يمكنك تشغيل:

# fail2ban-client status sshd. 

في لقطة الشاشة أدناه ، سترى أنني قد فشلت عمدًا في عمليات تسجيل دخول متعددة ، لذا يمكن لـ fail2ban حظر عنوان IP الذي كنت أحاول الاتصال منه:

تحقق من حالة Fail2ban SSH
تحقق من حالة Fail2ban SSH
استنتاج

Fail2ban هو نظام منع اقتحام ممتاز وموثق جيدًا ، ويوفر أمانًا إضافيًا لنظام Linux الخاص بك. يتطلب الأمر بعض الوقت لتعتاد على إعداده وبناء الجملة ، ولكن بمجرد أن تتعرف عليه ، ستشعر بالحرية في تغيير قواعده وتوسيعها.

Teachs.ru