Deaktivieren Sie modsecurity für ein bestimmtes Verzeichnis


11

Wie deaktiviere ich Modsecurity nur für ein bestimmtes Verzeichnis? Ich erhalte Fehler in phpMyAdmin, die durch das Auslösen von Modsecurity basierend auf Regeln verursacht werden. Ich habe die folgenden Dateien eingerichtet:

# /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>

Soweit ich weiß, sollte die erste Datei sie deaktivieren, aber sie wird immer noch ausgelöst. Daher habe ich versucht, die Regel-IDs, die sie auslöst, zur 60-Datei hinzuzufügen, aber sie beschwert sich immer noch.

Ich führe die folgenden Pakete unter CentOS 5.3 aus:

  • mod_security-2.5.0-jason.2
  • httpd-2.2.8-jason.3
  • mod-php5-apache2-zend-ce-5.2.10-65

Die genehmigte Antwort ist nicht sicher. Siehe: serverfault.com/a/766395/345813
SherloxFR

Antworten:


17

SecRuleEngine Off muss funktionieren. Haben Sie versucht, SecRuleEngine in das Verzeichnis aufzunehmen:

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

anstelle von LocationMatch?


1
Versucht, das zu der 15-Datei hinzuzufügen und immer noch die gleichen Fehler zu bekommen, die in modsecurity_audit.log
dragonmantank

Sind die Dateien modsecurity_crs_15_customrules.conf und modsecurity_crs_60.custom.conf in Ihrer /etc/httpd/conf.d/mod_security.conf enthalten (nicht kommentiert)?
hdanniel

facepalm Nein, das waren sie nicht. Das hat sich darum gekümmert.
Drachenmantel

3

Auf einigen Servern und Webhosts ist es möglich, ModSecurity über zu deaktivieren .htaccess, jedoch nur in seiner Gesamtheit (keine einzelnen Regeln).

Um dies auf bestimmte URLs zu beschränken, können Sie in der folgenden <If>Anweisung einen regulären Ausdruck angeben ...

### 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

Deaktiviere niemals alle Regeln !! Dies kann schwerwiegende Sicherheitsprobleme verursachen!

Sie müssen die Protokolldatei von modsecurity mit überprüfen

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

und schließen Sie jede Regel einzeln aus, um die Fehler auf der phpmyadmin-Schnittstelle zu reproduzieren.

Als nächstes fügen Sie hinzu:

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

zu /etc/apache2/mods-enabled/modsecurity.conf

Der Tag , das Sie entfernen müssen werden wie in der Protokolldatei sein dies . Eine vollständige Beschreibung zum Entfernen von Regeln für einen bestimmten Ordner finden Sie im Github-Wiki des Projekts .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.