Securiser votre serveur Apache avec mod_security
Auteur: N.Martinez
Categorie Informatique
jeudi 3 novembre 2005 à 11:47
3189 lectures
| #71
| rss
| editer

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:
Le site de Mod_Security< 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 >
Voir aussi
Publié sur Generation Libre




Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.