Comment cacher la version d’Apache

Nous allons voir comment cacher la version d’Apache et du système d’exploitation (version de Linux activée) envoyée dans les entêtes HTTP lors qu’une requête.

Pourquoi cacher la version d’Apache ou du Linux ?

Lorsqu’un pirate (ou un robot) tente de s’attaquer à votre système, l’une des informations la plus importante pour lui est la version des logiciels que vous utilisez. En effet, ceci est un bon indicateur si des failles de sécurité existent (même si votre système est à jour, vous n’êtes pas à l’abri d’une faille 0-DAY) .

Comme nous allons le voir, cacher la version de son serveur web Apache est très simple, alors nous vous conseillons de le faire dès que vous êtes en production.

Comment savoir si j’affiche la version de mon serveur Web ou OS ?

Depuis un Linux distant, avec la commande curl

Il existe plusieurs méthodes pour voir la version de serveur Web renvoyée par votre serveur. La première est de lancer une simple commande depuis un serveur Linux distant :

curl -I ADRESSE_OU_IP

Vous aurez dans le résultat une ligne commençant par Server

Par exemple :

Server: Apache/2.4.10 (Debian)

Dans ce cas, nous voyons non seulement la version d’Apache, mais également qu’il s’agit d’un serveur Debian.

Note : il est possible d’avoir la commande curl sur MacOSX ou Windows.

Dans une page d’erreur

Il est en général possible de générer une page d’erreur sur le serveur en appelant une page qui n’existe pas depuis son navigateur.

Erreur Not found
Apache/2.4.48 (Debian) Server
Version apache et Linux visibles
Affichage d’une page inexistante sur Apache

Dans notre cas, on voit la version d’apache et Debian apparaitre.

Autre

Il est également possible d’utiliser des plugins de navigateur ou outils en ligne nous pouvons citer par exemple https://www.wappalyzer.com/

Les outils de Hacking comme Nessus ou Nmap permettent également de récupérer cette information

Cacher les informations de version dans Apache

Pour modifier l’option d’affichage de la version il faut changer la configuration d’Apache.

Sur Debian et ubuntu, il faudra modifier le fichier /etc/apache2/conf-enable/security.conf pour changer l’option ServerTokens et la passer en mode production (Prod)

ServerTokens Prod

Il faut également modifier l’option ServerSignature :

ServerSignature Off

Les différentes options

ServerTokens Full

Server: Apache/2.4.48 (Debian) OpenSSL/1.1.1k

ServerTokens OS

Server: Apache/2.4.48 (Debian)

ServerTokens Minimal

Server: Apache/2.4.48 

ServerTokens Minor

Server: Apache/2.4

ServerTokens Major

Server: Apache/2

ServerTokens Prod

Server: Apache

Et pour le PHP

Il est conseillé de changer également le paramétrage de PHP en modifiant les options suivantes dans le fichier php.ini

expose_php = Off
error_reporting =E_ALL & ~E_DEPRECATED & ~E_STRICT

TODO : FAIRE UN Outils EN LIGNE