Introduction

La plate-forme LAMP, c'est à dire Linux, Apache, Mysql et Php, est très utilisée. Sous Debian installer cet environnement est simple. Toutefois le serveur Apache et PHP sont peu discrets par défaut et donnent des informations sur la version utilisée ou encore la plate-forme linux.

La requête suivante montre les informations dévoilées.

telnet xxx.xxx.xxx.xxx 80
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.0 200 OK
Date: Tue, 10 May 2011 06:45:03 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch
X-Powered-By: PHP/5.2.6-1+lenny10
Set-Cookie: 9888c9ee5784f84f692fc6f7ebb6e7f8=-; path=/
Set-Cookie: lang=deleted; expires=Mon, 10-May-2010 06:45:02 GMT; path=/
Set-Cookie: jfcookie=deleted; expires=Mon, 10-May-2010 06:45:02 GMT; path=/
Set-Cookie: jfcookie[lang]=fr; expires=Wed, 11-May-2011 06:45:03 GMT; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Tue, 10 May 2011 06:45:03 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Connection closed by foreign host.

Cette simple requête montre la version de Apache ( 2.2.9 ), qu'il s'agit d'un Linux Debian Lenny avec la version 5.2.6-1 de PHP. Il est facile de cacher ses informations

Serveur Apache

Editer le fichier /etc/apache2/conf.d/security et mettre les directives suivantes :

ServerTokens Prod
ServerSignature off

Par défaut ServerTokens est à Full et ServerSignature à On.

PHP

Editer le fichier /etc/php/apache2/php.ini ( /etc/php5/apache2/php.ini sous debian Sqeeze ) et rechercher la direction expose_php qui par défaut est à On, la passer à Off

expose_php = Off

Relancer le serveur apache ainsi

/etc/init.d/apache2 restart

Résultat après modifications

telnet xxx.xxx.xxx.xxx 80
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Tue, 10 May 2011 06:47:14 GMT
Server: Apache
Set-Cookie: 921cb4de875e5934b4a39bac997b0adc=-; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Tue, 10 May 2011 06:47:15 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Connection closed by foreign host.

Ceci n'est pas une panacée en terme de sécurité, mais inutile de dévoiler des choses qui ne servent qu'à nuire.