Cacher son serveur web Apache

Retour aux articles Dans #apache le 28/10/2016 par Emmanuel BALLERY

Cacher son serveur web Apache

Masquer les spécifications techniques de son serveur est un bon point en terme de sécurité. Cela permet d'éviter une exposition de vos outils et de leurs versions, donnant directemment accès aux failles et aux vecteurs d'attaque associés.

Un exemple avec la simple commande telnet nous permet de récupérer l'OS, le serveur HTTP utilisé et sa version : Apache/2.4.18 (Ubuntu).

Ces informations sont directemment accessibles via la réponse HTTP et l'entête Server. J'utilise Chromium, mais ces informations sont accessibles avec les inspecteurs de tous les navigateurs web modernes.

Entête Server d'un serveur HTTP Apache

Certaines configurations peuvent aller jusqu'à vous donner les langages d'interprétation associés (PHP, Perl ...) et leurs versions. Dans le cas du serveur Apache, deux clés de configuration sont disponibles et vont nous permettre de manipuler ces informations :

J'utilise Apache 2.4.12 pour Ubuntu, le fichier de configuration à modifier est le suivant :

/etc/apache2/conf-available/security.conf

Placer le ServerSignature à Off permet de désactiver la signature du serveur sur les pages qu'il génère automatiquement (comme les pages d'erreurs par exemple).

Affichage du serveur HTTP et de sa version sur une page d'erreur

Placer le ServerTokens à Prod ne renverra plus que le vendor de votre serveur Web (dans mon cas Apache). Sa version et les outils/mods associés seront masqués.

Après modification, il est nécessaire de redémarrer le serveur :

Finalement, seul le vendor de votre serveur est exposé :

Suppression des informations concernant le serveur HTTP utilisé

 

Retour aux articles