टीसीपीफ़्लो - लिनक्स में विश्लेषण और डिबग नेटवर्क ट्रैफ़िक


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

यह वास्तव में एक tcpdump- जैसे उपकरण है क्योंकि यह तार से या संग्रहीत फ़ाइल से पैकेट को संसाधित करता है। यह अपने समकक्ष द्वारा समर्थित समान शक्तिशाली फ़िल्टरिंग अभिव्यक्तियों का समर्थन करता है। अंतर केवल इतना है कि tcpflow सभी TCP पैकेटों को क्रम में रखता है और प्रत्येक प्रवाह को बाद के विश्लेषण के लिए एक अलग फ़ाइल (प्रवाह की प्रत्येक दिशा के लिए एक फ़ाइल) में इकट्ठा करता है।

इसके फीचर सेट में संपीड़ित HTTP कनेक्शन को डिकम्प्रेस करने के लिए एक उन्नत प्लग-इन सिस्टम, माइम एन्कोडिंग को पूर्ववत् करना या पोस्ट-प्रोसेसिंग के लिए तृतीय-पक्ष कार्यक्रमों को शामिल करना और बहुत कुछ शामिल है।

Tcpflow के लिए कई उपयोग के मामले हैं, जिसमें नेटवर्क पैकेट प्रवाह को समझना और नेटवर्क फोरेंसिक प्रदर्शन के लिए समर्थन और HTTP सत्रों की सामग्री को विभाजित करना शामिल है।

लिनक्स सिस्टम में TCPflow कैसे स्थापित करें

TCPflow मुख्यधारा के GNU/Linux वितरण के आधिकारिक रिपॉजिटरी में उपलब्ध है, आप इसे अपने पैकेज मैनेजर का उपयोग करके स्थापित कर सकते हैं जैसा कि दिखाया गया है।

$ sudo apt install tcpflow	#Debian/Ubuntu
$ sudo yum install tcpflow	#CentOS/RHEL
$ sudo dnf install tcpflow	#Fedora 22+

Tcpflow स्थापित करने के बाद, आप इसे सुपरसुसर विशेषाधिकारों के साथ चला सकते हैं, अन्यथा sudo कमांड का उपयोग करें। ध्यान दें कि यह सक्रिय नेटवर्क इंटरफ़ेस (उदाहरण के लिए enp0s3 ) पर सुनता है।

$ sudo tcpflow

tcpflow: listening on enp0s3

डिफ़ॉल्ट tcpflow द्वारा सभी कैप्चर किए गए डेटा को उन फ़ाइलों में संग्रहीत किया जाता है जिनके नाम प्रपत्र में होते हैं (यह भिन्न हो सकता है यदि आप कुछ विकल्पों का उपयोग करते हैं जैसे टाइमस्टैम्प )।

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

अब यह देखने के लिए कि क्या किसी फाइल में tcp फ्लो कैप्चर हो गया है, एक डायरेक्टरी लिस्टिंग करते हैं।

$ ls -1

total 20
-rw-r--r--. 1 root    root     808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443
-rw-r--r--. 1 root    root      59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920

जैसा कि हमने पहले उल्लेख किया है, प्रत्येक टीसीपी प्रवाह अपनी फ़ाइल में संग्रहीत किया जाता है। ऊपर दिए गए आउटपुट से, आप देख सकते हैं कि तीन प्रतिलिपि फ़ाइल हैं, जो दो विपरीत दिशाओं में tcpflow इंगित करती हैं, जहां पहली फ़ाइल में स्रोत आईपी और दूसरी फ़ाइल में गंतव्य आईपी और इसके विपरीत।

पहली फ़ाइल 192.168.043.031.52920-216.058.210.034.00443 में होस्ट से डेटा ट्रांसफर किया गया है 192.168.043.031 (पोर्टो के माध्यम से tcpflow चलाया गया था) 52920 , पोर्ट 443 पोर्ट के माध्यम से 216.058.210.034 (दूरस्थ होस्ट) होस्ट करने के लिए।

और दूसरी फ़ाइल 216.058.210.034.00443-192.168.043.031.52920 में होस्ट 216.058.210.034 (दूरस्थ होस्ट) पोर्ट से भेजा गया डेटा शामिल है 443 होस्ट करने के लिए 192.168.043.031 (जिस पर tcpflow चलाया गया था) पोर्ट 52920 के माध्यम से।

एक XML रिपोर्ट भी उत्पन्न होती है, जिसमें कार्यक्रम के बारे में जानकारी होती है जैसे कि इसे कैसे संकलित किया गया था, और जिस कंप्यूटर पर इसे चलाया गया था और प्रत्येक tcp कनेक्शन का रिकॉर्ड।

जैसा कि आपने देखा होगा, tcpflow वर्तमान निर्देशिका में ट्रांसक्रिप्ट फ़ाइलों को डिफ़ॉल्ट रूप से संग्रहीत करता है। -o विकल्प आपको आउटपुट डायरेक्टरी को निर्दिष्ट करने में मदद कर सकता है जहां ट्रांसक्रिप्ट फाइलें लिखी जाएंगी।

