
XDP आधारित हल्का और तेज़ फ़ायरवॉल
Siper एक उच्च-प्रदर्शन, XDP-आधारित IP ब्लैकलिस्ट फ़ायरवॉल है जो Go और C (eBPF) से बना है। यह आपको लिनक्स नेटवर्किंग स्टैक के सबसे प्रारंभिक संभव चरण—नेटवर्क ड्राइवर स्तर—पर दुर्भावनापूर्ण ट्रैफ़िक को ड्रॉप करने की अनुमति देता है। XDP (Express Data Path) का लाभ उठाकर, Siper पैकेट्स को कर्नेल के भारी नेटवर्किंग सबसिस्टम तक पहुँचने से पहले ही प्रोसेस करता है, जो भारी DDoS स्थितियों में भी अत्यधिक प्रदर्शन प्रदान करता है।
XDP-संचालित प्रदर्शन: पैकेट फ़िल्टरिंग XDP_DROP का उपयोग करके NIC ड्राइवर स्तर पर होती है, जिसके परिणामस्वरूप iptables या nftables की तुलना में काफी कम CPU ओवरहेड होता है।
LPM (Longest Prefix Match): विशेषीकृत BPF LPM Trie मैप्स का उपयोग करके कुशल IP रेंज लुकअप के लिए CIDR-आधारित ब्लॉकिंग (जैसे, 192.168.1.0/24) का समर्थन करता है।
स्थायी कॉन्फ़िगरेशन: नियमों को स्थानीय JSON-आधारित ब्लैकलिस्ट के माध्यम से प्रबंधित किया जाता है, जिससे ब्लॉक किए गए पतों का आसान ऑडिटिंग और वर्जनिंग संभव होती है।
रीयल-टाइम अवलोकन: ड्रॉप और पास किए गए ट्रैफ़िक दोनों के लिए पैकेट और बाइट काउंटर ट्रैक करने के लिए अंतर्निहित मेट्रिक्स।
न्यूनतम आर्किटेक्चर: एक संकलित BPF ऑब्जेक्ट डेटा प्लेन को संभालता है, जबकि Go-आधारित CLI कंट्रोल प्लेन का प्रबंधन करता है।
Siper कंट्रोल प्लेन (यूज़र-स्पेस) को डेटा प्लेन (कर्नेल-स्पेस) से अलग करने के सिद्धांत पर काम करता है।
siper run निष्पादित किया जाता है, तो Go एप्लीकेशन JSON को पार्स करता है, eBPF ऑब्जेक्ट को संकलित/लोड करता है, और BPF मैप को IP प्रीफ़िक्स से भरता है।इनग्रेस: एक पैकेट नेटवर्क इंटरफ़ेस पर आता है।
लुकअप: XDP प्रोग्राम पैकेट को इंटरसेप्ट करता है और block_list मैप में लुकअप करता है।
निर्णय:
पूर्वापेक्षाएँ
make
build/ डायरेक्टरी पर जाएँ
अपनी स्थानीय कॉन्फ़िगरेशन फ़ाइल से IP रेंज जोड़ें या हटाएँ:
# एक CIDR को सूची में जोड़ें
sudo ./siper add --cidr 1.2.3.0/24 --comment "ज्ञात बॉटनेट"
# एक नियम हटाएं
sudo ./siper del --cidr 1.2.3.0/24
फ़ायरवॉल को किसी विशिष्ट नेटवर्क इंटरफ़ेस से अटैच करें:
# फ़ायरवॉल शुरू करें
sudo ./siper run --iface eth0 --path ./blacklist.json
# फ़ायरवॉल रोकें और डिटैच करें
sudo ./siper stop --iface eth0
कर्नेल के अंदर क्या हो रहा है देखें:
# BPF मैप में वर्तमान सक्रिय कुंजियाँ देखें
sudo ./siper dump-keys
# ड्रॉप/पास आँकड़े देखें
sudo ./siper dump-metrics
पुल रिक्वेस्ट का स्वागत है। बग फिक्स और छोटे सुधारों के लिए, कृपया पुल रिक्वेस्ट सबमिट करें। बड़े बदलावों के लिए, कृपया पहले एक इश्यू खोलें ताकि आप जो बदलना चाहते हैं उस पर चर्चा कर सकें।
यह प्रोजेक्ट मुफ्त सॉफ्टवेयर है; आप इसे GPLv3 लाइसेंस की शर्तों के तहत पुनर्वितरित और संशोधित कर सकते हैं। विवरण के लिए LICENSE देखें।