यह मार्गदर्शिका बताएगी कि लिनक्स में अपने इंटरनेट और नेटवर्क कनेक्शन की निगरानी के लिए नेटस्टैट कमांड का उपयोग कैसे करें।
नेटस्टैट एक अत्यंत उपयोगी लिनक्स कमांड लाइन उपकरण है जो आपको यह जांचने की अनुमति देता है कि कौन सी सेवा आपकी मशीन के पोर्ट से जुड़ रही है। जब आप सामना कर रहे हों या उस पर हमले को रोकने की कोशिश कर रहे हों तो आपकी मशीन पर क्या चल रहा है, इसका विश्लेषण करना बहुत उपयोगी है। आप जानकारी प्राप्त कर सकते हैं जैसे पोर्ट पर कितने कनेक्शन बनाए जा रहे हैं, इन कनेक्शनों से कौन से आईपी पते उत्पन्न होते हैं, और भी बहुत कुछ। लिनक्स के अधिकांश वितरण के साथ नेटस्टैट जहाज इसलिए इसे पहले से ही आप पर स्थापित किया जाना चाहिए।
अपनी मशीन पर शेल टर्मिनल लॉन्च करें और निम्न कमांड चलाएँ:
# netstat -ant
सक्रिय इंटरनेट कनेक्शन (सर्वर और स्थापित)
प्रोटो रिकव-क्यू सेंड-क्यू स्थानीय पता विदेशी पता राज्य
tcp 0 0 ::ffff:192.168.1.19:80 ::ffff:192.168. 1.240:63049 TIME_WAIT
tcp 0 0 ::ffff:192.168.0.19:80 ::ffff:192.168.1.240:62793 TIME_WAIT
tcp 0 0 ::ffff:192.168.1.19:80 ::ffff:192.168.1.240:62795 TIME_WAIT
आउटपुट सबसे अधिक संभावना है कि बहुत लंबा होगा। मैंने अभी ऊपर आउटपुट का एक स्नैपशॉट दिया है। जैसा कि आप ऊपर दिए गए डेटा में देख सकते हैं कि टीसीपी प्रोटोकॉल और TIME_WAIT की स्थिति में कनेक्शन का उपयोग करके मेरे सर्वर के पोर्ट 80 में 192.168.1.240 से एक कनेक्शन बनाया गया है। आपको अपने सर्वर के लिए जो आउटपुट मिलेगा, उसमें केवल पोर्ट 80 ही नहीं, बल्कि आपकी मशीन के सभी पोर्ट के बारे में जानकारी होगी।
पहली चीज जो आप महसूस करते हैं, वह यह है कि इतना बड़ा आउटपुट बहुत अधिक उपयोग का नहीं है। तो चलिए इसे थोड़ा व्यवस्थित करते हैं। यहां कुछ तरकीबें दी गई हैं जिनका उपयोग मैं अपने सर्वर से किए जा रहे कनेक्शनों की प्रकृति का विश्लेषण करने के लिए करता हूं। सबसे पहले मैं यह पता लगाता हूं कि मैं किन सेवाओं का विश्लेषण करना चाहता हूं। आमतौर पर यह पोर्ट 80 होता है क्योंकि यह वेब सर्वर को चलाने के लिए डिफ़ॉल्ट पोर्ट होता है, और पोर्ट 3306 जो कि MySQL को चलाने के लिए डिफ़ॉल्ट पोर्ट है। इसलिए मैं निम्न क्वेरी का उपयोग यह देखने के लिए करता हूं कि पोर्ट 80 पर क्या हो रहा है:
# netstat -ant | ग्रेप 80
फिर से मुझे कनेक्शनों की बड़ी सूची मिलती है, पहले की तुलना में छोटी, लेकिन समझ में आने के लिए अभी भी बहुत बड़ी है। इसलिए मैं आउटपुट में लाइनों की संख्या गिनने के लिए "wc -l" कमांड का उपयोग करता हूं यह देखने के लिए कि मेरे पोर्ट 80 पर मेरे पास कितने कनेक्शन हैं:
# netstat -ant | ग्रेप 80 | wc -l
625
और फिर मैं MySQL के लिए भी ऐसा ही करता हूं:
# netstat -ant | ग्रेप 3306 | wc -l
61
अब, अगर मैं कनेक्शन की प्रकृति के संदर्भ में अपने सर्वर पर क्या हो रहा है, इसकी पूरी तस्वीर प्राप्त करना चाहता हूं, तो मैं यहां क्या करता हूं:
# netstat -ant | अजीब '{प्रिंट $6}' | सॉर्ट | यूनिक-सी | सॉर्ट -n
1 स्थापित)
1 विदेशी
4 FIN_WAIT2
8 LISTEN
16 CLOSE_WAIT
134 ESTABLISHED
409 TIME_WAIT
यह मुझे बताता है कि मेरी मशीन पर विभिन्न प्रकार के राज्य के कितने कनेक्शन हैं। मैं अपने वेब सर्वर से किए गए सभी कनेक्शनों की स्थिति की पूरी तस्वीर देखने के लिए एक समान कमांड चला सकता हूं:
नेटस्टैट -एंट | ग्रेप 80 | अजीब '{प्रिंट $6}' | सॉर्ट | यूनिक-सी | सॉर्ट -n
1 FIN_WAIT1
4 LISTEN
6 FIN_WAIT2
17 CLOSE_WAIT
94 ESTABLISHED
534 TIME_WAIT
आप अन्य लिनक्स कमांड लाइन टूल्स के साथ नेटस्टैट का उपयोग करके बहुत अधिक जटिल चीजें कर सकते हैं। नेटस्टैट का उपयोग करके इस तरह की जानकारी प्राप्त करने के लिए कुछ तरकीबों से परिचित होना मददगार हो सकता है, खासकर जब आप अपने सर्वर पर हमले का सामना कर रहे हों, क्योंकि आप अपने फ़ायरवॉल में जानकारी का उपयोग कर सकते हैं।