La configurazione di default che si trova in molte distribuzioni linux è tale che ad ogni richiesta HTTP si inviano al client molte informazioni riguardanti le varie versioni del software e i vari mod installati. Un esempio di queste informazioni è la seguente:
Date: Fri, 07 Aug 2009 16:02:37 GMT Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 X-Powered-By: PHP/5.2.6-1+lenny3 Expires: Wed, 11 Jan 1984 05:00:00 GMT Last-Modified: Fri, 07 Aug 2009 16:02:39 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Pragma: no-cache Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8
Come si vede da questo esempio la riga Server fornisce informazioni non solo sulla versione di Apache ma anche sui mod installati e le loro relative versioni.
E’ possibile scegliere cosa far restituire settando un apposito parametro nel file configurazione di apache. Il percorso del file di configurazione dovrebbe essere il seguente: /etc/apache2/apache2.conf il quale può cambiare a seconda della versione di apache utilizzato o dalla distribuzione linux. Aprendo il file dovremmo andare a cercare il parametro ServerTokens, il quale può avere i seguenti valori: Full, OS, Minimal, Minor, Major, Prod.
Nell’esempio mostrato sopra questo paramentro era settato a Full, paramentro di default delle configurazioni usato da diverse distribuzioni linux. Ora vediamo ogni parametro cosa restituisce nelle headers:
ServerTokens Prod[uctOnly] Restituisce: "Server: Apache" ServerTokens Major Restituisce: "Server: Apache/2" ServerTokens Minor Restituisce: "Server: Apache/2.2" ServerTokens Min[imal] Restituisce: "Server: Apache/2.2.9" ServerTokens OS Restituisce: "Server: Apache/2.2.9 (Debian)" ServerTokens Full Restituisce: "Server: Apache/2.2.9 (Unix) PHP/5.2.6-1+lenny3 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0"
A seconda di quelo che vogliamo far comparire settiamo il parametro corrispondente.
Bisgona però fare attenzione perchè alcune configurazioni dichiarano il paramentro in più punti, anche in file separati. Un esempio concreto di questa configurazione la si trova nella distribuzione Ubuntu Server 9.04, la quale nel file /etc/apache2/apache2.conf contiene il parametro ServerTokens poi alla fine include una intera directory dove ci sono altri files di configurazione:
# Include generic snippets of statements
Include /etc/apache2/conf.d/
ed in questa directory c’è il file security il quale riporta nuovamente il parametro ServerTokens. Bisogna variare solo l’ultimo e quindi quello contenuto nel file security per ottenere il risultato voluto.
La configurazione che consiglio è:
ServerTokens Prod
Meno informazioni si elargisce e meno si incorre nella possibilità che ragazzini armati di tools vari stuzzichino il nostro server