एकल अनुप्रयोग का डंप नेटवर्क ट्रैफ़िक (स्ट्रेस-लाइक)


11

मैं एक आवेदन द्वारा उत्पन्न नेटवर्क डेटा के pcap डंप करने के लिए एक रास्ता खोज रहा हूँ, एक straceसिस्मिलर तरीके से डंप syscalls, आदि:

net-strace somecommand -args

somecommandनेटवर्क पर कुछ करना होगा, और net-straceउस ऐप द्वारा उत्पन्न सभी ट्रैफ़िक (+ उत्तरों और संबंधित ट्रैफ़िक) के एक pcap डंप को बचाएगा।

क्या इसे हासिल किया जा सकता है?


समस्या यह है कि अनुप्रयोग पैकेट नहीं भेजते हैं (पिंग जैसे कच्चे सॉकेट का उपयोग करने वालों को छोड़कर) लेकिन एक नेटवर्किंग एपीआई का उपयोग करें जो उनकी ओर से पैकेट भेजने (और संबंधित को प्राप्त करने) का कारण बनता है।
स्टीफन चेज़लस

हाँ, लेकिन ऐसे अनुप्रयोग हैं (उदाहरण के लिए समीपस्थ - proxychains.sourceforge.net ) जो प्रॉक्सी के माध्यम से सभी अनुप्रयोग डेटा चलाते हैं। पता नहीं वे इसे कैसे करते हैं, लेकिन वे इसे पकड़ सकते हैं और इसे प्रॉक्सी के माध्यम से भेज सकते हैं। हो सकता है कि यदि कोई साधारण प्रॉक्सी (स्थानीय रूप से चलाया जाए), जो डंप को प्राप्त कर सके, तो डंप को प्राप्त करने के लिए प्रॉक्साइहिन्स + प्रॉक्सी कॉम्बो का उपयोग किया जा सकता है।
जंवाई

वे पैकेट से एपीआई (LD_PRELOAD के साथ) को अपहरण करने की अधिक संभावना रखते हैं। कहा जा रहा है कि, कोई व्यक्ति कुछ सेटस्कॉप्टॉप (SO_MARK) को अनुप्रयोगों में इंजेक्ट करने में सक्षम हो सकता है और पैकेट को ulog में प्रवेश करने के लिए netfilter का उपयोग कर सकता है।
स्टीफन चेज़लस

3
एप्लिकेशन के लिए एक नया नेटवर्क नामस्थान बनाएं और सभी ट्रैफ़िक को कैप्चर करें, साथ ही कुछ उपयोग मामलों के लिए एक स्वीकार्य दृष्टिकोण हो सकता है।
स्टीफन चेज़लस

जवाबों:


3

कैसे अपने आप स्ट्रेस का उपयोग करने के बारे में?

strace -f -e trace=network -o output_file -s 10000 somecommand -args

आपके द्वारा दी गई कमांड लाइन केवल DNS अनुरोधों को प्रदर्शित करती है। स्ट्रेस का -eविकल्प अक्सर वह नहीं चुनता है जो आप वास्तव में चाहते हैं।
रॉबिन ग्रीन

2

आप अलग-अलग तरीकों से एप्लिकेशन जनरेट किए गए ट्रैफ़िक को डंप कर सकते हैं:

यदि आपको पता है कि अनुप्रयोग द्वारा उपयोग किए जा रहे पोर्ट्स हैं, तो आप इन पोर्ट्स के लिए विशिष्ट फ़िल्टरिंग नियमों के साथ tcpdump या wirehark चला सकते हैं ।

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

आप इस संबंधित विषय पर अधिक संपूर्ण जानकारी पा सकते हैं: /ubuntu/11709/how-can-i-capture-network-traffic-of-a-single-process

आप भी इस कार्यक्रम दिलचस्प लग सकते tracedump के रूप में पिछले विषय के आधार पर कहा गया है। http://mutrics.iitis.pl/tracedump

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.