इस प्रोजेक्ट के बारे में

TurkeyBite एक ओपन-सोर्स डोमेन और होस्ट संदर्भ विश्लेषण पाइपलाइन है जिसे क्लाइंट नेटवर्क ट्रैफ़िक का विश्लेषण करने और क्लाइंट द्वारा अनुरोधित डोमेन को वर्गीकृत करने के लिए डिज़ाइन किया गया है, जिसमें वयस्क सामग्री, जुआ, खरीदारी आदि जैसी श्रेणियां शामिल हैं। इसे विशेष रूप से एक गैर-घुसपैठिया विश्लेषण उपकरण के रूप में बनाया गया है जो क्लाइंट अनुरोधों को ब्लॉक नहीं करता है, इसलिए इसे आवश्यकतानुसार Pi-hole जैसे ब्लॉकिंग टूल के साथ चलाया जा सकता है, जिसका अंतिम उपयोगकर्ता के नेटवर्क अनुभव पर कोई प्रभाव नहीं पड़ता है। यह पाइपलाइन Docker-आधारित तकनीकी स्टैक पर निर्भर करती है जिसमें Python 3, Valkey (Redis-संगत इन-मेमोरी डेटा स्टोर), Bind9 DNS सर्वर, ट्रैफ़िक संग्रह के लिए Packetbeat और/या Browserbeat, डेटा इंडेक्सिंग और स्टोरेज के लिए OpenSearch, और विज़ुअलाइज़ेशन के लिए OpenSearch डैशबोर्ड शामिल हैं। यह विश्लेषण परिणामों को समृद्ध करने के लिए कई सार्वजनिक स्रोतों से डोमेन और होस्ट वर्गीकरण सूचियों को एकत्रित करती है। संचालन में, Packetbeat समर्थित DNS सर्वरों से DNS ट्रैफ़िक को कैप्चर करता है (Bind9 और Microsoft DNS सर्वरों के साथ उत्पादन में परीक्षण किया गया है, और किसी भी DNS सर्वर के साथ संगत है जो Packetbeat चला सकता है) और डेटा को Valkey को भेजता है। Browserbeat का उपयोग समर्थित ब्राउज़रों से ब्राउज़र इतिहास डेटा एकत्र करने के लिए किया जा सकता है। TurkeyBite कोर और वर्कर प्रक्रियाएं अंतर्ग्रहण डेटा को संसाधित करती हैं, इसे डोमेन श्रेणी संदर्भ के साथ समृद्ध करती हैं, और OpenSearch डैशबोर्ड के माध्यम से क्वेरी और विज़ुअलाइज़ेशन के लिए OpenSearch में परिणामों को इंडेक्स करती हैं। डिप्लॉयमेंट को Docker Compose के माध्यम से प्रबंधित किया जाता है, एक सेटअप स्क्रिप्ट के साथ जो उपयोगकर्ताओं को विभिन्न डिप्लॉयमेंट पैमानों (विकास, छोटे पैमाने, पूर्ण पैमाने) के लिए कॉन्फ़िगरेशन के माध्यम से मार्गदर्शन करती है, जिसमें क्लाइंट IPs के लिए DNS लुकअप सेटिंग्स, आउटपुट विकल्प (OpenSearch और/या Syslog), और सेवा क्रेडेंशियल शामिल हैं। सेटअप स्क्रिप्ट स्वचालित रूप से आवश्यक कॉन्फ़िगरेशन फ़ाइलें (.env, config.yaml, docker-compose.yml) और सेवा प्रमाणीकरण के लिए गुप्त फ़ाइलें उत्पन्न करती है। कई नोड्स में वितरित डिप्लॉयमेंट के लिए, सेटअप स्क्रिप्ट को प्रत्येक नोड पर उचित कॉन्फ़िगरेशन के साथ चलाया जा सकता है, और यदि Valkey एक अलग समर्पित सर्वर पर चलता है तो Valkey प्रमाणीकरण रहस्यों को कोर और वर्कर नोड्स में कॉपी करने की आवश्यकता होती है। डेटा संग्रह कॉन्फ़िगरेशन के लिए, Packetbeat को पोर्ट 53 पर DNS ट्रैफ़िक कैप्चर करने और Valkey को आउटपुट करने के लिए सेट करने की आवश्यकता है, जिसमें चयनित TurkeyBite पाइपलाइन मोड के लिए डेटाटाइप और कुंजी सेटिंग्स का सावधानीपूर्वक मिलान करना आवश्यक है: "consume" मोड लगातार बैकलॉग ट्रैकिंग के साथ कम से कम एक बार डिलीवरी के लिए Valkey सूचियों का उपयोग करता है, जबकि "rq" मोड Valkey pub/sub का उपयोग करता है जो डिज़ाइन द्वारा लॉस है। Browserbeat को ब्राउज़र इतिहास डेटा एकत्र करने के लिए अपने स्वयं के इंस्टॉलेशन निर्देशों का पालन करते हुए अलग से कॉन्फ़िगर किया गया है। नियमित रखरखाव में vols/logs निर्देशिका में संग्रहीत लॉग की जांच करना शामिल है, और vols/lists में संग्रहीत डोमेन सूचियां उपयोगकर्ता-कॉन्फ़िगर रिफ्रेश अंतराल के अनुसार स्वचालित रूप से अपडेट की जाती हैं। सामान्य समस्या निवारण चरणों में docker compose logs के माध्यम से कंटेनर लॉग की जांच करना, व्यक्तिगत सेवाओं को पुनरारंभ करना और Docker नेटवर्क में कंटेनरों के बीच कनेक्टिविटी को सत्यापित करना शामिल है।