पैकेट कैप्चर करना नेटवर्क के आंतरिक कामकाज का विश्लेषण करने का एक बहुत उपयोगी तरीका है। इस उद्देश्य के लिए विकसित विभिन्न प्रकार के टूल उपलब्ध हैं। उनमें से एक tcpdump है। यहां हम आपको दिखाते हैं कि नेटवर्क इंजीनियरों और पेनिट्रेशन टेस्टर्स दोनों के लिए इस बेहतरीन टूल का सर्वोत्तम उपयोग कैसे करें।
tcpdump क्या है?
tcpdump एक नेटवर्क पैकेट विश्लेषक टूल है जिसे 1988 में लॉरेंस बर्कले लेबोरेटरी और उसके नेटवर्क रिसर्च ग्रुप में काम कर रहे कंप्यूटर वैज्ञानिकों की एक टीम द्वारा विकसित और जारी किया गया था। इसका उपयोग उन पैकेट की सामग्री को प्रदर्शित करने के लिए किया जाता है जो एक कंप्यूटर भेजता और प्राप्त करता है। यह उपयोगिता पैकेट कैप्चर को अधिक विशिष्ट और केंद्रित बनाने के लिए विभिन्न विकल्पों के साथ आती है। इन विकल्पों में विभिन्न नेटवर्किंग प्रोटोकॉल और नेटवर्क इंटरफेस शामिल हैं।
इंस्टॉलेशन
कई लिनक्स वितरण उपयोगिता के साथ बॉक्स से बाहर आते हैं। हालांकि, यदि आपका पसंदीदा डिस्ट्रो नहीं करता है, तो इंस्टॉलेशन सौभाग्य से त्वरित और सरल है।
यदि आप उबंटू या डेबियन का उपयोग कर रहे हैं, उदाहरण के लिए, इसे apt का उपयोग करके इंस्टॉल किया जा सकता है:
sudo apt install tcpdump
सेंटओएस पर, वही yum का उपयोग करके किया जाता है:
sudo yum install tcpdump
और आर्क लिनक्स पर pacman का उपयोग करके:
sudo pacman -S tcpdump
बुनियादी बातें
tcpdump इंस्टॉल होने के साथ, आप -h फ्लैग का उपयोग करके मैनुअल देख सकते हैं:
tcpdump -h
यह आपको उन फ्लैग की सूची दिखाता है जिनका उपयोग आप टूल का उपयोग करते समय कर सकते हैं।
यदि आप अधिक व्यापक और विस्तृत मैनुअल देखना चाहते हैं, तो आप man कमांड का उपयोग करके मैन पेज (मैनुअल पेज) देख सकते हैं:
man tcpdump
आप निम्न टाइप करके एक बुनियादी पैकेट कैप्चर चला सकते हैं:
tcpdump
कमांड को स्वयं उपयोग करके और नेटवर्क इंटरफेस निर्दिष्ट न करके, टूल आपके सिस्टम पर उपलब्ध इंटरफेस में से एक को चुनेगा।
यदि आप नहीं चाहते कि tcpdump होस्टनाम को हल करे और इसके बजाय केवल IP पते आउटपुट करे, तो आप -n फ्लैग का उपयोग कर सकते हैं:
tcpdump -n
यदि आप कैप्चर करने के लिए पैकेट की संख्या निर्दिष्ट करना चाहते हैं, तो -c फ्लैग का उपयोग करें:
tcpdump -c [number of packets]
नेटवर्क इंटरफेस निर्दिष्ट करना
आप -i फ्लैग का उपयोग करके अपनी पसंद का नेटवर्क इंटरफेस निर्दिष्ट कर सकते हैं:
tcpdump -i [interface]
अधिकांश सिस्टम पर दो सबसे आम नेटवर्क इंटरफेस नाम eth0 और wlan0 हैं:
tcpdump -i eth0 tcpdump -i wlan0
यदि आप सभी इंटरफेस पर डेटा कैप्चर करना चाहते हैं, तो आप any विकल्प का उपयोग कर सकते हैं:
tcpdump -i any
पोर्ट/पोर्ट रेंज निर्दिष्ट करना
यदि आप केवल किसी विशिष्ट पोर्ट नंबर का उपयोग करने वाले डेटा को कैप्चर करना चाहते हैं, तो कमांड का उपयोग करें:
tcpdump -i [interface] port [port number]
मान लें कि आप eth0 इंटरफेस पर ट्रैफिक कैप्चर करना चाहते हैं और पोर्ट 443 (HTTPS) के लिए। निम्न टाइप करें:
tcpdump -i eth0 port 443
इसके अलावा, tcpdump आपको पोर्ट की एक श्रृंखला निर्दिष्ट करने की अनुमति देता है:
tcpdump -i [interface] portrange [port range]
होस्ट या सबनेट निर्दिष्ट करना
ऐसे समय होंगे जब आप कैप्चर किए गए पैकेट को केवल एक विशिष्ट होस्ट या सबनेट से भेजे/प्राप्त किए गए तक सीमित करना चाहेंगे। सौभाग्य से, tcpdump आपको ऐसा करने की अनुमति देता है।
आप निम्न प्रारूप का उपयोग करके होस्ट निर्दिष्ट कर सकते हैं:
tcpdump -i [interface] host [host]
उदाहरण के रूप में, eth0 इंटरफेस पर ट्रैफिक कैप्चर करें और होस्ट को 127.0.0.1 (आपका अपना लूपबैक IP पता) के रूप में निर्दिष्ट करें:
tcpdump -i eth0 host 127.0.0.1
यदि आप CIDR नोटेशन का उपयोग करके नेटवर्क सबनेट निर्दिष्ट करना चाहते हैं, तो आप निम्न प्रारूप का उपयोग कर सकते हैं:
tcpdump -i [interface] net [subnet]
उदाहरण के लिए:
tcpdump -i eth0 net 10.0.0.0/8
आप सीधे एक स्रोत होस्ट भी निर्दिष्ट कर सकते हैं:
tcpdump -i [interface] src [host]
और एक गंतव्य होस्ट:
tcpdump -i [interface] dst [host]
वर्बोसिटी निर्दिष्ट करना
tcpdump आपको पैकेट कैप्चर की वर्बोसिटी निर्दिष्ट करने की अनुमति देता है। यह बहुत उपयोगी है जब आप कैप्चर के दौरान सूचना की मात्रा से अभिभूत नहीं होना चाहते।
वर्बोसिटी के लिए तीन वृद्धिशील विकल्प हैं, फ्लैग -v, -vv और -vvv:
tcpdump -i [interface] -v tcpdump -i [interface] -vv tcpdump -i [interface] -vvv
पहला विकल्प कम से कम वर्बोसिटी निर्दिष्ट करता है, जबकि तीसरा विकल्प सबसे अधिक निर्दिष्ट करता है।
कैप्चर को फ़ाइल में सहेजना
कैप्चर किए गए डेटा को फ़ाइल में सहेजना अक्सर उपयोगी होता है, ताकि इसका आगे विश्लेषण और व्याख्या की जा सके।
यह -w फ्लैग का उपयोग करके किया जाता है:
tcpdump -i [interface] -w [filename]
उदाहरण के रूप में, आप कैप्चर किए गए डेटा को "capture.txt" नामक फ़ाइल में सहेज सकते हैं:
tcpdump -i eth0 -w capture.txt
अक्सर पूछे जाने वाले प्रश्न
1. मुझे "Operation not permitted" त्रुटि प्राप्त हुई। मैं इसे कैसे हल करूं?
निम्न एक सामान्य त्रुटि है जो उपयोगकर्ताओं को tcpdump का उपयोग करने का प्रयास करते समय प्राप्त हो सकती है:
tcpdump आपको यह त्रुटि देता है जब आपके पास पैकेट कैप्चर करने के लिए आवश्यक अनुमतियां नहीं होती हैं। अधिकांश परिदृश्यों में, आप sudo का उपयोग करके इसे हल कर सकते हैं। उदाहरण के लिए:
sudo tcpdump -i eth0
2. मुझे कैसे पता चलेगा कि कौन से नेटवर्क इंटरफेस उपलब्ध हैं?
tcpdump में एक अंतर्निहित कार्यक्षमता है जो आपको अपने सिस्टम पर उपलब्ध नेटवर्क इंटरफेस की जांच करने की अनुमति देती है।
इंटरफेस की जांच करने के लिए, -D फ्लैग का उपयोग करें:
tcpdump -D