एक विशिष्ट निर्देशिका के लिए modsecurity अक्षम करें


11

आप केवल एक विशिष्ट निर्देशिका के लिए modsecurity को कैसे अक्षम करते हैं। मुझे phpMyAdmin में त्रुटियाँ मिल रही हैं जो नियमों के आधार पर modsecurity ट्रिपिंग के कारण होती हैं। मेरे पास निम्नलिखित फाइलें हैं:

# /etc/httpd/modsecurity.d/modsecurity_crs_15_customrules.conf
<LocationMatch "^/phpMA/">
    SecRuleEngine Off
</LocationMatch>

# /etc/httpd/modsecurity.d/modsecurity_crs_60.custom.conf
<LocationMatch '^/phpMA/*'>
    SecRuleRemoveById 950004
    SecRuleRemoveById 950005
    SecRuleRemoveById 950006
    SecRuleRemoveById 960010
    SecRuleRemoveById 960012
</LocationMatch>

जिस चीज़ से मुझे पहली फ़ाइल मिल सकती है, उसे उसे निष्क्रिय कर देना चाहिए, लेकिन यह अभी भी ट्रिप करती है, इसलिए मैंने नियम आईडी को जोड़ने की कोशिश की, यह 60 फ़ाइल के लिए ट्रिपिंग है, लेकिन यह अभी भी शिकायत करता है।

मैं CentOS 5.3 पर निम्नलिखित पैकेज चला रहा हूं:

  • mod_security-2.5.0-jason.2
  • httpd-2.2.8-jason.3
  • आधुनिक-PHP5-apache2-Zend-ce-5.2.10-65

स्वीकृत उत्तर सुरक्षित नहीं है। का संदर्भ लें: serverfault.com/a/766395/345813
शेरॉक्सटीवी

जवाबों:


17

SecRuleEngine बंद काम करना चाहिए। क्या आपने निर्देशिका के अंदर SecRuleEngine लगाने की कोशिश की है:

<Directory /var/www/site/phpMA>
SecRuleEngine Off
</Directory>

स्थानमंच के बजाय?


1
उस 15 फ़ाइल में जोड़ने की कोशिश की और अभी भी modsecurity_audit.log में पकड़े जाने पर वही त्रुटियां हो रही हैं
dragonmantank

क्या फ़ाइलें आपके /etc/httpd/conf.dmod_security.conf में modsecurity_crs_15_customrules.conf और modsecurity_crs_60.custom.conf शामिल हैं (टिप्पणी नहीं की गई)?
hdanniel

facepalm नहीं, वे नहीं थे। इसका ख्याल रखा।
ड्रैगनमिंटक

3

पर कुछ सर्वर और वेब होस्ट, यह के माध्यम से अक्षम ModSecurity संभव है .htaccess, लेकिन केवल अपनी संपूर्णता (न कि व्यक्तिगत नियम) में।

इसे विशिष्ट URL तक सीमित करने के लिए आप <If>नीचे दिए गए विवरण में एक regex निर्दिष्ट कर सकते हैं ...

### DISABLE mod_security firewall
### Some rules are currently too strict and are blocking legitimate users
### We only disable it for URLs that contain the regex below
### The regex below should be placed between "m#" and "#" 
### (this syntax is required when the string contains forward slashes)
<IfModule mod_security.c>
  <If "%{REQUEST_URI} =~ m#/admin/#">
    SecFilterEngine Off
    SecFilterScanPOST Off
  </If>
</IfModule>

2

सभी नियमों को कभी भी अक्षम न करें !! यह गंभीर सुरक्षा मुद्दों का कारण बन सकता है!

आप के साथ modsecurity के लॉगफ़ाइल की जाँच करने की आवश्यकता है

tail -f /var/log/apache2/modsec_audit.log

और phpmyadmin इंटरफ़ेस की त्रुटियों को पुन: प्रस्तुत करके एक-एक नियम को बाहर करें।

अगला, जोड़ें:

<Directory /path/to/phpmyadmin>
    <IfModule security2_module>
        SecRuleRemoveByTag "WEB_ATTACK/SQL_INJECTION"
        {And other rules you need to disable ...}
    </IfModule>
</Directory>

/etc/apache2/mods-enabled/modsecurity.conf पर

आपको जिस टैग को हटाने की जरूरत है वह इस तरह लॉग फाइल में होगा । किसी विशेष फ़ोल्डर के लिए नियमों को हटाने के पूर्ण विवरण के लिए, प्रोजेक्ट की गीथूब विकी देखें ।

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