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.
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.