
مركزة أو توزيع قوائم الحظر الخاصة بـ IPset
هذا البرنامج يسمح لك بمركزية وتوزيع قوائم الحظر لعناوين IP.
إذا كنت تدير خادمًا على الإنترنت، فمن المحتمل جدًا أنك واجهت هجومًا أو أكثر من هجمات القوة الغاشمة. ليست مشكلة، فقط قم بتثبيت fail2ban. تم.
ولكن إذا كنت تدير خوادم متعددة، كل منها يعمل بمثيل fail2ban الخاص به، فسيكون لديهم جميعًا عناوين IP مختلفة في قائمة الحظر. أليس من الجيد أن يكون لديك قائمة حظر مشتركة عبر جميع مثيلات fail2ban؟ أو في حال كانت جميع أجهزتك خلف موجه أو جدار ناري تتحكم فيه بنفسك، أليس من الجيد إسقاط حركة المرور الضارة عند حافة شبكتك؟
هذا بالضبط ما يساعد vallumd على تحقيقه.
يتصل Vallumd بوسيط MQTT، ويقرأ الرسائل التي تحتوي على عناوين IP، ويضيف أو يحذف تلك العناوين من أو إلى ipset. بهذه البساطة.
هذا يعني أنه ليس مفيدًا بمفرده، لكنه يجعل vallumd مرنًا جدًا. يمكنك أن تقرر بنفسك أي نوع من قواعد iptables تريد الإشارة إلى ipset فيها. دمجه مع fail2ban بسيط مثل إنشاء إجراء جديد يستخدم mosquitto_pub لإرسال رسالة إلى وسيط MQTT الخاص بك. ونظرًا لوجود مكتبات MQTT لمعظم اللغات الشائعة، فلا ينبغي أن يكون من الصعب جدًا دمجه مع نظام IDS أو IPS أو Honeypot المفضل لديك.
يأتي اسم vallumd من الكلمة اللاتينية "vallum" والتي تعني جدار. وهذا ما يفعله vallumd: بناء جدار لحماية إمبراطوريتك الرقمية.
أفضل طريقة لتثبيت أي حزمة هي باستخدام مدير حزم توزيعتك. ومع ذلك، نظرًا لأن هذا المشروع صغير جدًا، لم يتم تضمينه في العديد من التوزيعات بعد.
حزمة تتبع فرع git الرئيسي متاحة في AUR.
تأكد من تمكين مستودع EPEL.
sudo yum -y install cmake3 ipset-devel mosquitto-devel openssl-devel pkgconfig '@Development Tools'
يمكنك الآن إنشاء حزمة RPM باستخدام cpack:
git clone https://codeberg.org/stintel/vallumd.git
cd vallumd
cmake3 .
cpack3 -G RPM
sudo yum -y localinstall build/*.rpm
تم اختبار البناء على CentOS 7.
يمكنك إنشاء حزمة DEB باستخدام cpack:
sudo apt-get -y install build-essential cmake file libipset-dev libmosquitto-dev libssl-dev pkg-config
git clone https://codeberg.org/stintel/vallumd.git
cd vallumd
cmake .
cpack -G DEB
sudo dpkg -i build/*.deb
تم اختبار البناء على Debian 10, 11, 12, 13 و Ubuntu 18.04, 20.04, 22.04, 24.04.
يمكنك العثور على ebuild مباشر لـ vallumd في Gentoo overlay
إذا كنت تستخدم لقطة OpenWrt DD أو LEDE، فإن vallumd متاح في خلاصة الحزم، ويمكن تثبيته باستخدام opkg:
opkg update
opkg install vallumd
التثبيت اليدوي سهل جدًا. المتطلبات:
التعليمات:
git clone https://codeberg.org/stintel/vallumd.git
cd vallumd
cmake .
make
make install
لاستخدام vallumd، تحتاج إلى وسيط MQTT، مثل Mosquitto. اعتمادًا على إعداداتك، يمكنك تشغيله على نفس المضيف الذي يشغل vallumd، ولكن هذا ليس شرطًا.
الشيء التالي الذي تحتاجه هو IPset. لمنحك تحكمًا كاملاً في نوع IPset وخياراته، لن يقوم vallumd بإنشاء IPset بنفسه. يمكنك الاختيار بين أنواع IPset هذه:
مثال لإنشاء IPset:
ipset create blacklist hash:ip timeout 3600
الآن يمكنك بدء vallumd. توجد خيارات سطر الأوامر التالية:
-h: مضيف MQTT للاتصال به
-p: منفذ MQTT للاتصال به (1883)
-u: اسم مستخدم MQTT
-P: كلمة مرور MQTT
-t: موضوع MQTT واسم IPset
-V: طباعة رقم الإصدار والخروج
-c: مسار ملف CA
-T: استخدام TLS
خيارات المضيف والموضوع إلزامية، والباقي اختياري (القيمة الافتراضية). من الممكن تحديد مواضيع متعددة.
بدء تشغيل vallumd:
vallumd -h 192.168.0.1 -t blacklist
سيستمع هذا للرسائل على وسيط MQTT عند 192.168.0.1، في موضوع blacklist، وعند استلام رسالة، سيتم إضافة عنوان IP الموجود في الرسالة إلى IPset المسمى blacklist أو إزالته منه.
إذن لدينا الآن كل ما يلزم لبدء إضافة عناوين IP إلى القائمة السوداء. كل ما علينا فعله هو تكوين نظام IDS أو IPS أو Honeypot لدينا لإرسال عناوين IP الخبيثة إلى وسيط MQTT الخاص بنا.
بالنسبة لـ fail2ban، يمكن القيام بذلك باستخدام عميل Mosquitto mosquitto_pub.
قم بإنشاء إجراء جديد في /etc/fail2ban/action.d/vallumd.conf:
[Definition]
actionban = mosquitto_pub -h 192.168.0.1 -q 2 -t blacklist/add -m <ip>
actionunban = mosquitto_pub -h 192.168.0.1 -q 2 -t blacklist/del -m <ip>
وقم بتكوين سجون fail2ban الخاصة بك لاستخدام إجراء vallumd.
الحزم التي تم إنشاؤها باستخدام CPack تدعم OpenRC و Upstart و systemd. ملفات تكوين الخدمة موجودة حيث تتوقعها في توزيعة:
بعد تحرير الملف المناسب لتوزيعتك، ابدأ خدمة vallumd تمامًا كما تبدأ أي خدمة أخرى على نظامك.
يستخدم Vallumd syslog(3) للتسجيل.