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