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

Apache, ridurre le informazioni contenute nell’headers
Tag: