web-dev-qa-db-fra.com

Comment faire en sorte qu'Apache arrête de consigner "ModSecurity: Accès refusé"?

J'ai Apache configuré sur un serveur Linux et mod_security activé. J'ai quelques lignes qui ressemblent à:

SecRule REQUEST_URI "^/*admin" drop,phase:1

Parce qu'il n'y a pas de /admin sur mon site Web et que je ne veux pas gaspiller les ressources du serveur pour servir une page 404 à un bot ou à un pirate informatique.

J'ai remarqué que chaque fois qu'une page telle que /admin est visitée, je vois dans mes journaux d'accès Apache qu'un statut HTTP 301 avec 0 octet de contenu a été renvoyé (ce qui est exactement ce que je veux). Cependant, je reçois également une ligne ModSecurity: Access denied with connection close (phase 1). Pattern match "^/*admin" at REQUEST_URI. dans mes journaux d'erreurs Apache.

Est-il possible de continuer à ce que mod_security ajoute ces abandons de connexion à mes journaux d'accès, sans rien ajouter à mes journaux d'erreurs?

2
user28412

Assurez-vous de ne pas avoir log spécifié - dans la documentation sur ModSecurity:

Description : Indique qu'une correspondance réussie de la règle doit être enregistrée.

Exemple:

SecAction phase:1,id:117,pass,initcol:ip=%{REMOTE_ADDR},log

Cette action consignera les correspondances dans le fichier Apache journal des erreurs et dans le journal d'audit de ModSecurity.

Au lieu de cela, spécifiez nolog :

Description : empêche les correspondances de règles d'apparaître dans les journaux error et d'audit.

Exemple :

SecRule REQUEST_HEADERS:User-Agent "Test" allow,nolog,id:121

Bien que nolog implique noauditlog, vous pouvez remplacer le premier en utilisant nolog, auditlog.

2
dan