
IPset ब्लैकलिस्ट को केंद्रीकृत करें या वितरित करें
यह प्रोग्राम आपको IP ब्लैकलिस्ट को केंद्रीकृत और वितरित करने की अनुमति देता है।
यदि आप इंटरनेट पर एक सर्वर चलाते हैं, तो यह बहुत संभव है कि आपको एक या अधिक ब्रूट फोर्स हमलों का सामना करना पड़ा हो। कोई समस्या नहीं, बस fail2ban इंस्टॉल करें। हो गया।
लेकिन यदि आप कई सर्वर चला रहे हैं, और उनमें से प्रत्येक अपना fail2ban इंस्टेंस चला रहा है, तो उन सभी के पास बैन लिस्ट में अलग-अलग IP पते होंगे। क्या यह अच्छा नहीं होगा कि आपके सभी fail2ban इंस्टेंस में एक साझा बैन लिस्ट हो? या यदि आपकी सभी मशीनें एक राउटर या फ़ायरवॉल के पीछे हैं जिसे आप स्वयं नियंत्रित करते हैं, तो क्या यह अच्छा नहीं होगा कि आप अपने नेटवर्क के किनारे पर दुर्भावनापूर्ण ट्रैफ़िक को गिरा दें?
यही वह है जो vallumd प्राप्त करने में मदद करता है।
Vallumd एक MQTT ब्रोकर से जुड़ता है, IP पतों वाले संदेशों को पढ़ता है, और उन IP पतों को एक ipset में जोड़ता या हटाता है। इतना ही सरल।
इसका मतलब है कि यह अपने आप में उपयोगी नहीं है, लेकिन यह vallumd को बहुत लचीला बनाता है। आप स्वयं तय कर सकते हैं कि आप किस प्रकार का iptables नियम ipset में संदर्भित करना चाहते हैं। इसे fail2ban के साथ एकीकृत करना उतना ही सरल है जितना कि एक नई कार्रवाई बनाना जो mosquitto_pub का उपयोग करके आपके MQTT ब्रोकर को एक संदेश भेजती है। और चूंकि अधिकांश सामान्य भाषाओं के लिए MQTT लाइब्रेरी मौजूद हैं, इसलिए इसे आपके पसंदीदा IDS, IPS या Honeypot के साथ एकीकृत करना बहुत मुश्किल नहीं होना चाहिए।
vallumd नाम लैटिन शब्द "vallum" से आया है, जिसका अर्थ है दीवार। और vallumd यही करता है: आपके डिजिटल साम्राज्य की रक्षा के लिए एक दीवार बनाता है।
किसी भी पैकेज को स्थापित करने का सबसे अच्छा तरीका आपके वितरण के पैकेज प्रबंधन का उपयोग करना है। हालाँकि, यह प्रोजेक्ट बहुत नया है, इसलिए इसे अभी तक कई वितरणों में शामिल नहीं किया गया है।
एक पैकेज जो git की master शाखा को ट्रैक करता है, AUR में उपलब्ध है।
सुनिश्चित करें कि आपने EPEL रिपॉजिटरी सक्षम की है।
sudo yum -y install cmake3 ipset-devel mosquitto-devel openssl-devel pkgconfig '@Development Tools'
अब आप cpack के साथ एक RPM पैकेज उत्पन्न कर सकते हैं:
git clone https://codeberg.org/stintel/vallumd.git
cd vallumd
cmake3 .
cpack3 -G RPM
sudo yum -y localinstall build/*.rpm
Build-tested on CentOS 7.
आप cpack के साथ एक DEB पैकेज उत्पन्न कर सकते हैं:
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
Build-tested on Debian 10, 11, 12, 13 and Ubuntu 18.04, 20.04, 22.04, 24.04.
आप मेरे Gentoo overlay में vallumd के लिए एक लाइव ebuild पा सकते हैं।
यदि आप 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
यह 192.168.0.1 पर MQTT ब्रोकर पर, blacklist विषय में संदेशों को सुनेगा, और जब कोई संदेश प्राप्त होता है, तो संदेश में IP पता blacklist नामक IPset में जोड़ा या हटा दिया जाएगा।
तो अब हमारे पास ब्लैकलिस्ट में IP जोड़ना शुरू करने के लिए सब कुछ तैयार है। हमें बस अपने IDS, IPS या Honeypot को अपने MQTT ब्रोकर को दुर्भावनापूर्ण IP पते भेजने के लिए कॉन्फ़िगर करना है।
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) का उपयोग करता है।