Ubuntu पर tcpdump से पैकेट कैप्चर व नेटवर्क विश्लेषण

परिचय एवं बुनियादी समझ

लिनक्स सर्वर पर नेटवर्क संबंधी समस्याओं के निवारण और पैकेट इंस्पेक्शन के लिए tcpdump सबसे भरोसेमंद और प्रभावी कमांड-लाइन यूटिलिटी है। लंबे-चौड़े मैन्युअल पढ़ने के बजाय, इस गाइड में हम इंटरफेस खोजने से लेकर रियल-टाइम पैकेट फ़िल्टरिंग तथा PCAP फ़ाइल बनाकर उसका गहन विश्लेषण करने तक की पूरी प्रक्रिया व्यावहारिक उदाहरणों के साथ समझेंगे।

टूल इंस्टॉलेशन और उपलब्ध नेटवर्क इंटरफेस की पहचान

पैकेट स्निफिंग और परीक्षण के लिए सबसे पहले सिस्टम में आवश्यक पैकेज tcpdump और curl सेटअप कर लेते हैं।

पैकेज अपडेट और tcpdump व curl का इंस्टॉलेशन

सिस्टम में मौजूद tcpdump और इसके बैकएंड ड्राइवर libpcap का संस्करण जांचने के लिए tcpdump --version रन करें।
नेटवर्क एडॉप्टर से गुजरने वाले हर डेटा पैकेट पर बारीक नज़र रखने और विभिन्न प्रोटोकॉल ट्रैफ़िक का पोस्टमार्टम करने में यह टूल बेजोड़ है।
⚙️ [महत्वपूर्ण कमांड विकल्प]

-i : जिस नेटवर्क इंटरफेस पर ट्रैफ़िक मॉनिटर करना हो, उसका नाम निर्धारित करता है।
-n : DNS रिज़ॉल्यूशन रोके रखता है, जिससे होस्टनाम के बजाय सीधे IP पते दिखाई देते हैं।
-nn : होस्ट IP के साथ-साथ पोर्ट नंबरों को भी सर्विस नामों (जैसे http/ssh) में बदलने के बजाय सांख्यिक रूप में रखता है।
-c : तय संख्या में पैकेट कैप्चर होते ही प्रक्रिया को स्वतः रोक देता है।
-v : पैकेट की विस्तृत जानकारी जैसे TTL, IP ID और प्रोटोकॉल हेडर दिखाता है; गहन विवरण के लिए -vv या -vvv का प्रयोग करें।
-w : लाइव ट्रैफ़िक को सीधे स्क्रीन पर प्रिंट करने के बजाय रॉ डेटा को PCAP फ़ाइल में सेव करता है, जिसे Wireshark में खोला जा सकता है।
-r : पहले से सहेजी गई PCAP फ़ाइल को टर्मिनल में पढ़कर उसका डेटा प्रदर्शित करता है।
-A : पैकेट पेलोड की सामग्री को आसानी से पढ़े जा सकने वाले ASCII फ़ॉर्मैट में आउटपुट देता है।
-X : हेडर और डेटा पेलोड दोनों को हेक्साडेसिमल (Hex) तथा ASCII दोनों रूपों में एक साथ दिखाता है।
-D : मशीन पर मौजूद उन सभी नेटवर्क इंटरफेस की सूची देता है जिन पर पैकेट कैप्चर किया जा सकता है।

tcpdump संस्करण की जांच

सिस्टम पर सक्रिय सभी नेटवर्क इंटरफेस की स्थिति देखने के लिए tcpdump -D चलाएं।
आउटपुट में बाहरी नेटवर्क से जुड़ा eth0, सभी इंटरफेस को एकसाथ सुनने वाला वर्चुअल एडेप्टर any, तथा स्थानीय टेस्टिंग का lo (लूपबैक) दिखाई देता है। इनमें से किसी भी नाम को आगे -i विकल्प के साथ लक्ष्य के रूप में इस्तेमाल किया जा सकता है।

उपलब्ध इंटरफेस की सूची

लूपबैक इंटरफेस (lo) पर प्राथमिक पैकेट स्निफिंग

स्थानीय लूपबैक पर ट्रैफ़िक जनरेट करने के लिए पृष्ठभूमि में चार ICMP पिंग भेजते हैं: ping -c 4 127.0.0.1 > /dev/null 2>&1 &।

बैकग्राउंड में पिंग टेस्ट निष्पादन

अब tcpdump -i lo -c 4 -n कमांड चलाकर लूपबैक एडेप्टर (lo) पर बिना नाम रूपांतरण के (-n) ठीक चार पैकेट्स (-c 4) कैप्चर करते हैं।
टर्मिनल पर 127.0.0.1 के बीच आदान-प्रदान हुए ICMP echo request और reply पैकेट उनके टाइमस्टैम्प, सीक्वेंस नंबर तथा बाइट साइज के साथ स्पष्ट रूप से रिकॉर्ड हो जाते हैं।