$ sudo tcpflow -o tcpflow_files
$ sudo ls -l tcpflow_files

total 32
-rw-r--r--. 1 root root 1665 Sep 19 12:56 157.240.016.035.00443-192.168.000.103.45986
-rw-r--r--. 1 root root   45 Sep 19 12:56 169.044.082.101.00443-192.168.000.103.55496
-rw-r--r--. 1 root root 2738 Sep 19 12:56 172.217.166.046.00443-192.168.000.103.39954
-rw-r--r--. 1 root root   68 Sep 19 12:56 192.168.000.102.00022-192.168.000.103.42436
-rw-r--r--. 1 root root  573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443
-rw-r--r--. 1 root root 4067 Sep 19 12:56 192.168.000.103.45986-157.240.016.035.00443
-rw-r--r--. 1 root root   38 Sep 19 12:56 192.168.000.103.55496-169.044.082.101.00443
-rw-r--r--. 1 root root 3159 Sep 19 12:56 report.xml

आप पैकेट की सामग्री को stdout के रूप में मुद्रित कर सकते हैं, जैसा कि वे प्राप्त करते हैं, बिना किसी कैप्चर किए गए डेटा को फ़ाइलों में संग्रहीत किए बिना, -c ध्वज का उपयोग करके।

इसे प्रभावी रूप से जांचने के लिए, दूसरा टर्मिनल खोलें और पिंग चलाएं, या इंटरनेट ब्राउज़ करें। आपको पिंग विवरण या अपने ब्राउज़िंग विवरण को tcpflow द्वारा कैप्चर किए जाने के लिए सक्षम होना चाहिए।

$ sudo tcpflow -c

किसी विशेष पोर्ट पर सभी ट्रैफ़िक को कैप्चर करना संभव है, उदाहरण के लिए पोर्ट 80 ( HTTP )। HTTP ट्रैफ़िक के मामले में, यदि आप -c स्विच हटा दिया जाता है, तो आप HTTP हेडर को स्टडआउट या एक फाइल में सभी सामग्री के बाद देख पाएंगे।

$ sudo tcpflow port 80

किसी विशिष्ट नेटवर्क इंटरफ़ेस से पैकेट कैप्चर करने के लिए, इंटरफ़ेस नाम निर्दिष्ट करने के लिए -i ध्वज का उपयोग करें।

$ sudo tcpflow -i eth0 port 80

जैसा कि दिखाया गया है, आप एक टारगेट होस्ट (स्वीकृत मान IP पता, होस्टनाम या डोमेन) भी निर्दिष्ट कर सकते हैं।

$ sudo tcpflow -c host 192.68.43.1
OR
$ sudo tcpflow -c host www.google.com 

आप सभी कोड का उपयोग करके सभी संसाधन सक्षम कर सकते हैं -a ध्वज, यह -e सभी स्विच के बराबर है।

$ sudo tcpflow -a  
OR
$ sudo tcpflow -e all

एक विशिष्ट स्कैनर को भी सक्रिय किया जा सकता है; उपलब्ध स्कैनर में प्रत्येक स्कैनर के बारे में विस्तृत जानकारी देखने के लिए md5, http, netviz, tcpdemux और wifiviz (रन tcpflow -H शामिल हैं)।

$ sudo tcpflow -e http
OR
$ sudo tcpflow -e md5
OR
$ sudo tcpflow -e netviz
OR
$ sudo tcpflow -e tcpdemux
OR
$ sudo tcpflow -e wifiviz

निम्न उदाहरण दिखाता है कि tcpdemux को छोड़कर सभी स्कैनर को कैसे सक्षम किया जाए।

$ sudo tcpflow -a -x tcpdemux 

टीसीपीफ्लो आमतौर पर पैकेट कैप्चर करने से पहले नेटवर्क इंटरफेस को उचित मोड में डालने की कोशिश करता है। जैसा कि दिखाया गया है आप -p ध्वज का उपयोग करके इसे रोक सकते हैं।

$ sudo tcpflow -p -i eth0

Tcpdump pcap फ़ाइल से पैकेट पढ़ने के लिए, -r ध्वज का उपयोग करें।

$ sudo tcpflow -f file.pcap

आप -v या -d 10 विकल्पों का उपयोग करके वर्बोज़ मोड को सक्षम कर सकते हैं।

$ sudo tcpflow -v
OR
$ sudo tcpflow -d 10

लाल

अधिक जानकारी और उपयोग के विकल्प के लिए, tcpflow मैन पेज देखें।

$ man tcpflow 

TCPflow Github रिपॉजिटरी : https://github.com/simsong/tcpflow

अभी के लिए इतना ही! TCPflow एक शक्तिशाली TCP प्रवाह रिकॉर्डर है जो नेटवर्क पैकेट प्रवाह और प्रदर्शन नेटवर्क फोरेंसिक को समझने के लिए उपयोगी है, और बहुत कुछ। इसे आज़माएं और टिप्पणियों में हमारे साथ अपने विचारों को साझा करें।