इस प्रोजेक्ट के बारे में
dsnitch एक हल्का, एकल-बाइनरी नेटवर्क और DNS ईग्रेस इंस्पेक्टर है जो विशेष रूप से Docker कंटेनरों के लिए डिज़ाइन किया गया है। यह आधुनिक Linux eBPF तकनीक का लाभ उठाकर कंटेनरों से सभी आउटबाउंड नेटवर्क गतिविधि की वास्तविक समय में दृश्यता प्रदान करता है, जिसमें TCP/UDP कनेक्शन, ICMP पिंग, और DNS क्वेरी शामिल हैं, बिना कंटेनर नेटवर्क स्टैक, साइडकार कंटेनर, या भारी टेलीमेट्री डेमॉन में किसी संशोधन की आवश्यकता के।
यह टूल होस्ट के यूनिफाइड cgroup v2 पदानुक्रम और कर्नेल के TCP सॉकेट स्टेट ट्रेसपॉइंट पर सीधे निष्क्रिय इन-कर्नेल eBPF प्रोब्स जोड़ता है। यह आउटबाउंड कनेक्शन अनुरोधों, लेयर-3 ICMP पिंग्स, और पोर्ट 53 पर कच्चे DNS वायर पेलोड को इंटरसेप्ट करता है, सॉकेट्स को Docker कंटेनर मेटाडेटा और हल किए गए होस्टनामों के साथ यूज़रस्पेस में लॉकलेस BPF रिंग बफ़र्स के माध्यम से सहसंबंधित करता है, जिसमें लगभग शून्य CPU ओवरहेड (1% से कम) होता है।
मुख्य विशेषताओं में cgroup v2 से सीधे जुड़ाव के माध्यम से ज़ीरो-टच कंटेनर एट्रिब्यूशन, पूर्ण CNAME श्रृंखला समाधान के लिए यूज़रस्पेस Hickory DNS डिकोडिंग के साथ इन-कर्नेल DNS स्नूपिंग, समवर्ती कनेक्शन और नेटवर्क नेमस्पेस में टकराव-मुक्त ट्रैकिंग के लिए कर्नेल मेमोरी पॉइंटर्स (skaddr) का उपयोग करके निर्धारक स्टेटफुल सॉकेट ट्रैकिंग, देशी ICMP प्रोटोकॉल समर्थन, DNS-हल किए गए होस्टनामों और अंतर्निहित एज IP एंडपॉइंट दोनों दिखाने वाले दोहरे गंतव्य और भौतिक IP कॉलम, और बुद्धिमान glibc शोर फ़िल्टरिंग जो डमी POSIX getaddrinfo() UDP पोर्ट 0 रूट-लुकअप प्रोब्स को छोड़ देता है।
Ratatui के साथ निर्मित इंटरैक्टिव स्प्लिट-पेन TUI बाईं ओर लाइव कनेक्शन काउंटर के साथ एक कंटेनर पदानुक्रम ट्री और दाईं ओर एक वास्तविक समय रंग-कोडित ईग्रेस स्ट्रीम प्रदान करता है, जिसमें तत्काल खोज फ़िल्टरिंग, कंटेनर लॉकिंग, और होस्ट ट्रैफ़िक टॉगलिंग शामिल है। एक हेडलेस स्ट्रीमिंग मोड (-s) लॉगिंग, CI/CD पाइपलाइनों, या अन्य CLI टूल्स में पाइपिंग के लिए गैर-इंटरैक्टिव प्लेन-टेक्स्ट आउटपुट का समर्थन करता है।
स्थापना सीधी है: x86_64 और ARM64 Linux आर्किटेक्चर के लिए प्रीबिल्ट बाइनरी उपलब्ध हैं, या टूल को Rust नाइटली टूलचेन और rust-src घटक का उपयोग करके स्रोत से बनाया जा सकता है। टूल को Linux कर्नेल 5.8+ की आवश्यकता है जिसमें यूनिफाइड cgroups v2 और BTF सक्षम हो, साथ ही Docker डेमॉन तक पहुंच हो।
अनप्रिविलेज्ड उपयोगकर्ताओं के लिए, dsnitch न्यूनतम Linux क्षमताएं (cap_sys_admin, cap_net_admin, cap_dac_read_search) प्रदान करने के लिए setcap का उपयोग करने की सिफारिश करता है ताकि docker समूह का कोई भी उपयोगकर्ता sudo के बिना इसे चला सके। वैकल्पिक रूप से, इसे मानक sudo एस्केलेशन के साथ चलाया जा सकता है। टूल में इन-मेमोरी यूनिट टेस्ट और एक स्वचालित एंड-टू-एंड एकीकरण परीक्षण सूट शामिल है जो लाइव Docker कंटेनरों के खिलाफ चलता है।
परियोजना GNU जनरल पब्लिक लाइसेंस v3.0 के तहत लाइसेंस प्राप्त है और Infomaniac द्वारा बनाए रखा जाता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.