लूपबैक पर ICMP पैकेट मॉनिटरिंग

विशिष्ट प्रोटोकॉल और पोर्ट के अनुसार ट्रैफिक फिल्टर करना

सुरक्षित वेब ट्रैफ़िक (पोर्ट 443) का परीक्षण करने के लिए बैकग्राउंड में curl -s https://example.com > /dev/null 2>&1 & चलाकर HTTPS अनुरोध भेजते हैं।

बैकग्राउंड में curl द्वारा HTTPS अनुरोध

समस्त नेटवर्क एडॉप्टरों (-i any) पर पोर्ट 443 के चुनिंदा 4 पैकेट संख्यात्मक रूप में पकड़ने के लिए tcpdump -i any -c 4 -nn 'tcp port 443' निष्पादित करें।
परिणाम में बाहरी वेब सर्वर (172.66.147.243.443) और स्थानीय सिस्टम (172.18.0.2) के बीच हुए TCP हैंडशेक, फ़्लैग्स, ACK नंबर और ट्रांसफ़र किए गए डेटा साइज़ की सटीक जानकारी मिल जाती है।

HTTPS पोर्ट 443 ट्रैफिक कैप्चर

अब पिंग पैकेट फ़िल्टरिंग परखने के लिए पब्लिक DNS की ओर बैकग्राउंड पिंग शुरू करते हैं: ping -c 2 8.8.8.8 > /dev/null 2>&1 &।

रिमोट DNS की ओर पिंग जनरेशन

केवल ICMP प्रोटोकॉल को अलग छांटने के लिए tcpdump -i any -c 2 -n 'icmp' चलाएं, जिससे सिस्टम केवल दो प्रासंगिक पैकेट ही पकड़ेगा।
आउटपुट में लोकल होस्ट (172.18.0.2) और गूगल डीएनएस (8.8.8.8) के बीच गए ICMP request और reply पैकेट्स उनके यूनीक ID और सीक्वेंस नंबर के साथ अलग से दर्ज हो जाते हैं।

ICMP प्रोटोकॉल ट्रैफिक फिल्टरिंग

कैप्चर डेटा को PCAP में सहेजना और पेलोड का विश्लेषण

फ़ाइल में डेटा डंप करने का अभ्यास करने के लिए लूपबैक पर दोबारा पिंग ट्रैफ़िक भेजते हैं: ping -c 3 127.0.0.1 > /dev/null 2>&1 &।

डंप परीक्षण हेतु पिंग पैकेट भेजना

कमांड tcpdump -i lo -c 3 -w /tmp/traffic_sample.pcap लूपबैक इंटरफेस से 3 पैकेट लेकर उन्हें सीधे /tmp/traffic_sample.pcap नामक बाइनरी फ़ाइल में राइट कर देती है।
स्क्रीन पर आउटपुट न दिखाकर सीधे डिस्क में डेटा सहेजने की यह विधि बड़े पैमाने पर ट्रैफ़िक ऑडिट करने या बाद में Wireshark जैसे टूल्स में गहन जांच करने के लिए सर्वोत्तम मानी जाती है।

PCAP फाइल में पैकेट डंप सुरक्षित करना

अब इस सहेजी गई डंप फ़ाइल का मुआयना करने के लिए tcpdump -r /tmp/traffic_sample.pcap -n -X निष्पादित करें। यह फ़ाइल को पढ़ती है (-r) और पैकेट के हेडर समेत आंतरिक डेटा को हेक्स व ASCII दोनों में दिखाती है (-X)।
इससे प्रत्येक ICMP पैकेट के भीतर मौजूद वास्तविक पेलोड बाइट्स को सीधे टेक्स्ट और हेक्साडेसिमल फॉर्मेट में पढ़ना और समझना संभव हो जाता है।

PCAP फाइल का हेक्स और ASCII विश्लेषण

प्रैक्टिस पूरी होने पर सिस्टम स्टोरेज को साफ़-सुथरा रखने के लिए बनाई गई अस्थायी PCAP फ़ाइल को rm -f /tmp/traffic_sample.pcap से हटा दें।

अस्थायी कैप्चर फाइल को हटाना

इस गाइड में हमने उबंटू के अंतर्गत tcpdump टूल की मदद से नेटवर्क पैकेट कैप्चर करने, लक्षित फ़िल्टर लगाने और डेटा पेलोड का विश्लेषण करने के बुनियादी व ज़रूरी पहलुओं को समझा।
इन कमांड्स और फ़िल्टरिंग रूल्स का नियमित अभ्यास करके आप जटिल नेटवर्क गड़बड़ियों को आसानी से पकड़ सकते हैं।