
TCP/IP पैकेट डीमल्टीप्लेक्सर. डाउनलोड करें:
डाउनलोड निर्देशिका: http://digitalcorpora.org/downloads/tcpflow/
अधिकांश सामान्य GNU/Linux वितरण अपने रिपॉजिटरी में tcpflow शामिल करते हैं। तो Debian/Ubuntu/आदि पर आप कह सकते हैं
sudo apt-get install tcpflow
और Fedora/RedHat/CentOS/आदि पर आप कह सकते हैं
sudo dnf install tcpflow
और बस। यदि किसी कारण से यह पर्याप्त नहीं है, तो आप स्रोत से बना सकते हैं:
Linux के लिए संकलन करने के लिए
सुनिश्चित करें कि आपके पास आवश्यक पूर्वापेक्षाएँ हैं। मूल निर्देशिका में ऐसी फ़ाइलें हैं जो आपके होस्ट ऑपरेटिंग सिस्टम के आधार पर यह करेंगी:
CONFIGURE_ARCH_17_8.sh CONFIGURE_FEDORA_18.sh CONFIGURE_FEDORA_26.sh CONFIGURE_UBUNTU_16_04.sh
आपके OS के आधार पर, बस:
# sudo bash CONFIGURE_<YOUROS>.sh
एक बार जब आप अपना OS कॉन्फ़िगर कर लें, तो इसके साथ संकलन और स्थापित करें:
./configure
make
sudo make install
यदि आप git के साथ डेवलपमेंट ट्री डाउनलोड करना चाहते हैं, तो --recursive के साथ पूर्ण चेकआउट करना सुनिश्चित करें और फिर bootstrap.sh, configure और make चलाएँ:
git clone --recursive https://github.com/simsong/tcpflow.git
cd tcpflow
bash bootstrap.sh
./configure
make
sudo make install
Amazon AMI के लिए डाउनलोड और संकलन करने के लिए:
ssh ec2-user@<your ec2 instance>
sudo bash yum -y install git make gcc-c++ automake autoconf boost-devel cairo-devel libpcap-devel openssl-devel zlib-devel
git clone --recursive https://github.com/simsong/tcpflow.git
sh bootstrap.sh
Fedora Core पर mingw के साथ Windows के लिए संकलन करने के लिए:
yum -y install mingw64-gcc mingw64-gcc-c++ mingw64-boost mingw64-cairo mingw64-zlib
mingw64-configure
make
CMake का उपयोग करने के लिए, विस्तृत निर्देश देखें: cmake/README.md
एक साफ रिपॉजिटरी से सामान्य उपयोगकर्ता (रूट नहीं) के रूप में:
./bootstrap.sh # Generates the file ./configure
./configure # Generates the file tcpflow.spec
rpmbuild -bb tcpflow.spec --build-in-place
specfile और परिणामी RPM की जाँच करें:
rpmlint tcpflow.spec
rpmlint ~/rpmbuild/RPMS/x86_64/tcpflow-....rpm
स्थापित करें:
sudo dnf install ~/rpmbuild/RPMS/x86_64/tcpflow-....rpm
tcpflow एक प्रोग्राम है जो TCP कनेक्शन (प्रवाह) के भाग के रूप में प्रेषित डेटा को कैप्चर करता है, और डेटा को प्रोटोकॉल विश्लेषण और डिबगिंग के लिए सुविधाजनक तरीके से संग्रहीत करता है। प्रत्येक TCP प्रवाह अपनी फ़ाइल में संग्रहीत किया जाता है। इस प्रकार, सामान्य TCP प्रवाह दो फ़ाइलों में संग्रहीत किया जाएगा, प्रत्येक दिशा के लिए एक। tcpflow संग्रहीत 'tcpdump' पैकेट प्रवाह को भी संसाधित कर सकता है।
tcpflow सभी कैप्चर किए गए डेटा को फ़ाइलों में संग्रहीत करता है जिनके नाम निम्न रूप के होते हैं:
[timestampT]sourceip.sourceport-destip.destport[--VLAN][cNNNN]
जहाँ: timestamp उस समय का एक वैकल्पिक टाइमस्टैम्प है जब पहला पैकेट देखा गया था T एक विभाजक है जो इंगित करता है कि टाइमस्टैम्प प्रदान किया गया था sourceip स्रोत IP पता है sourceport स्रोत पोर्ट है destip गंतव्य IP पता है destport गंतव्य पोर्ट है VLAN VLAN पोर्ट है c एक विभाजक है जो इंगित करता है कि एकाधिक कनेक्शन मौजूद हैं NNNN एक कनेक्शन काउंटर है, जब एक ही [समय]/sourceip/sourceport/destip/destport संयोजन के साथ एकाधिक कनेक्शन होते हैं। ध्यान दें कि जब टाइमस्टैम्प उपसर्ग किया जाता है तो कनेक्शन गणना शायद ही कभी होती है।
यहाँ कुछ उदाहरण हैं:
128.129.130.131.02345-010.011.012.013.45103
उपरोक्त फ़ाइल की सामग्री होस्ट 128.129.131.131 पोर्ट 2345 से होस्ट 10.11.12.13 पोर्ट 45103 को प्रेषित डेटा होगा।
128.129.130.131.02345-010.011.012.013.45103c0005
128.129.131.131 पोर्ट 2345 से होस्ट 10.11.12.13 पोर्ट 45103 तक छठा कनेक्शन।
1325542703T128.129.130.131.02345-010.011.012.013.45103
128.129.131.131 पोर्ट 2345 से होस्ट 10.11.12.13 पोर्ट 45103 तक एक कनेक्शन, जो 2 जनवरी, 2012 को शाम 5:19 बजे (-0500) पर शुरू हुआ
128.129.130.131.02345-010.011.012.013.45103--3
एक कनेक्शन 128.129.131.131 पोर्ट 2345 से होस्ट 10.11.12.13 पोर्ट 45103 तक जो VLAN पोर्ट 3 पर देखा गया था।
आप -F और -T विकल्पों के साथ फ़ाइलनाम बनाने के लिए उपयोग किए जाने वाले टेम्पलेट को बदल सकते हैं। यदि टेम्पलेट में कोई निर्देशिका दिखाई देती है तो निर्देशिका स्वचालित रूप से बनाई जाएगी।
यदि आप -a विकल्प का उपयोग करते हैं, तो tcpflow स्वचालित रूप से HTTP प्रतिक्रियाओं की व्याख्या करेगा।
यदि आउटपुट फ़ाइल है
208.111.153.175.00080-192.168.001.064.37314,
तब पोस्ट-प्रोसेसिंग फ़ाइलें बनाएगा:
208.111.153.175.00080-192.168.001.064.37314-HTTP
208.111.153.175.00080-192.168.001.064.37314-HTTPBODY
यदि HTTPBODY को GZIP के साथ संपीड़ित किया गया था, तो आपको एक तीसरी फ़ाइल भी मिल सकती है:
208.111.153.175.00080-192.168.001.064.37314-HTTPBODY-GZIP
इन स्ट्रीम के बारे में अतिरिक्त जानकारी, जैसे उनका MD5 हैश मान, DFXML फ़ाइल में भी लिखी जाती है
tcpflow 'tcpdump' के समान है, क्योंकि दोनों वायर या संग्रहीत फ़ाइल से पैकेट संसाधित करते हैं। लेकिन यह इस मायने में भिन्न है कि यह वास्तविक डेटा स्ट्रीम का पुनर्निर्माण करता है और बाद के विश्लेषण के लिए प्रत्येक प्रवाह को एक अलग फ़ाइल में संग्रहीत करता है।
tcpflow अनुक्रम संख्याओं को समझता है और पुनर्प्रेषण या अव्यवस्थित वितरण की परवाह किए बिना डेटा स्ट्रीम का सही ढंग से पुनर्निर्माण करेगा। हालाँकि, tcpflow वर्तमान में IP खंडों को नहीं समझता है; IP खंडों वाले प्रवाह ठीक से रिकॉर्ड नहीं होंगे।
tcpflow DFXML प्रारूप में एक सारांश रिपोर्ट फ़ाइल आउटपुट कर सकता है। इस फ़ाइल में उस सिस्टम के बारे में जानकारी शामिल है जिस पर tcpflow प्रोग्राम संकलित किया गया था, जहाँ इसे चलाया गया था, और प्रत्येक TCP प्रवाह, जिसमें स्रोत और गंतव्य IP पते और पोर्ट, बाइट्स की संख्या, पैकेट की संख्या, और (वैकल्पिक रूप से) प्रत्येक बाइटस्ट्रीम का MD5 हैश शामिल है।
tcpflow LBL पैकेट कैप्चर लाइब्रेरी (ftp://ftp.ee.lbl.gov/libpcap.tar.Z पर उपलब्ध) का उपयोग करता है और इसलिए 'tcpdump' जैसे प्रोग्राम द्वारा समर्थित समृद्ध फ़िल्टरिंग अभिव्यक्तियों का समर्थन करता है। इसे UNIX के अधिकांश लोकप्रिय संस्करणों के तहत संकलित होना चाहिए; विवरण के लिए INSTALL फ़ाइल देखें।
tcpflow नेटवर्क पैकेट प्रवाह को समझने और नेटवर्क फोरेंसिक करने के लिए एक उपयोगी उपकरण है। WireShark जैसे प्रोग्रामों के विपरीत, जो बहुत सारे पैकेट या एक एकल TCP कनेक्शन दिखाते हैं, tcpflow संदर्भ में सैकड़ों, हजारों, या सैकड़ों हजारों TCP कनेक्शन दिखा सकता है।
tcpflow का एक सामान्य उपयोग HTTP सत्रों की सामग्री को प्रकट करना है। tcpflow का उपयोग करके आप HTTP पर डाउनलोड किए गए वेब पेजों का पुनर्निर्माण कर सकते हैं। आप 'ड्राइव-बाय डाउनलोड' के रूप में वितरित मैलवेयर भी निकाल सकते हैं।
जेरेमी एल्सन ने मूल रूप से इस प्रोग्राम को उन प्रोटोकॉल को रिवर्स इंजीनियर करने के प्रयास में अप्रलेखित नेटवर्क प्रोटोकॉल का उपयोग करने वाले विभिन्न प्रोग्रामों द्वारा भेजे जा रहे डेटा को कैप्चर करने के लिए लिखा था। RealPlayer (और अधिकांश अन्य स्ट्रीमिंग मीडिया प्लेयर), ICQ और AOL IM इस प्रकार के एप्लिकेशन के अच्छे उदाहरण हैं। बाद में इसका उपयोग HTTP प्रोटोकॉल विश्लेषण के लिए किया गया।
सिम्सन गारफिंकेल ने 1998 में सैंडस्टॉर्म एंटरप्राइजेज की स्थापना की। सैंडस्टॉर्म ने TCPDEMUX नामक tcpflow के समान एक प्रोग्राम और NetIntercept नामक प्रोग्राम का दूसरा संस्करण बनाया। वे प्रोग्राम वाणिज्यिक हैं। सिम्सन के सैंडस्टॉर्म छोड़ने के बाद उन्हें एक tcp प्रवाह पुनःसंयोजन प्रोग्राम की आवश्यकता थी। उन्होंने tcpflow पाया और इसका रखरखाव अपने हाथ में ले लिया।
कृपया github issue tracker पर बग दर्ज करें: https://github.com/simsong/tcpflow/issues?state=open
tcpflow वर्तमान में IP खंडों को नहीं समझता है। IP खंडों वाले प्रवाह सही ढंग से रिकॉर्ड नहीं होंगे। IP विखंडन तेजी से एक दुर्लभ घटना है, इसलिए यह कोई महत्वपूर्ण समस्या प्रतीत नहीं होती है।
यदि आप tcpflow के बारे में कोई लेख लिख रहे हैं, तो कृपया हमारी तकनीकी रिपोर्ट का हवाला दें:
Simson L. Garfinkel [email protected]
मैं bulk_extractor, tcpflow, be13_api और dfxml को आधुनिक C++ में पोर्ट करना जारी रखता हूँ। मानकों का सर्वेक्षण करने के बाद मैंने C++17 के साथ जाने का फैसला किया है, न कि C++14, क्योंकि 17 के लिए समर्थन अब व्यापक है। (मुझे शायद 20 की आवश्यकता नहीं है)। मैं autotools के साथ बना हुआ हूँ, हालाँकि CMake पर जाने का एक मजबूत कारण प्रतीत होता है। मैं be13_api और dfxml को मॉड्यूल के रूप में रख रहा हूँ जो पायथन-शैली में शामिल किए जाते हैं, बजाय उन्हें स्वतंत्र लाइब्रेरी बनाने के जिनसे लिंक किया जाता है। हालाँकि, मैं 100% निश्चित नहीं हूँ कि यह सही निर्णय है।
यह परियोजना अपेक्षा से अधिक समय ले रही है क्योंकि मैं एक सामान्य कोड रिफैक्टरिंग भी कर रहा हूँ। मुख्य चीज़ जो समय ले रही है, वह यह पता लगाना है कि पार्सर विकल्पों और कॉन्फ़िगरेशन से संबंधित सभी C++ ऑब्जेक्ट्स को कैसे अलग किया जाए।
यह देखते हुए कि tcpflow और bulk_extractor दोनों be13_api का उपयोग करते हैं, मेरा ध्यान tcpflow का उपयोग करके be13_api को संचालित करने पर स्थानांतरित हो गया है, क्योंकि यह एक सरल प्रोग्राम है। मैं अब लगभग तीन-चौथाई रास्ते पर हूँ। मैं 2020 के अंत से पहले कुछ पूरा करने की उम्मीद करता हूँ।
--- Simson Garfinkel, 18 अक्टूबर, 2020
धन्यवाद: