Cacher la configuration de son serveur Web Apache

signature d'une page 404 not found

Cachez cette signature que je ne saurais voir

La configuration par défaut de programmes peut exposer des informations utiles pour les personnes mal intentionnées. Le serveur Web Apache est un de ces programmes.

Cet article explique comment dissimuler la signature d'un serveur web Apache sous Ubuntu 9.10.

Qu'est ce que la signature Apache2 par défaut ?

Le serveur Web Apache affiche une signature dans les headers HTTP et en bas des pages d'erreurs. L'entête HTTP Server présente par défaut la version d'Apache, le système d'exploitation, la liste des modules et leurs versions.
Par exemple :

$ curl -I http://localhost/
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2009 22:12:34 GMT
Server: Apache/2.2.12 (Ubuntu) PHP/5.2.10-2ubuntu6 with Suhosin-Patch
Last-Modified: Sun, 01 Nov 2009 17:04:13 GMT
ETag: "21346-b1-47752401b25a3"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html

Or toutes les versions de ces programmes ont des failles plus ou moins exploitables, la première étant la capacité de l'administrateur à correctement les sécuriser.
Ces informations sont donc sensibles et doivent être dissimulées sur un serveur de production.

Comment cacher la signature de son serveur Web

Ce tutorial a été fait à partir d'une installation Ubuntu 9.10. Il est transposable à d'autres distributions après adaptation.

Éditez le fichier de configuration Apache2 :

# vi /etc/apache2/conf.d/security

Modifiez les directives suivantes :

ServerTokens Prod
ServerSignature EMail

Sauvegardez le fichier et redémarrez Apache2 :

# /etc/init.d/apache2 restart

Contrôlez votre signature :

$ curl -I http://localhost/
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2009 22:18:22 GMT
Server: Apache
Last-Modified: Sun, 01 Nov 2009 17:04:13 GMT
ETag: "21346-b1-47752401b25a3"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html

Les informations détaillées ont disparu.