Désactiver la modsécurité pour un répertoire spécifique

11

Comment désactiver la sécurité mods pour un répertoire spécifique uniquement. Je reçois des erreurs dans phpMyAdmin qui sont causées par un déclenchement de modsecurity basé sur des règles. J'ai les fichiers suivants configurés:

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

D'après ce que je peux trouver, le premier fichier devrait le désactiver, mais il se déclenche toujours, j'ai donc essayé d'ajouter les ID de règle, il se déclenche dans le fichier 60, mais il se plaint toujours.

J'exécute les packages suivants sur CentOS 5.3:

  • mod_security-2.5.0-jason.2
  • httpd-2.2.8-jason.3
  • mod-php5-apache2-zend-ce-5.2.10-65
dragonmantank
la source
La réponse approuvée n'est pas sécurisée. Voir: serverfault.com/a/766395/345813
SherloxFR

Réponses:

17

SecRuleEngine Off doit fonctionner. Avez-vous essayé de mettre SecRuleEngine dans le répertoire:

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

au lieu de LocationMatch?

hdanniel
la source
1
J'ai essayé d'ajouter cela au fichier 15 et d'obtenir toujours les mêmes erreurs dans modsecurity_audit.log
dragonmantank
Les fichiers modsecurity_crs_15_customrules.conf et modsecurity_crs_60.custom.conf sont-ils inclus (non commentés) dans votre /etc/httpd/conf.d/mod_security.conf?
hdanniel
facepalm Non, ils ne l'étaient pas. Cela s'en est occupé.
dragonmantank
3

Sur certains serveurs et hébergeurs Web, il est possible de désactiver ModSecurity via .htaccess, mais uniquement dans son intégralité (pas de règles individuelles).

Pour limiter cela à des URL spécifiques, vous pouvez spécifier une expression régulière dans la <If>déclaration ci-dessous ...

### 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>
Simon East
la source
2

Ne désactivez jamais toutes les règles !! Cela pourrait entraîner de graves problèmes de sécurité!

Vous devez vérifier le fichier journal de modsecurity avec

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

et exclure chaque règle une par une reproduisant les erreurs sur l'interface phpmyadmin.

Ensuite, ajoutez:

<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

La balise que vous devez supprimer sera dans le fichier journal comme ceci . Pour une description complète de la suppression des règles pour un dossier particulier, consultez le wiki Github du projet .

SherloxFR
la source