Product SiteDocumentation Site

5.8. Sécurisation d'Apache

FIXME : Ajout de contenu : modules fournis par l'installation normale d'Apache (sous /usr/lib/apache/X.X/mod_*) et modules qui peuvent être installés séparément dans les paquets libapache-mod-XXX.
Vous pouvez limiter l'accès au serveur Apache si vous voulez uniquement l'utiliser en interne (dans un but d'essai, pour accéder à l'archive doc-central, etc.) et si vous ne voulez pas que des intrus y accèdent. Pour réaliser cela, utilisez les directives Listen ou BindAddress dans /etc/apache/http.conf.
En utilisant Listen :
Listen 127.0.0.1:80
En utilisant BindAddress :
BindAddress 127.0.0.1
Ensuite, redémarrez apache avec /etc/init.d/apache restart et vous observerez qu'il écoute uniquement l'interface loopback.
Dans tous les cas, si vous n'utilisez pas toutes les fonctionnalités fournies par Apache, vous pouvez jeter un œil aux autres serveurs web fournis dans Debian comme dhttpd.
La http://httpd.apache.org/docs/misc/security_tips.html fournit des informations concernant les mesures de sécurité à prendre pour les serveurs web Apache (ces mêmes informations sont fournies dans Debian par le paquet apache-doc).
Plus d'informations sur des restrictions supplémentaires d'Apache en mettant en place une prison chrooté sont disponibles en Section B.7.3, « Environnement de chroot pour Apache ».

5.8.1. Désactiver la publication de contenu sur le web par les utilisateurs

L'installation par défaut d'Apache dans Debian permet aux utilisateurs de publier du contenu dans leur répertoire $HOME/public_html. Ce contenu peut être récupéré à distance en utilisant une URL comme : http://serveur_apache/~utilisateur.
Pour empêcher cela, veuillez modifier le fichier de configuration /etc/apache/http.conf en commentant (pour Apache 1.3) le module suivant :
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
Avec Apache 2.0, il faut supprimer le fichier /etc/apache2/mods-enabled/userdir.load ou restreindre la configuration par défaut en modifiant /etc/apache2/mods-enabled/userdir.conf.
Cependant, si le module a été lié statiquement (vous pouvez obtenir la liste des modules compilés en exécutant apache -l), vous devez ajouter la ligne suivante au fichier de configuration d'Apache :
Userdir disabled
Un attaquant peut encore faire de l'énumération d'utilisateur, car la réponse du serveur web sera un 403 Permission Denied et non un 404 Not available. Vous pouvez éviter cela en utilisant le module Rewrite.

5.8.2. Permissions des fichiers de journalisation

Les fichiers de journalisation d'Apache, depuis la version 1.3.22-1, ont pour propriétaire l'utilisateur « root » et pour groupe « adm » avec les permissions 640. Ces permissions sont changées après la rotation. Un intrus qui peut accéder au système par le serveur web ne pourra pas (sans augmentation de droits) enlever d'anciennes entrées de fichiers de log.

5.8.3. Fichiers web publiés

Les fichiers d'Apache sont situés sous /var/www. Juste après l'installation, le fichier par défaut fournit quelques informations sur le système (principalement qu'il s'agit d'un système Debian exécutant Apache). Les pages web par défaut appartiennent à l'utilisateur root et au groupe root par défaut alors que le processus Apache s'exécute avec l'utilisateur www-data et le groupe www-data. Cela devrait rendre plus difficile aux attaquants qui compromettent le système par le site web de le défigurer. Vous devriez, bien sûr, remplacer les pages web par défaut (qui peuvent fournir des informations que vous ne voulez pas donner aux visiteurs) avec les vôtres.