لا شك أنّ هجمات تشكّل ازعاج لمدير الشبكة أو الموقع. هناك عدّة برامج تساعد في عملية التّصدي لهذه الهجمات ولكن من أفضل هذه البرامج وأسهلها في التعامل هو fail2ban.
لنشمّر عن سواعدنا نبدأ بعمليّة تنصيب وتجهيز البرنامج:
تنصيب برنامج fail2ban
apt-get install fail2ban
هذا سيقوم بتنصيب الحزمة
موقع ملفات التعريف الخاصّة بالحزمة موجودة في
/etc/fail2ban
عند عمل عرض للملفات نلاحظ وجود الملفات التالية
$ls
action.d fail2ban.conf filter.d jail.conf jail.local
الملف الذي سوف نتعامل معه من أجل عمل تخصيص في عمل البرنامج هو
jail.local
هذه مقاطع من الملف
[DEFAULT]
هنا القسم الافتراضي
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
الخاصّية التالية هي من أجل العناوين التي سيتم استثناؤها من قبل البرنامج
ignoreip = 127.0.0.1
هنا مدّة الحظر على العناوين التي قامت بالمخالفة
bantime = 86400
هنا عدد مرّات السّماح لعنوان بالفشل في ادخال كلمة المرور
maxretry = 3
هنا القسم الخاص بال SSH
[ssh]
لتفعيل القسم
enabled = true
المنفذ
port = ssh
filter = sshd
مكان السّجلات التي سيقوم البرنامج بمراقبتها
logpath = /var/log/auth.log
عدد مرات تكرار المحاولة
maxretry = 2
هنا القسم الخاص بالاباتشي
#[apache]
#enabled = true
#port = http
#filter = apache-auth
#logpath = /var/log/apache*/*error.log
#maxretry = 5
نلاحظ من خلال المقاطع أعلاه أن التعامل مع البرنامج سهل للغاية كذلك نلاحظ أنّ البرنامج يمكن استخدامه ليس فقط من أجل سسش بل يمكن استخدامه أيضاً من اجل خدمات أخرى مثل الاباتشي أو برامج نقل الملفات.
كيف يعمل البرنامج؟
من خلال مراقبة السّجلّات يقوم بالبرنامج بقراءة المقاطع المتعلقة بفشل عملية تسجيل دخول مثلاً إذا بلغ عدد مرات الفشل في فترة زمنية قصيرة العدد المسموح به سيتم إنشاء قاعدة ابي تابلز تحظر اتصال ذلك العنوان بالخادم لاي خدمة للمدّة المعيّنة في الملف.
لنفرض السيناريو التالي:
لديك 3 عناوين 2 في العمل والآخر في المنزل وتريد السماح لهذه العناوين بالاستمرار بالمحاولة حتى لو تم تجاوز عدد المرات المسموح بها كل المطلوب هو أن تقوم بإضافة هذه العناوين للملف
jail.local
كالآتي
ignoreip = 127.0.0.1 1.1.1.1 2.2.2.2 3.3.3.3
وهكذا نكون جاهزين للبدء في استخدام البرنامج
الآن لبدء البرنامج – الخدمة نقوم بتنفيذ الأمر التالي:
/etc/init.d/fail2ban start
ملاحظة: لا تقم أبداً بتعديل الملف jail.conf وسبب ذلك كما هو مذكور في بداية الملف حتى تتجنّب عملية الدمج خلال الترقية.
[...] 6- استخدم برنامج ولكن قم بتخصيصه بشكل مشدّد فهو سوف يساعد بشكل كبير واقول هذا من تجربة فعلية ولكن ضع في الحسبان ان الهجمات القادمة من botnet اذا كانت هذه ال bitnet كبيرة مثلاً 10000 او 100000 او أكثر فستكون فعاليته اقل. مثلاً برنامج fail2ban [...]
ألا تعتقد أن port knocking يفي بالغرض تماماً ويحمي الشبكة من botnet الموجّه للـ SSH ؟
بالتأكيد ال port knocking مفيد في مكافحة هجمات brute force الموجّهة ضدّ ال ssh . ففي حالة وجوده خدمة ال ssh لا تحتاج إلى صرف أي جهد في عملية التّصدي لهذه الهجمات لأن TCP stack سوف يفي بالغرض. إلّا في حالة معرفة المهاجم إلى سلسلة الطرقات الصحيحة.
لكن الاعتماد على port knocking وحده فكرة قد تشكّل خطورة لأنها تخالف مبدأ الدفاع بعمق. هذا المبدأ أساسي في أمن المعلومات يقوم به المدافع بوضع أكثر من حماية للمصادر لديه بحيث لو سقطت حماية استلمت حماية أخرى مسؤولية الدّفاع وهكذا.
طبعاً خبير ال Port Knocking هو أخي العزيز أبو محمد b!n@ry وهو ما شاء الله بحر في هذا الموضوع وإن شاء الله يسمح وقته بالمرور على المدوّنة ومشاركتنا رأيه.