L'utilisation de [ModSecurity](http://www.modsecurity.org) permet
de bloquer certaines requêtes HTTP (attaques XSS connues, etc.) au
niveau d'Apache. On l'installe avec le [OWASP ModSecurity Core Rule Set](https://coreruleset.org/) (CRS)
qui est un ensemble de règles ModSecurity couvrant un large spectre d'attaques possibles.
L'utilisation du moteur [ModSecurity](http://www.modsecurity.org) permet de bloquer certaines requêtes HTTP (injections SQL, attaques XSS connues, etc.) au niveau d'Apache. On l'installe avec le [OWASP ModSecurity Core Rule Set](https://coreruleset.org/) (CRS) qui est un ensemble de règles couvrant un large spectre d'attaques possibles. Elles sont définit dans le dossier `/usr/share/modsecurity-crs/rules/`
Le comportement par défaut est de générer de faux positifs pour ajuster les réglages en fonction du niveau de sécurité que l'on veut appliquer à l'application. il inspecte le contenu des demandes clients ET les réponses serveurs à la recherche de signes d'attaques car il a pour rôle de Pare-feu applicatif.
# Définis quels codes HTTP doivent être enregistrés dans les logs
#SecAuditLogRelevantStatus "^[45]"
# use only one log file
# Utiliser un seul fichier de log
SecAuditLogType Serial
# audit log file
# Emplacement du fichier de log
SecAuditLog /var/log/apache2/modsec_audit.log
# what is logged
# Définis les types de métadonnées qui seront conservés
SecAuditLogParts "ABIFHZ"
# Définis l'argument utilisé pour séparer les URL encodés
#SecArgumentSeparator "&"
# Définis le format du cookie
SecCookieFormat 0
# Emplacement du fichier de debug
SecDebugLog /var/log/apache2/modsec_debug.log
# On définit pas de log
SecDebugLogLevel 0
SecDataDir /tmp
SecTmpDir /tmp
#########
# RULES
#########
@ -967,24 +986,17 @@ SecRuleRemoveById "930000"
~~~
Nous désactivons le log d'audit par défaut, puisque l’information
enregistrée dans le log d'erreur Apache est suffisante pour connaître
la raison d'un bloquage. Par contre, il est utile de le réactiver (avec `SecAuditEngine RelevantOnly`) lorsque
vous faites un audit des règles applicables a un serveur ou lors de la rédaction
de nouvelles règles. Dans ce cas, il existe des [outils](https://github.com/Apache-Labor/labor/blob/master/bin/.apache-modsec.alias)
À propos [des directives Apache](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x))
Nous désactivons le log d'audit par défaut, puisque l’information enregistrée dans le log d'erreur Apache est suffisante pour connaître la raison d'un bloquage. Par contre, il est utile de le réactiver (avec `SecAuditEngine RelevantOnly`) lorsque
vous faites un audit des règles applicables a un serveur ou lors de la rédaction de nouvelles règles. Dans ce cas, il existe des [outils](https://github.com/Apache-Labor/labor/blob/master/bin/.apache-modsec.alias)
pour faciliter l’obtention de statistiques du audit log.
On peut aussi ajuster certains paramètres de ModSecurity Core Rule
Set en modifiant le fichier `/etc/modsecurity/crs/crs-setup.conf`.
C'est notamment ici qu'il faudra ajuster si on utilise d'autres
méthodes HTTP (comme PATCH, PUT, DELETE...) qui sont bloquées par défaut.
On peut ajuster certains paramètres de ModSecurity Core Rule Set en personalisant le fichier `/etc/modsecurity/crs/crs-setup.conf`.
C'est notamment ici qu'il faudra ajuster si on utilise d'autres méthodes HTTP (comme PATCH, PUT, DELETE...) qui sont bloquées par défaut.
On pourra désactiver modsecurity dans des vhosts ou sur des dossiers
en particulier en jouant avec la directive `SecRuleEngine Off`.
Ceci peut être utile en cas de problèmes, mais il est toujours mieux
de faire un léger audit afin d’identifier les règles problématiques
et les désactiver avec `SecRuleRemoveById XXXX`, comme nous le
faisont avec les règles 910*.
On pourra désactiver modsecurity dans des vhosts ou sur des dossiers en particulier en jouant avec la directive `SecRuleEngine Off`.
Ceci peut être utile en cas de problèmes, mais il est toujours mieux de faire un léger audit afin d’identifier les règles problématiques et les désactiver avec `SecRuleRemoveById XXXX`, comme nous le faisont avec les règles 910*.
~~~
<Directory"/home/monsite/www/wp-admin">
@ -994,8 +1006,6 @@ faisont avec les règles 910*.
</Directory>
~~~
Le Wiki À propos de [ces directives](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual)
## Awstats
[AWStats](http://www.awstats.org/) est un outil pour générer des