[/LoovtO.net]

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 Sebastien Le Lourec

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

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.