Securiser votre serveur Apache avec mod_security

mercredi, 6 septembre 2006


(9 votes, Note: 3,78 sur 5) 1 Star2 Stars3 Stars4 Stars5 Stars
Loading...
Catégorie: Faq/Tutos
par Nicolas Martinez
Nombre de lectures: 149 views
1 Commentaire

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 >

1 commentaire sur 'Securiser votre serveur Apache avec mod_security'

Suivit des commentaires: RSS

  1. le mercredi 6 Sep 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……