Hardening di un web server Apache: differenze tra le versioni

Riga 97: Riga 97:
<pre>
<pre>
Options -FollowSymLinks +SymLinksIfOwnerMatch.
Options -FollowSymLinks +SymLinksIfOwnerMatch.
</pre>
=== Modificare la direttiva <code>ServerTokens</code> ===
Di default il valore della direttiva è:
<pre>
ServerTokens Full
</pre>
e indica quante informazioni vengono inviate dal server nell'header. Può essere utile modificare il valore di default per una questione di sicurezza: meno informazioni forniamo sul nostro server, sulla versione di Apache e sui moduli installati, e meno facile sarà trovare un exploit per bucarci.<br>
Le possibili opzioni sono:
* Full
<pre>
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo
</pre>
* OS
<pre>
Apache/2.2.9 (Debian) Server
</pre>
* Minimal
<pre>
Apache/2.2.9 Server
</pre>
* Minor
<pre>
Apache/2.2 Server
</pre>
* Major
<pre>
Apache/2 Server
</pre>
* Prod
<pre>
Apache Server
</pre>
Pur sembrando una cosa da poco, si noti che è assai semplice recuperare le informazioni di questa direttiva, ad esempio inviando una richiesta GET sbagliata al web server da attaccare:
<pre>
ferdy@server:~$ telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
GET /index.ht PIPPO/1.1
host: 127.0.0.1
HTTP/1.1 404 Not Found
Date: Wed, 10 Nov 2010 23:23:00 GMT
Server: '''Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g'''
Vary: Accept-Encoding
Content-Length: 347
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /index.ht was not found on this server.</p>
<hr>
<address>'''Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server''' at 127.0.0.1 Port 80</address>
</body></html>
Connection closed by foreign host.
</pre>
</pre>