Apache Web Server: Disable HTTP TRACE

Einige Sicherheitstestwerkzeuge "meckern" wenn auf einem Apache Webserver die Methode "Track/Trace" eingeschaltet ist. In der Standardkonfiguration ist dies der Fall.

Die Methode HTTP TRACE wird eigentlich dazu benutzt um debugging Informationen zu bekommen. Es ist kein direktes Sicherheitsloch aber in manchen Szenarien kann diese Methode wohl für cross-site scripting verwendet werden. Bei Produktionsservern wird dazu geraten dies nicht zu verwenden.

Mit Telnet kann man recht einfach prüfen ob dies der Fall ist

$ telnet 192.168.221.15 80
Trying 192.168.221.15...
Connected to 192.168.221.15.
Escape character is '^]'.

dann diesen String einfügen

TRACE / HTTP/1.0

und zweimal enter drücken

HTTP/1.1 200 OK
Date: Wed, 14 Sep 2011 19:50:45 GMT
Server: Apache
Connection: close
Content-Type: message/http

TRACE / HTTP/1.0

Connection closed by foreign host.

Durch eine einfachen Konfigurationsschalter kann man dies ausschalten

vi /etc/apache2/apache2.conf

    TraceEnable off
 /etc/init.d/apache2 restart

Es gibt auch eine Methode dies auf virtueller Serverebene einzustellen die ich aber nicht verwende wenn ich es "auf einmal für alle" machen kann.

So sieht es aus wenn es ausgeschaltet wird

telnet 192.168.221.15 80
Trying 192.168.221.15...
Connected to 192.168.221.15.
Escape character is '^]'.
TRACE / HTTP/1.0

HTTP/1.1 405 Method Not Allowed
Date: Wed, 14 Sep 2011 19:52:01 GMT
Server: Apache
Allow:
Vary: Accept-Encoding
Content-Length: 288
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method TRACE is not allowed for the URL /.</p>
<hr>
<address>Apache Server at 761X Port 80</address>
</body></html>
Connection closed by foreign host.