Comment cacher la version de son serveur web Apache ?

Comment cacher la version de son serveur web Apache ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à cacher la version du serveur web Apache dans les en-têtes HTTP envoyées par notre serveur Apache mais aussi sur les pages d’erreurs.

Pourquoi cacher la version de son serveur web ?

La version d’un serveur web ou d’une autre application serveur est une information très utile aux pirates, car en fonction de la version utilisée, ils peuvent tester diverses attaques et failles connues sur ces versions. Si vous utilisez Apache en version 2.4.49, le pirate pourra rechercher les failles existantes et connues sur cette version, ce qui lui facilite la tâche.

La meilleure protection face à cela étant bien entendu de garder son serveur web à jour, mais il est aussi possible afin de rendre la tâche des attaquants plus longue, et donc plus difficile, de cacher la version de son serveur web Apache. C’est simple à mettre en place, alors pourquoi s’en priver ?

II. Afficher le numéro de version d’Apache

En tant qu’administrateurs, nous avons accès au serveur en direct. Il est alors facile d’afficher dans la console le numéro de version correspondant à notre serveur Apache local.

  • En local sur le serveur Apache

Sous Debian, on peut afficher la version installée avec la commande suivante :

apt-cache policy apache2

Nous aurons alors un résultat comme celui-ci :

Exemple – apt-cache policy apache2

Nous voyons donc bien que la version installée est la « 2.2.22-13« .

Mais, on peut aussi utiliser la commande apachectl, intégrée à Apache avec l’option « -v » ou « -V » (plus de détails). Personnellement, j’utilise plutôt cette méthode.

sudo apachectl -v

Ce qui donne :

Afficher la version d'Apache avec apachectl -v
Afficher la version d’Apache avec apachectl -v

On peut voir, là aussi, que mon serveur est en version 2.4.51.

  • À distance, en tant que visiteur

Depuis une machine distante sous Linux et du paquet Curl, on peut interroger notre serveur Web (par son nom de domaine ou son adresse IP) et obtenir sa version grâce aux informations de l’en-tête HTTP.

curl -I 192.168.100.120

Ce qui donne :

Encore plus simple, on peut générer une page d’erreur à partir d’un navigateur. Par exemple, en accédant à une page qui n’existe pas :

http://192.168.100.120/blabla.html

Au sein de cette page d’erreur 404 (Not Found), on peut voir « Apache/2.4.51 » !

Afficher la version d'Apache avec une simple page introuvable
Afficher la version d’Apache avec une simple page introuvable

III. Cacher la version d’Apache

Pour cacher la version d’Apache, il faut changer quelques options dans sa configuration qui se situe par défaut dans « /etc/apache2« . Dans ce dossier racine, il y a plusieurs sous-dossiers et fichiers. Le fichier de configuration principal « apache2.conf » appelle les fichiers du dossier « conf-enabled« .

Le fichier « /etc/apache2/conf-enabled/security.conf » contient les options ServerTokens et ServerSignature que nous allons modifier. On peut aussi modifier ces options directement via « apache2.conf » en ajoutant ces directives à la fin du fichier.

Modifiez ce fichier (ou ajoutez les lignes à la fin de « apache2.conf« ) :

sudo nano /etc/apache2/conf-enabled/security.conf

On va venir remplacer :

ServerTokens OS

Par le niveau le plus restrictif :

ServerTokens Prod

Cela va permettre de masquer la version d’Apache. Néanmoins il restera toujours la mention « Apache Server ».

En complément, si l’on veut masquer la mention « Apache Server », il faut venir remplacer :

ServerSignature On

Par :

ServerSignature Off

On enregistre et on ferme le fichier de configuration. Après toute modification, il faut recharger la nouvelle configuration du serveur Apache pour qu’elle soit prise en compte :

sudo systemctl restart apache2

On voit donc bien que la version du serveur Apache n’est plus affichée, tout comme la mention « Apache Server« .

Voilà, votre serveur n’affichera plus la version d’Apache lorsqu’il sera interrogé. Même si la signature du serveur est masquée, c’est-à-dire la mention « Apache » sans la version, dans certains cas on peut l’obtenir malgré tout (comme avec l’outil Curl).

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Installer PhpMyAdmin sur Debian 11 et Apache

Installer PhpMyAdmin sur Debian 11 et Apache

Table de Matieres1 I. Présentation2 II. Installation de PhpMyAdmin3 III. Création d’un admin pour PhpMyAdmin4 …

PfSense : reverse proxy HTTPS avec HAProxy et ACME (Let’s Encrypt) | IT-Connect

PfSense : reverse proxy HTTPS avec HAProxy et ACME (Let’s Encrypt)

Table de Matieres1 I. Présentation2 II. Gérer les certificats Let’s Encrypt sur PfSense2.1 A. Installation …

Bloquer les attaques sur son serveur Web (Apache + PHP) avec CrowdSec

Bloquer les attaques sur son serveur Web (Apache + PHP) avec CrowdSec

Table de Matieres1 I. Présentation1.1 A. L’objectif du jour2 II. Mise en place d’Apache et …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.