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.