Accueil > Informatique > Systèmes d’exploitation > GNU/Linux > Debian > Squeeze > Bases de paramétrage d’un serveur apache2
Bases de paramétrage d’un serveur apache2
dimanche 11 mars 2012, par
L’occasion de la migration de ce site m’a permis de refaire un point sur les diverses options permettant le paramétrage d’un serveur apache2.
Il ne s’agit ici que de quelques conseils de base, d’une sorte de todo list à utiliser à chaque mise en place d’un serveur.
Je suis parti sur la base d’un article de TechRepublic en oubliant certains points qui me semblaient être du bon sens et en détaillant plus ou moins d’autres. Je vous invite tout de même à aller consulter l’article d’origine.
Dernière précision avant de commencer. Mon serveur est basé sur Debian. Il est possible que certains répertoire ou noms de fichiers diffèrent légèrement entre l’exemple et ce qui existera sur votre système.
Désactiver la navigation dans les répertoires
Il est possible de faire ce réglage à différents endroits, en fonction de votre configuration et de vos besoins. Par défaut, le fichier à modifier sera /etc/apache2/sites-enabled/000-default
.
Dans ce fichier, supprimer l’option Indexes
de cette zone :
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Si vous n’avez qu’un site et qu’il est dans votre /var/www/
c’est suffisant. Si vous avez plusieurs sites, vous avez probablement d’autres fichiers de configuration situés au même niveau que 000-default
. Pensez bien à vérifier ce que vous avez mis dedans.
Certains font aussi le choix d’utiliser les répertoires utilisateurs et activent le module UserDir. Par défaut ce module permet la navigation dans les répertoires. Si vous l’utilisez, il faut aussi aller modifier le fichier de configuration du module : /etc/apache2/mods-enabled/userdir.conf
Utiliser mod_security
Il semblerait que ça soit toujours bon à prendre... Je reviendrai plus en détail sur ce point plus tard, peut-être dans un autre billet.
Cacher les informations de version
Quelques modifications dans /etc/apache2/conf.d/security
peuvent permettre de masquer quelques informations sur votre configuration. Cela ne doit en aucun cas vous dispenser d’effectuer les mises à jour...
Deux modifications à faire :
– ServerTokens Prod
(le moins bavard)
– ServerSignature Off
(informations complémentaires de toute façon optionnelles)
Limiter la taille des requêtes
A nouveau dans les fichiers présents dans /etc/apache2/sites-enabled
, il peut y avoir un intérêt à utiliser l’élément LimitRequestBody
, ceci afin de limiter la taille maximale des requêtes soumises au serveur. Par défaut, il n’y a pas de limite.
Désactiver les répertoires utilisateurs qui ne servent pas
Le fait de parler des répertoires utilisateurs me permet de faire une transition sur la désactivation de ceux qui ne serviront pas. Par défaut celui de root est désactivé. Vous aurez peut-être d’autres comptes utilisateurs sur votre système qui n’hébergeront pas de site web.
Dans ce cas, pensez à ajouter leur nom sur cette ligne du /etc/apache2/mods-enabled/userdir.conf
:
UserDir disabled root
Désactiver d’autres fonctionnalités ou modules non-utilisées
Dans les fichiers de paramétrage de /etc/apache2/sites-enabled/
à la suite de l’entrée Options
vous pouvez aussi enlever à votre guise les entrées correspondantes à des fonctionnalités que vous n’utilisez pas.
Exemple : ExecCGI
De la même manière, libre à vous d’enlever de /etc/apache2/mods-enabled/
les modules que vous n’utilisez pas.
Faire un tour des erreurs récurrentes
Soit dans les logs, soit au démarrage. Ca n’apportera aucune amélioration au fonctionnement du serveur. C’est juste qu’en cas de problème éviter d’être perturbé par des erreurs récurrentes est toujours une bonne chose. Des exemples de ce que vous pouvez rencontrer :
– Message "Could not reliably determine the server’s fully qualified domain name, using localhost for ServerName" au démarrage d’Apache
Dans ce cas, ajoutez la ligne suivante dans un fichier ServerName
situé dans /etc/apache2/sites-enabled/
:
ServerName nom-de-votre-choix
Puis redémarrez Apache.
– Message "File does not exist : /votre/arbo/web/robots.txt" dans les logs error.log
Le robots.txt n’a pas vraiment d’utilité si vous souhaitez laisser accès à tout. Cependant, comme cela peut encombrer les logs inutilement, mieux vaut en mettre un qui précise que vous voulez bien laisser accès à tout. Pour cela mettre un fichier nommé robots.txt
à la racine de votre site web et y inscrire :
User-agent: *
Allow: /
– Message "File does not exist : /votre/arbo/web/favicon.ico" dans les logs error.log
Cette icone sert à afficher une image de votre choix en face de l’url de votre site, sur la plupart des navigateurs. Des logiciels comme Gimp vous permettront d’enregistrer l’image de votre choix sous ce nom.
Voir en ligne : 10 things you should do to secure Apache