Securiser votre serveur Apache avec mod_security
Mercredi, 6 septembre 2006
Mod_Security est un module pour Apache qui apporte une solution aux problèmes de sécurité et d’attaques applicatives web. En effet, malgrés le déploiement de mesures de sécurité élevées sur un serveur web, il est toujours possible qu’une simple erreur de programmation dans un script « cgi » ou « php » mette en péril l’intégrité et la confidentialité des données stockées.
Installation sous Linux/Debian:
Verifions tout d’abord si les packages sont disponnibles via apt:
serveur:~# apt-cache search libapache-mod-security
libapache-mod-security - Tighten web applications security for Apache 1.x
mod-security-common - Tighten web applications security - common files
On installe:
serveur:~# apt-get install libapache-mod-security mod-security-common
Installation à partir des sources: (necessite apache-dev => apt-get install apache-dev)
serveur:~# wget http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz
serveur:~# tar xzvf modsecurity-1.8.7.tar.gz
serveur:~# cd modsecurity-1.8.7
serveur:~/modsecurity-1.8.7# apxs -cia apache1/mod_security.c
Verifions que le module est bien déclaré dans modules.conf:
serveur:~# cat /etc/apache/modules.conf|grep security
LoadModule security_module /usr/lib/apache/1.3/mod_security.so
Si ce n’est pas le cas, rajouter donc cette ligne.
Dans /etc/apache/httpd.conf, rajouter:
< IfModule mod_security.c >
# activer le moteur de mod_security
SecFilterEngine On
# vérifie la validité de l’encodage des urls
SecFilterCheckURLEncoding On
# vérifie la validité de l’unicode
SecFilterCheckUnicodeEncoding On
# Only allow bytes from this range
SecFilterForceByteRange 0 255
# log seulement pour certaines requetes
SecAuditEngine RelevantOnly
# Nom du fichier de log
SecAuditLog /var/log/apache/modsec_log
# niveau de debug
SecFilterDebugLog /var/log/apache/modsec_debug_log
SecFilterDebugLevel 0
# activation du scan des données en POST, par exemple les formulaires
SecFilterScanPOST On
# log des requetes http suspectes avec un status erreur 401, erreur d’authentification
SecFilterDefaultAction “deny,log,status:401″
# Controle des fichiers a uploader (seules des images autorisées ici)
SecFilterInheritance Off
SecFilterSelective POST_PAYLOAD “!image/(jpeg|bmp|gif|png)”
# les entetes HTTP_USER_AGENT & HTTP_HOST sont requises, pas de telnet
SecFilterSelective “HTTP_USER_AGENT|HTTP_HOST” “^$”
# Eviter les attaques de type « Cross-site-scripting »
SecFilter “<(.|\n)+>”
# toute requete contenant la string /etc/passwd ne sera pas transmise à l’applicatif web.
SecFilter /etc/password
# Basic protection contre les commandes system
SecFilter /bin/sh
SecFilter /bin/bash
SecFilter /bin/ls
#Empêcher les attaques de type “directory transveral”.
SecFilter “\.\./”
# Eviter les problemes de SQL Injection
SecFilter “delete[[:space:]]+from”
SecFilter “insert[[:space:]]+into”
SecFilter “select.+from”
#Prévention des attaques de type XSS
SecFilter “<(.|\n)+>” ]
< /IfModule >
Publié par Nicolas Martinez | Un commentaire
1 commentaire sur 'Securiser votre serveur Apache avec mod_security'
Laisser un commentaire
Vous devez vous identifier pour laisser un commentaire.




le Mercredi 6 sept 2006 a 7:22
Securiser votre serveur Apache avec mod_security…
Installation sous Linux/Debian:
Verifions tout d’abord si les packages sont disponnibles via apt:
serveur:~# apt-cache search libapache-mod-security
libapache-mod-security - Tighten web applications security for Apache 1.x
mod-security-common……