मेरे पास अपाचे वाला सर्वर है और मैंने हाल ही में mod_security2 स्थापित किया है क्योंकि मुझे इस पर बहुत अधिक हमले होते हैं:
मेरा Apache संस्करण Apache v2.2.3 है और मैं mod_security2.c का उपयोग करता हूं
यह त्रुटि लॉग से प्रविष्टियां थीं:
[Wed Mar 24 02:35:41 2010] [error]
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:47:31 2010] [error]
[client 202.75.211.90] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:47:49 2010] [error]
[client 95.228.153.177] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:48:03 2010] [error]
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
यहाँ access_log से त्रुटियाँ हैं:
202.75.211.90 - -
[29/Mar/2010:10:43:15 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - -
[29/Mar/2010:11:40:41 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - -
[29/Mar/2010:12:37:19 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
मैंने mod_security2 को इस तरह कॉन्फ़िगर करने की कोशिश की:
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecFilterSelective REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"
Mod_security2 में बात यह है कि SecFilterSelective का उपयोग नहीं किया जा सकता है, यह मुझे त्रुटियां देता है। इसके बजाय मैं इस तरह से एक नियम का उपयोग करता हूं:
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecRule REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"
यहां तक कि यह भी काम नहीं करता है। मुझे पता नहीं है कि अब और क्या करना है। किसी को कोई सलाह है?
अपडेट १
मैं देखता हूं कि mod_security का उपयोग करके कोई भी इस समस्या को हल नहीं कर सकता है। अब तक आईपी-टेबल का उपयोग करना ऐसा करने के लिए सबसे अच्छा विकल्प लगता है, लेकिन मुझे लगता है कि फ़ाइल बहुत बड़ी हो जाएगी क्योंकि आईपी दिन में कई बार सर्वर बदलता है।
मैं 2 अन्य समाधानों के साथ आया, क्या कोई उन पर टिप्पणी कर सकता है कि वह अच्छा है या नहीं।
मेरे दिमाग में आने वाला पहला समाधान इन हमलों को मेरी अपाचे त्रुटि लॉग से बाहर कर रहा है। यह मेरे लिए अन्य जरूरी त्रुटियों को प्राप्त करने के लिए आसान है क्योंकि वे होते हैं और लंबे लॉग को गर्त में नहीं डालना पड़ता है।
दूसरा विकल्प बेहतर है कि मुझे लगता है, और यह उन मेजबानों को रोक रहा है जिन्हें सही तरीके से नहीं भेजा गया है। इस उदाहरण में w00tw00t हमले को hostname के बिना भेजा जाता है, इसलिए मुझे लगता है कि मैं उन होस्ट को ब्लॉक कर सकता हूं जो सही रूप में नहीं हैं।
अपडेट २
उत्तर के गर्त में जाने के बाद मैं निम्नलिखित निष्कर्ष पर आया।
अपाचे के लिए कस्टम लॉगिंग करने के लिए कुछ अनावश्यक पुनरावर्ती खपत होगी, और अगर वास्तव में कोई समस्या है, तो आप शायद कुछ भी याद किए बिना पूर्ण लॉग को देखना चाहेंगे।
केवल हिट को अनदेखा करना और अपनी त्रुटि लॉग का विश्लेषण करने के बेहतर तरीके पर ध्यान केंद्रित करना बेहतर है। अपने लॉग के लिए फ़िल्टर का उपयोग करना इसके लिए एक अच्छा तरीका है।
विषय पर अंतिम विचार
ऊपर उल्लिखित हमला आपकी मशीन तक नहीं पहुंचेगा यदि आपके पास कम से कम अप टू डेट सिस्टम है तो मूल रूप से कोई चिंता नहीं है।
वास्तविक समय से सभी संगीन हमलों को थोड़ी देर के बाद फ़िल्टर करना मुश्किल हो सकता है, क्योंकि त्रुटि लॉग और एक्सेस लॉग दोनों बहुत बड़े हो जाते हैं।
किसी भी तरह से ऐसा होने से रोकना आपके लिए संसाधनों का खर्च होगा और यह एक अच्छा अभ्यास है कि आप अपने संसाधनों को महत्वहीन चीजों पर बर्बाद न करें।
अब मैं जिस समाधान का उपयोग करता हूं वह है लिनक्स लॉगवॉच । यह मुझे लॉग का सारांश भेजता है और उन्हें फ़िल्टर और समूहीकृत किया जाता है। इस तरह आप महत्वपूर्ण को महत्वहीन से आसानी से अलग कर सकते हैं।
मदद के लिए आप सभी का धन्यवाद, और मुझे उम्मीद है कि यह पोस्ट किसी और के लिए भी उपयोगी हो सकती है।