Nascondi informazioni sulla versione Apache e sulla versione PHP

Di default Apache manda la propria versione di build ed informaizoni riguardanti i moduli installati (es: mod_php, mod_perl, mod_ssl) in ogni header http.

telnet www.example.com 80
Trying www.example.com.com…
Connected to www.example.com.
Escape character is ‘^]’.
HEAD / HTTP/1.0 <- <strong>Premi Enter un paio di volte</strong>

HTTP/1.1 200 OK
Date: Fri, 09 Jan 2007 18:18:26 GMT
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.

In questo esempio si vede come con un semplice telnet ho scoperto che sistema operativo ho, quale versione del php installata e quale versione di Apache, e questo non è una buona cosa dal punto di vista della sicurezza.

Cosa faccio per disabilitarlo ?

Per disabiltiare l’invio di queste informazioni bisogna cambiare due direttive all’interno del file di configurazione di Apache :

/etc/apache2/apache2.conf

ServerTokens Prod
ServerSignature Off

e procedere ad un reload di Apache.
Occhio RELOAD… non RESTART.

Dopo questo passaggio l’output sarà :

HTTP/1.1 200 OK
Date: Thu, 13 Jan 2011 10:31:08 GMT
<strong>Server: Apache</strong>
Last-Modified: Tue, 18 May 2010 13:19:39 GMT
ETag: "2b4052-57d-486de318c90c0"
Accept-Ranges: bytes
Content-Length: 1405
Vary: Accept-Encoding
Connection: close
Content-Type: text/html