Ajout d'information sur ModSecurity et détails des directives apaches
This commit is contained in:
parent
bf0bf20028
commit
e8602b2a8f
|
@ -902,56 +902,75 @@ Voir <https://wiki.evolix.org/HowtoFail2Ban#apache-nginx>
|
||||||
|
|
||||||
### ModSecurity
|
### ModSecurity
|
||||||
|
|
||||||
L'utilisation de [ModSecurity](http://www.modsecurity.org) permet
|
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/`
|
||||||
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)
|
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.
|
||||||
qui est un ensemble de règles ModSecurity couvrant un large spectre d'attaques possibles.
|
|
||||||
|
Il y aura besoin de ces deux paquets:
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# apt install libapache2-mod-security2 modsecurity-crs
|
# apt install libapache2-mod-security2 modsecurity-crs
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Nous faisons une configuration minimale via
|
Nous faisons une configuration minimale via `/etc/apache2/conf-available/modsecurity.conf` :
|
||||||
`/etc/apache2/conf-available/modsecurity.conf` :
|
|
||||||
|
|
||||||
~~~{.apache}
|
~~~{.apache}
|
||||||
<IfModule mod_security2.c>
|
<IfModule mod_security2.c>
|
||||||
|
|
||||||
# enable mod_security
|
# Activation du moteur gérant les règles CRS
|
||||||
SecRuleEngine On
|
SecRuleEngine On
|
||||||
# access to request bodies
|
|
||||||
|
## Les demandes produit par le client
|
||||||
|
# Activation de l'analyse du contenu
|
||||||
SecRequestBodyAccess On
|
SecRequestBodyAccess On
|
||||||
|
# Taille limite du contenu en octets
|
||||||
#SecRequestBodyLimit 134217728
|
#SecRequestBodyLimit 134217728
|
||||||
|
# Taille maximale du contenu en mémoire et déplacé sur le disque si besoin
|
||||||
#SecRequestBodyInMemoryLimit 131072
|
#SecRequestBodyInMemoryLimit 131072
|
||||||
# access to response bodies
|
# Emplacement sur le disque de données temporaires
|
||||||
|
SecTmpDir /tmp
|
||||||
|
|
||||||
|
## Les réponses produite par le serveur
|
||||||
|
# Activation de l'analyse du contenu
|
||||||
SecResponseBodyAccess Off
|
SecResponseBodyAccess Off
|
||||||
|
# Taille maximale du contenu en mémoire et déplacé sur le disque si besoin
|
||||||
#SecResponseBodyLimit 524288
|
#SecResponseBodyLimit 524288
|
||||||
|
# Autoriser les réponses de ces types
|
||||||
SecResponseBodyMimeType (null) text/html text/plain text/xml
|
SecResponseBodyMimeType (null) text/html text/plain text/xml
|
||||||
|
|
||||||
|
# Changer l'entête HTTP "Server: Apache"
|
||||||
#SecServerSignature "Apache/2.2.0 (Fedora)"
|
#SecServerSignature "Apache/2.2.0 (Fedora)"
|
||||||
|
|
||||||
|
# Emplacement des fichiers suspicieux envoyé au serveur
|
||||||
SecUploadDir /tmp
|
SecUploadDir /tmp
|
||||||
|
# Conserver les fichiers interceptés
|
||||||
SecUploadKeepFiles Off
|
SecUploadKeepFiles Off
|
||||||
|
# Emplacement des données persistantes (données d'adresse IP, données de sessions, etc)
|
||||||
|
SecDataDir /tmp
|
||||||
|
|
||||||
# default action
|
# Action par défaut
|
||||||
SecDefaultAction "log,auditlog,deny,status:406,phase:2"
|
SecDefaultAction "log,auditlog,deny,status:406,phase:2"
|
||||||
|
|
||||||
|
# Activer le réglage fin du moteur
|
||||||
SecAuditEngine Off
|
SecAuditEngine Off
|
||||||
|
# Définis quels codes HTTP doivent être enregistrés dans les logs
|
||||||
#SecAuditLogRelevantStatus "^[45]"
|
#SecAuditLogRelevantStatus "^[45]"
|
||||||
# use only one log file
|
# Utiliser un seul fichier de log
|
||||||
SecAuditLogType Serial
|
SecAuditLogType Serial
|
||||||
# audit log file
|
# Emplacement du fichier de log
|
||||||
SecAuditLog /var/log/apache2/modsec_audit.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"
|
SecAuditLogParts "ABIFHZ"
|
||||||
|
|
||||||
|
# Définis l'argument utilisé pour séparer les URL encodés
|
||||||
#SecArgumentSeparator "&"
|
#SecArgumentSeparator "&"
|
||||||
|
# Définis le format du cookie
|
||||||
SecCookieFormat 0
|
SecCookieFormat 0
|
||||||
|
# Emplacement du fichier de debug
|
||||||
SecDebugLog /var/log/apache2/modsec_debug.log
|
SecDebugLog /var/log/apache2/modsec_debug.log
|
||||||
|
# On définit pas de log
|
||||||
SecDebugLogLevel 0
|
SecDebugLogLevel 0
|
||||||
|
|
||||||
SecDataDir /tmp
|
|
||||||
SecTmpDir /tmp
|
|
||||||
|
|
||||||
#########
|
#########
|
||||||
# RULES
|
# RULES
|
||||||
#########
|
#########
|
||||||
|
@ -967,24 +986,17 @@ SecRuleRemoveById "930000"
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Nous désactivons le log d'audit par défaut, puisque l’information
|
À propos [des directives Apache](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x))
|
||||||
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
|
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
|
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)
|
||||||
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.
|
pour faciliter l’obtention de statistiques du audit log.
|
||||||
|
|
||||||
On peut aussi ajuster certains paramètres de ModSecurity Core Rule
|
On peut ajuster certains paramètres de ModSecurity Core Rule Set en personalisant le fichier `/etc/modsecurity/crs/crs-setup.conf`.
|
||||||
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.
|
||||||
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
|
On pourra désactiver modsecurity dans des vhosts ou sur des dossiers en particulier en jouant avec la directive `SecRuleEngine Off`.
|
||||||
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*.
|
||||||
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">
|
<Directory "/home/monsite/www/wp-admin">
|
||||||
|
@ -994,8 +1006,6 @@ faisont avec les règles 910*.
|
||||||
</Directory>
|
</Directory>
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Le Wiki À propos de [ces directives](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual)
|
|
||||||
|
|
||||||
## Awstats
|
## Awstats
|
||||||
|
|
||||||
[AWStats](http://www.awstats.org/) est un outil pour générer des
|
[AWStats](http://www.awstats.org/) est un outil pour générer des
|
||||||
|
|
Loading…
Reference in New Issue