Masquer la signature d'Apache

Un article de Wiki SOS-ADMIN.

La problématique

Par défaut, le serveur apache rend disponible certaines informations sur lui et le système d'exploitation sur lequel il est installé. Si une personne voulait s'en prendre à notre serveur, elle commencerait par récolter ces informations qui la renseignerait sur les éventuelles failles à exploiter. Il existe différentes façons d'obtenir ces informations mais il suffit d'une page d'erreur non personnalisée pour afficher ces informations.

On aura en bas de la page par exemple:

 Apache/1.3.33 Server at www.domain.tld Port 80

Il n'est pas nécessaire qu'une erreur survienne, on peut accéder à ces informations très facilement en utilisant différents programmes comme telnet, nmap, nikto, etc...

Si une personne désirait s'attaquer au serveur il saurait qu'il lui faut se renseigner sur les éventuelles failles relatives à Apache 1.3.33.

Il faut donc diminuer autant que possible le nombre d'informations disponibles. Cela ne comblera pas les failles de sécurité mais cela réduira statistiquement les risques ( si tout le monde laissait systématiquement la porte de sa maison grande ouverte, celui qui la ferme n'aurait même pas besoin de serrure ) .

La solution

Fichier : httpd.conf

Editez votre fichier de configuration ( httpd.conf pour apache 1, apache2.conf pour apache 2 ), puis modifiez ou ajoutez les directives suivantes :

ServerTokens Prod

Avec cette instruction, la seule information qu'Apache fournira sera le fait qu'il s'agit d'un serveur Apache.

ServerSignature Off

Avec cette instruction, il est toujours possible de savoir qu'il s'agit d'Apache, cependant il n'ira pas le crier sur tous les toits. Par exemple, il ne l'affichera plus sur les pages d'erreurs.


Extrait de la mailing-list dedies@sos-admin.com