
आउटबाउंड (एग्रेस) फ़ायरवॉल नियमों का परीक्षण करने के लिए डिज़ाइन किए गए क्लाइंट/सर्वर स्क्रिप्ट्स।
क्लाइंट/सर्वर स्क्रिप्ट जो आउटबाउंड (egress) फ़ायरवॉल नियमों का परीक्षण करने के लिए डिज़ाइन की गई हैं।
Egresser एक उपकरण है जो आउटबाउंड फ़ायरवॉल नियमों को सूचीबद्ध करता है, जिसे पेनिट्रेशन परीक्षकों के लिए यह आकलन करने हेतु डिज़ाइन किया गया है कि कॉर्पोरेट नेटवर्क के भीतर से egress फ़िल्टरिंग पर्याप्त है या नहीं। प्रत्येक TCP पोर्ट की बारी-बारी से जाँच करने पर, Egresser सर्वर क्लाइंट के स्रोत IP पते और पोर्ट के साथ प्रतिक्रिया करता है, जिससे क्लाइंट यह निर्धारित कर सकता है कि आउटबाउंड पोर्ट अनुमत है या नहीं (IPv4 और IPv6 दोनों पर) तथा यह आकलन कर सकता है कि NAT traversal होने की संभावना है या नहीं।
यह कैसे काम करता है
सर्वर-साइड स्क्रिप्ट Iptables के साथ मिलकर काम करती है - सभी TCP ट्रैफ़िक को पोर्ट 8080 पर पुनर्निर्देशित करती है, जहाँ ‘वास्तविक’ सर्वर स्थित होता है। सर्वर-साइड स्क्रिप्ट Perl में लिखी गई है और यह Net::Server::Prefork का उपयोग करने वाला एक pre-forking सर्वर है, जो उपलब्ध होने पर IPv4 और IPv6 दोनों पर सुनता है। किसी भी TCP कनेक्शन के परिणामस्वरूप एक सरल प्रतिक्रिया मिलती है जिसमें कनेक्ट करने वाले क्लाइंट के IP और पोर्ट से बनी null terminated स्ट्रिंग होती है। यदि आप Egresser क्लाइंट तक पहुँच के बिना किसी प्रतिबंधित वातावरण में हैं, तो सेवा के साथ बातचीत करने के लिए Telnet का उपयोग करने में संकोच न करें (हमारा Egresser सर्वर egresser.labs.cyberis.co.uk पर पाया जा सकता है, जिसका उपयोग आप वैध उद्देश्यों के लिए कर सकते हैं)।
क्लाइंट भी Perl में लिखा गया है और गति के लिए threaded है। डिफ़ॉल्ट रूप से यह TCP पोर्ट 1-1024 को स्कैन करेगा, हालाँकि यह स्क्रिप्ट के भीतर कॉन्फ़िगर करने योग्य है। कमांड लाइन तर्क ‘-4’ के साथ IPv4 को बाध्य करना संभव है, या ‘-6’ के साथ IPv6 को; डिफ़ॉल्ट रूप से यह आपके ऑपरेटिंग सिस्टम द्वारा पसंद किए गए प्रोटोकॉल को चुनेगा। यदि आप सभी खुले/बंद पोर्ट को स्पष्ट रूप से सूचीबद्ध करना चाहते हैं, तो verbose फ़्लैग (-v) निर्दिष्ट करें, क्योंकि सामान्य आउटपुट केवल अनुमत पोर्ट का संक्षिप्त सारांश होता है।
क्यों?
यह अनुशंसित है कि कॉर्पोरेट वातावरण में आउटबाउंड फ़ायरवॉल नियम प्रतिबंधित किए जाएँ, ताकि perimeter नियंत्रण आसानी से दरकिनार न किए जा सकें। उदाहरण के लिए, किसी संगठन के भीतर अपर्याप्त egress फ़िल्टरिंग एक दुर्भावनापूर्ण उपयोगकर्ता को केवल ब्राउज़र की कनेक्शन सेटिंग्स बदलकर फ़िल्टरिंग/AV/लॉगिंग प्रदान करने वाले वेब प्रॉक्सी को आसानी से बायपास करने की अनुमति दे देगी। कई अन्य उदाहरण भी मौजूद हैं - कई वर्म SMB प्रोटोकॉल पर फैलते हैं, मैलवेयर डेटा बाहर निकालने के लिए कई चैनलों का उपयोग कर सकता है, और संभावित रूप से अनधिकृत सॉफ़्टवेयर (जैसे torrent/P2P फ़ाइल साझाकरण) स्वतंत्र रूप से कार्य कर सकता है, कॉर्पोरेट संसाधनों को बर्बाद कर सकता है तथा पर्यावरण में दुर्भावनापूर्ण कोड प्रवेश कराए जाने की संभावना को काफी बढ़ा सकता है।
सामान्यतया, यह अनुशंसित है कि सभी आउटबाउंड प्रोटोकॉल प्रतिबंधित किए जाने चाहिए, विशिष्ट होस्ट के लिए मामले-दर-मामले के आधार पर अपवादों की अनुमति दी जाए। वेब ब्राउज़िंग केवल समर्पित वेब प्रॉक्सी के माध्यम से की जानी चाहिए, किसी भी प्रत्यक्ष कनेक्शन के प्रयास को perimeter फ़ायरवॉल द्वारा लॉग किया जाना चाहिए और आवश्यकतानुसार जाँच की जानी चाहिए। Egresser एक सरल, उपयोग में आसान उपकरण है जो पेनिट्रेशन परीक्षक को कॉर्पोरेट वातावरण में अनुमत पोर्टों को शीघ्रता से सूचीबद्ध करने में सक्षम बनाता है।
iptables 1.4.17 या उससे ऊपर आवश्यक है, और ipv6 nat समर्थन के लिए kernel 3.7+ आवश्यक है।
क्लाइंट के लिए निम्नलिखित Perl मॉड्यूल आवश्यक हैं:
Thread::Queue ;
IO::Socket::IP;
Getopt::Long;
सर्वर के लिए निम्नलिखित Perl मॉड्यूल आवश्यक हैं:
Net::Server::PreFork
कृपया सभी समस्याओं की रिपोर्ट https://github.com/cyberisltd/Egresser/issues पर करें।