
psad: iptables के साथ घुसपैठ का पता लगाना और लॉग विश्लेषण
पोर्ट स्कैन अटैक डिटेक्टर psad एक हल्का सिस्टम डेमॉन है जो लिनक्स iptables/ip6tables/firewalld फ़ायरवॉल कोड के साथ काम करने के लिए डिज़ाइन किया गया है, ताकि संदिग्ध ट्रैफ़िक जैसे पोर्ट स्कैन और स्वीप, बैकडोर, बॉटनेट कमांड और कंट्रोल संचार, और अधिक का पता लगाया जा सके। इसमें अत्यधिक कॉन्फ़िगरेबल खतरे की सीमाएं (उचित डिफ़ॉल्ट के साथ), विस्तृत अलर्ट संदेश (जिसमें स्रोत, गंतव्य, स्कैन की गई पोर्ट रेंज, शुरुआत और समाप्ति समय, TCP फ़्लैग और संबंधित nmap विकल्प, रिवर्स DNS जानकारी), ईमेल और syslog अलर्टिंग, iptables नियमसेट के गतिशील कॉन्फ़िगरेशन के माध्यम से अपराधी IP पतों का स्वचालित अवरोधन, निष्क्रिय ऑपरेटिंग सिस्टम फ़िंगरप्रिंटिंग, और DShield रिपोर्टिंग शामिल हैं। इसके अतिरिक्त, psad Snort घुसपैठ पहचान प्रणाली में शामिल कई TCP, UDP और ICMP सिग्नेचर को शामिल करता है। यह विभिन्न बैकडोर प्रोग्राम (जैसे EvilFTP, GirlFriend, SubSeven), DDoS टूल (Mstream, Shaft), और उन्नत पोर्ट स्कैन (SYN, FIN, XMAS) के लिए अत्यधिक संदिग्ध स्कैन का पता लगाता है, जिन्हें nmap के माध्यम से मशीन के विरुद्ध आसानी से इस्तेमाल किया जा सकता है। psad fwsnort के माध्यम से लॉग किए गए Snort सिग्नेचर पर भी अलर्ट कर सकता है, जो एप्लिकेशन लेयर सिग्नेचर से मेल खाने वाले ट्रैफ़िक का पता लगाने के लिए iptables स्ट्रिंग मैच एक्सटेंशन का उपयोग करता है। 2.4.4 रिलीज़ के अनुसार, psad Mirai बॉटनेट के IoT डिफ़ॉल्ट क्रेडेंशियल स्कैनिंग चरण का भी पता लगा सकता है।
पूर्ण सुविधा सूची नीचे है।
psad एप्लिकेशन लेयर बफ़र ओवरफ़्लो हमलों, संदिग्ध एप्लिकेशन कमांड और अन्य संदिग्ध लेयर 7 ट्रैफ़िक के लिए अलर्ट उत्पन्न कर सकता है।psad दुर्भावनापूर्ण ट्रैफ़िक के ग्राफ़ उत्पन्न करने के लिए gnuplot और afterglow के साथ एकीकरण प्रदान करता है। निम्नलिखित दो ग्राफ़ Honeynet Scan30 चुनौती से Nachi वर्म के हैं। पहला, psad द्वारा iptables लॉग डेटा के विश्लेषण के बाद afterglow द्वारा उत्पादित एक लिंक ग्राफ़ है:
"Nachi वर्म लिंक ग्राफ़"
दूसरा Scan30 iptables डेटा से प्रति घंटा Nachi वर्म ट्रैफ़िक दिखाता है:
"Nachi वर्म प्रति घंटा ग्राफ़"
psad द्वारा संदर्भित कॉन्फ़िग कीवर्ड की जानकारी psad(8) मैन पेज और यहाँ भी पाई जा सकती है:
psad जितनी भी जानकारी का विश्लेषण करता है, वह iptables लॉग संदेशों से एकत्र की जाती है। psad डिफ़ॉल्ट रूप से नए iptables संदेशों के लिए /var/log/messages फ़ाइल पढ़ता है और वैकल्पिक रूप से उन्हें एक समर्पित फ़ाइल (/var/log/psad/fwdata) में लिखता है। psad फिर यह निर्धारित करने के लिए खतरे की सीमा और सिग्नेचर तर्क लागू करने के लिए जिम्मेदार है कि क्या कोई पोर्ट स्कैन हुआ है, उपयुक्त अलर्ट ईमेल भेजें, और (वैकल्पिक रूप से) अपराधी IP पतों को ब्लॉक करें। psad में एक सिग्नल हैंडलर शामिल है, जैसे कि यदि USR1 सिग्नल प्राप्त होता है, तो psad वर्तमान स्कैन हैश डेटा संरचना की सामग्री को /var/log/psad/scan_hash.$$ में डंप करेगा, जहाँ "$$" चल रहे psad डेमॉन के pid को दर्शाता है।
नोट: चूंकि psad अनधिकृत पैकेटों के लिए उपयुक्त लॉग संदेश उत्पन्न करने के लिए iptables पर निर्भर करता है, psad केवल उतना ही अच्छा है जितना कि iptables नियमसेट में शामिल लॉगिंग नियम। इसलिए यदि आपका फ़ायरवॉल पैकेट लॉग करने के लिए कॉन्फ़िगर नहीं किया गया है, तो psad पोर्ट स्कैन या कुछ भी पता नहीं लगाएगा। आमतौर पर फ़ायरवॉल स्थापित करने का सबसे अच्छा तरीका नियमसेट के अंत में डिफ़ॉल्ट "ड्रॉप और लॉग" नियमों के साथ है, और इस अंतिम नियम के ऊपर ऐसे नियम शामिल करें जो केवल उस ट्रैफ़िक को अनुमति देते हैं जिसे अनुमति दी जानी चाहिए। निष्पादन पर, psad डेमॉन यह निर्धारित करने का प्रयास करेगा कि क्या ऐसा डिफ़ॉल्ट अस्वीकार नियम मौजूद है, और यदि नहीं तो उपयोगकर्ता को चेतावनी देगा। psad के साथ संगत उदाहरण फ़ायरवॉल नियमसेट के लिए FW_EXAMPLE_RULES फ़ाइल देखें।
इसके अतिरिक्त, psad का व्यापक कवरेज नो स्टार्च प्रेस द्वारा प्रकाशित पुस्तक "लिनक्स फ़ायरवॉल: हमले का पता लगाना और प्रतिक्रिया" में शामिल है, और इस पुस्तक में एक सहायक स्क्रिप्ट psad के साथ संगत है। यह स्क्रिप्ट यहाँ पाई जा सकती है:
लिनक्स वितरण के आधार पर, psad पहले से ही डिफ़ॉल्ट पैकेज रिपॉजिटरी में उपलब्ध हो सकता है। उदाहरण के लिए, Debian या Ubuntu सिस्टम पर, स्थापना एक सरल कमांड से की जाती है:
apt-get install psad
यदि psad पैकेज रिपॉजिटरी में उपलब्ध नहीं है, तो इसे psad स्रोतों में बंडल install.pl स्क्रिप्ट के साथ स्थापित किया जा सकता है। install.pl स्क्रिप्ट अपग्रेड भी संभालती है यदि psad पहले से स्थापित है। psad को कई Perl मॉड्यूल की आवश्यकता होती है जो आपके लिनक्स सिस्टम पर पहले से स्थापित हो भी सकते हैं और नहीं भी। ये मॉड्यूल psad स्रोतों में deps/ निर्देशिका में शामिल हैं, और install.pl स्क्रिप्ट द्वारा स्वचालित रूप से स्थापित होते हैं। मॉड्यूल की सूची है:
psad में Marco d'Itri द्वारा लिखित एक whois क्लाइंट भी शामिल है (deps/whois निर्देशिका देखें)। यह क्लाइंट किसी दिए गए IP पते के लिए सही whois जानकारी एकत्र करने में दूसरों से बेहतर करता है।
psad के साथ संगत iptables कॉन्फ़िगरेशन के लिए मुख्य आवश्यकता यह है कि iptables पैकेट लॉग करता है। यह आमतौर पर INPUT और FORWARD श्रृंखलाओं में इस प्रकार नियम जोड़कर पूरा किया जाता है:
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG
उपरोक्त नियमों को वैध ट्रैफ़िक के लिए सभी ACCEPT नियमों के बाद और उस ट्रैफ़िक के लिए संबंधित DROP नियम से ठीक पहले INPUT और FORWARD श्रृंखलाओं के अंत में जोड़ा जाना चाहिए जिसे नीति के माध्यम से अनुमति नहीं दी जानी है। ध्यान दें कि iptables नीतियाँ प्रोटोकॉल, नेटवर्क, पोर्ट और इंटरफ़ेस प्रतिबंधों, उपयोगकर्ता-परिभाषित श्रृंखलाओं, कनेक्शन ट्रैकिंग नियमों और बहुत कुछ के साथ काफी जटिल हो सकती हैं। सॉफ़्टवेयर के कई टुकड़े जैसे Shorewall और Firewall Builder हैं, जो iptables नीतियाँ बनाते हैं और iptables द्वारा प्रदान की गई उन्नत फ़िल्टरिंग और लॉगिंग क्षमताओं का लाभ उठाते हैं। आम तौर पर ऐसे सॉफ़्टवेयर द्वारा बनाई गई नीतियाँ psad के साथ संगत होती हैं क्योंकि वे विशेष रूप से ऐसे नियम जोड़ते हैं जो iptables को उन पैकेटों को लॉग करने का निर्देश देते हैं जो वैध ट्रैफ़िक का हिस्सा नहीं हैं। Psad को केवल उन iptables संदेशों का विश्लेषण करने के लिए कॉन्फ़िगर किया जा सकता है जिनमें विशिष्ट लॉग उपसर्ग होते हैं (जो --log-prefix विकल्प के माध्यम से जोड़े जाते हैं), लेकिन डिफ़ॉल्ट यह है कि psad पोर्ट स्कैन, बैकडोर प्रोग्राम के लिए जांच और अन्य संदिग्ध ट्रैफ़िक के साक्ष्य के लिए सभी iptables लॉग संदेशों का विश्लेषण करता है।
psad आम तौर पर लिनक्स सिस्टम पर चलता है, और कई प्रमुख लिनक्स वितरणों के पैकेज रिपॉजिटरी में उपलब्ध है। यदि psad के साथ कोई संचालन संबंधी समस्या है, तो कृपया github पर एक issue खोलें।
psad को GNU जनरल पब्लिक लाइसेंस (GPL v2+) की शर्तों के तहत ओपन सोर्स सॉफ़्टवेयर के रूप में जारी किया गया है। नवीनतम रिलीज़ https://github.com/mrash/psad/releases पर पाई जा सकती है।
psad Snort में उपलब्ध कई TCP, UDP और ICMP सिग्नेचर का उपयोग करता है (Marty Roesch द्वारा लिखित, http://www.snort.org देखें)। Snort Sourcefire, Inc. का एक पंजीकृत ट्रेडमार्क है।
सभी फीचर अनुरोध और बग फिक्स github issues ट्रैकिंग के माध्यम से प्रबंधित किए जाते हैं। हालाँकि, आप मुझे ईमेल कर सकते हैं (michael.rash_AT_gmail.com), या ट्विटर (@michaelrash) के माध्यम से मुझसे संपर्क कर सकते हैं।