Quand un serveur est en écoute sur un port, il donne certaines informations au client. Ces informations, l’utilisateur ne les voit pas mais le logiciel si.

Ainsi, si vous visitez un site Web avec NetCat ou Telnet, vous en savez plus sur le serveur d’en face :

 

A partir de là, un attaquant peut fouiller sur Internet pour voir les failles de sécurité connues de cette version de serveur.

Attention, ce n’est pas parce que vous cachez le numéro de version qu’un attaquant expérimenté ne peut pas connaître quel serveur vous utilisez. Chaque serveur a une signature bien a lui (une façon de communiquer qui est à chaque version un petit peu différente).

 

Les opérations décrites ici sont un début mais ne suffisent pas à sécuriser les serveurs.

 

Apache, tais-toi !

 

Pour cacher la version de Apache, il faut modifier ces paramètres de /etc/apache2/conf-enabled/security.conf :

Si vous utilisez PHP, vous devez aussi cacher la version de php.

Dans /etc/php5/apache2/php.ini, désactiver le paramètre suivant :

 

Nginx, tais-toi !

 

Pour cacher la version de Nginx, il faut décommenter cette ligne de /etc/nginx/nginx.conf (ou la rajouter si elle n’existe pas) :

Si vous utilisez PHP, vous devez aussi cacher la version de php.

Dans /etc/php5/fpm/php.ini, désactiver le paramètre suivant :

 

MySQL, fais-gaffe !

 

Et tant qu’à faire, on va aussi sécuriser MariaDB (ou MySQL pour les nostagiques de Sun) gràce à ce script :

ou bien

 

Ils font moins les malins maintenant :

 

Après un redémarrage des services, voilà, plus d’information de version :

 

 

Bon maintenant, ce qui vaut pour les serveurs Web vaut aussi pour les autres services :

nmap -A -T4 mon.serveur.fr

 

Sur le même sujet :