अपाचे के साथ पूरे HTTP अनुरोधों को कैसे डंप करें


27

क्या अपाचे द्वारा संपूर्ण HTTP अनुरोधों को डंप करना संभव है? मुझे इनकमिंग अनुरोधों के सभी HTTP हेडर को ट्रैक करने की आवश्यकता है। उसको कैसे करे?

जवाबों:


30

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

tcpdump:
सर्वर से चलने वाला निम्न कमांड आपको पोर्ट 80 के लिए नियत सभी पैकेट दिखाएगा:

sudo tcpdump -s 0 -X 'tcp dst port 80'

कैपिटल एक्स स्विच हेक्स और एएससीआईआई में पेलोड को डंप करता है। 0 के साथ s स्विच का अर्थ है पूरा पैकेट प्राप्त करना। 'tcp dst port 80' का अर्थ है tcp हैडर में पोर्ट 80 के लिए नियत फ़िल्टर और केवल शो पैकेट।

Wireshark:
अधिक उपयोगकर्ता के अनुकूल संस्करण के लिए, यदि आपके पास कोई GUI चल रहा है, तो तारशर्क पर विचार करें (औपचारिक रूप से ईथर के रूप में जाना जाता है)।


1
धन्यवाद काइल, मैं tcpdump के uoutput से HTTP हेडर की जानकारी कैसे निकालूं?
एलेक्स

1
एलेक्स: तुम्हें पता है क्या, Wireshark एक बहुत आसान कर देगा। आप किसी फ़ाइल में डंप को बचाने के लिए -r फ़ाइल नाम का उपयोग कर सकते हैं , और फिर इसे अपने डेस्कटॉप पर वायरशार्क के साथ खोल सकते हैं।
काइल ब्रान्ड

यदि आप उत्तर चाहते हैं तो ओह, और 'dst' को छोड़ दें।
काइल ब्रान्ड

1
-Aकेवल-पाठ के लिए (कोई हेक्स डंप):sudo tcpdump -A -s 0 'tcp dst port 80'
ब्रेंट फस्ट

12

शायद कुकीज़ की डंपिंग ? अन्यथा - mod_dumpio को देखें


1
mod_dumpio अच्छा लगता है! एसएसएल का उपयोग करते हुए शायद जानकारी को डंप करने का आसान तरीका (हालांकि वायरहर्स्क ऐसा कर सकते हैं)। +1 :-)
काइल ब्रान्ड

8

बेसिक पैकेट सूँघना tcpdump और grep के संकर के साथ आसान है। कुछ परिदृश्यों में अगर आप यह देखना चाहते हैं कि वेब ब्राउज़र वेब सर्वर से कैसे संवाद करते हैं, और HTTP हेडर का निरीक्षण करते हैं।
इस उदाहरण में, इस तरह एक वेबसर्वर पर एक ngrep चलाएं:

$ ngrep port 80

आप "GET /" अनुरोध को HTTP अनुरोध को 80 के आधार पर पोर्ट करने के लिए फ़िल्टर करने का विकल्प भी चुन सकते हैं:

$ ngrep -q '^GET .* HTTP/1.[01]'

ग्राहक पक्ष, टैम्पर डेटा नामक एक उपयोगी उपकरण है यह एक फ़ायरफ़ॉक्स एक्सटेंशन है जो आपको HTTP अनुरोधों को देखने, रिकॉर्ड करने और यहां तक ​​कि संशोधित करने की शक्ति देता है।
आप अधिक जानकारी यहाँ पा सकते हैं


7

Tcpdump या wirehark का उपयोग करने के बजाय, tcpflow का उपयोग करें। यह tcpdump के प्रतिस्थापन में एक गिरावट है, लेकिन हर कनेक्शन के प्रत्येक पक्ष के लिए एक फ़ाइल बनाता है, इसलिए आपको स्ट्रीम को स्वयं डिकोड करने का प्रयास करने की आवश्यकता नहीं है।


इसके लिए धन्यवाद। मैं mod_negotiate का उपयोग कर रहा हूं और मेरे कर्ल () ने .bak फ़ाइलों को वरीयता में .php जबकि ब्राउज़र में .php पाया है। लोहे के चने चबाना।
mckenzm

0

अपाचे में निर्मित कार्यक्षमता है; बस में वृद्धि लॉग स्तर को trace7या trace8:

LogLevel trace8

ध्यान दें कि यह बहुत सारा डेटा डंप करेगा । आपको चेतावनी दी गई है।

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