Après avoir installé mon serveur web (Apache) et un serveur d’applications J2EE (GlassFish) je me suis vite rendu compte, après une semaine d’exécution, que les logs du serveur prennaient de plus en plus de place.

En regardant rapidement les fichiers de logs on se rend très vite compte que le serveur se fait « spammer » des URL du type : phpmyadmin, admin, mysql, …

J’ai décidé de mettre en place un système de blacklistage instégré à Apache.

Configuration de Apache

Pour cela il faut installer le module mod_rewrite (inclus par défaut avec Apache2).

On ajoute donc les règles dans le fichier de configuration d’apache (/etc/apache2/sites-avaible/)

RewriteEngine On

RewriteMap hosts-deny txt:/etc/apache2/hosts.deny
RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
RewriteRule ^/.* - [F]

Ainsi les adresses IP ou nom de domaine listés dans le fichier /etc/apache2/hosts.deny recevront le code réponse : 403 Forbidden.

On crée le fichier /etc/apache2/hosts.deny :

adresse_ip -
nom_de_domaine -

Penser à ajouter le tiret « - » à la fin de chaque entrée dans ce fichier.

Page d’erreur personnalisée

Si vous voulez rediriger les adresses blacklilstées vers une page personnalisée il faut modifier les règles dans le fichier de configuration de Apache :

Remplacez :
RewriteRule ^/.* - [F]

Par :
RewriteRule ^/.* /blacklisted.html [L]

Créez alors le fichier blacklisted.html.

Source : http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to MySpace Post to Ping.fm Post to Reddit Post to StumbleUpon

Pour suivre votre lecture