logging tvs अपाचे में पोस्ट डेटा लॉग करने का सबसे अच्छा तरीका?




अपाचे बाइक नई मॉडल (6)

कल्पना कीजिए कि आपके पास एक साइट एपीआई है जो पैरामीटर के साथ जीईटी अनुरोधों के रूप में डेटा को स्वीकार करती है, या POST अनुरोध (मानक यूआरएल-एन्कोडेड, और-पृथक पोस्ट डेटा के साथ) के रूप में स्वीकार करती है। यदि आप एपीआई कॉल लॉग और विश्लेषण करना चाहते हैं, तो जीईटी अनुरोध आसान होगा, क्योंकि वे अपाचे लॉग में होंगे। क्या अपाचे लॉग में पोस्ट डेटा प्राप्त करने का कोई आसान तरीका भी है?

(बेशक हम आवेदन में स्पष्ट रूप से POST डेटा लॉग कर सकते हैं, लेकिन मुझे एक कॉन्फ़िगरेशन-स्तरीय तरीका होना चाहिए जो मुझे कोड में इसके बारे में चिंता न करे।)


आप POST डेटा देखने के लिए ModSecurity का उपयोग कर सकते हैं।

डेबियन / उबंटू पर स्थापित करें:

$ sudo apt install libapache2-mod-security2

अनुशंसित विन्यास फाइल का प्रयोग करें:

$ sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

और निम्नलिखित पंक्तियों को संपादित करें

SecRuleEngine DetectionOnly
SecAuditEngine RelevantOnly

सेवा मेरे

SecRuleEngine On
SecAuditEngine On

अपाचे पुनः लोड करें:

$ sudo service apache2 reload

अब आप अपना डेटा /var/log/apache2/modsec_audit.log अंतर्गत लॉग इन करेंगे

$ tail -f /var/log/apache2/modsec_audit.log
--2222229-A--
[23/Nov/2017:11:36:35 +0000] 
--2222229-B--
POST / HTTP/1.1
Content-Type: application/json
User-Agent: curl
Host: example.com

--2222229-C--
{"test":"modsecurity"}

सर्वर पर पहुंचने से पहले POST डेटा लॉग इन करना एक आसान विकल्प हो सकता है। वेब अनुप्रयोगों के लिए, मैं Burp प्रॉक्सी का उपयोग करता हूं और इसे HTTP / S प्रॉक्सी के रूप में उपयोग करने के लिए फ़ायरफ़ॉक्स सेट करता हूं, और फिर मैं वास्तविक समय में 'तार पर डेटा' (और मैंगल) देख सकता हूं।

ब्राउज़र के बिना एपीआई अनुरोध करने के लिए, सोपयूआई बहुत उपयोगी है और समान जानकारी दिखा सकता है। मैं शर्त लगाता हूं कि आप शायद बुप के माध्यम से कनेक्ट करने के लिए सोपूआई को कॉन्फ़िगर कर सकते हैं (हालांकि अनुमान लगाया गया है)।


मैं इसे वास्तव में आवेदन में करूँगा। यह अभी भी आपके लॉगर सिस्टम के आधार पर रनटाइम पर कॉन्फ़िगर करने योग्य है। उदाहरण के लिए, यदि आप अपाचे लॉग (log4j / cxx) का उपयोग करते हैं तो आप ऐसे यूआरएल के लिए एक समर्पित लॉगर कॉन्फ़िगर कर सकते हैं और फिर इसे एक्सएमएल फाइल से रनटाइम पर कॉन्फ़िगर कर सकते हैं।


वास्तव में एक जवाब नहीं है, लेकिन मैंने कभी अपाचे में ऐसा करने का कोई तरीका नहीं सुना है। मुझे लगता है कि एक विस्तार मॉड्यूल के साथ यह संभव हो सकता है, लेकिन मुझे नहीं पता कि कोई लिखा गया है या नहीं।

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


अपाचे के mod_dumpio का प्रयोग करें। स्पष्ट कारणों से सावधान रहें।

ध्यान दें कि mod_dumpio पहले शून्य चरित्र पर बाइनरी पेलोड लॉगिंग रोकता है । उदाहरण के लिए एक gzip'd फ़ाइल का एक multipart/form-data अपलोड शायद mod_dumpio के साथ पहले कुछ बाइट्स दिखाएगा।

यह भी ध्यान रखें कि Apache शायद इस मॉड्यूल का उल्लेख httpd.conf भी नहीं हो सकता है, भले ही यह /modules फ़ोल्डर में मौजूद हो। बस LoadModule मैन्युअल रूप से जोड़ना ठीक काम करेगा।


हालांकि जवाब देने में देर हो चुकी है। यह मॉड्यूल कर सकता है: https://github.com/danghvu/mod_dumpost







apache-config