Skip to content

Dem Apachen & PHP die Geschwätzigkeit austreiben

Möchte man vermeiden, dass der Apache Webserver allerlei Informationen über die geladenen Module und Versionsnummern preisgibt, sollte man in der Datei httpd.conf (oft auch apache.conf o.ä.) die Option ServerTokens auf den Wert Prod stellen:

#
# ServerTokens
# This directive configures what you return as the
# Server HTTP response Header. The default is
# 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of:
# Full | OS | Minor | Minimal | Major | Prod
# where Full conveys the most information,
# and Prod the least.
#
ServerTokens Prod

Damit wird aus der für Dritte sehr wertvollen Information

Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 mod_ruby/1.2.6 Ruby/1.8.5(2006-08-25) mod_ssl/2.2.3 OpenSSL/0.9.8c mod_apreq2-20051231/2.6.0 mod_perl/2.0.2 Perl/v5.8.8 Server at foo.bar Port 80

ein simples

Server: Apache

Wer PHP auf seinem Server einsetzt wird sicher auch den Header X-Powered-By kennen - der verrät in der Standard-Einstellung nämlich immer noch die verwendete PHP-Version:

X-Powered-By: PHP/4.4.2-1

Möchte man auch dies unterbinden, so setzt man in der php.ini die Option expose_php auf off:

; Decides whether PHP may expose the fact that it is
; installed on the server (e.g. by adding its signature
; to the Web server header). It is no security threat
; in any way, but it makes it possible to determine
; whether you use PHP on your server or not.
expose_php = Off

Damit wäre auch diese unnötige Informationsquelle für Dritte abgestellt.

Anschliessend nicht vergessen, den Apache Webserver neu zu starten oder ihn z.B. mittels SIGHUP zum Neueinlesen seiner Konfiguration zu überreden.

Zum Überprüfen der HTTP-Header bietet sich zum Einen wget mit den Optionen --spider und -S an, zum Anderen kann man Online-Tools wie z.B. http-header-online-check nutzen.

{ 2 } Comments

  1. matthias | 18. Juni 2007 at 18:11 | Permalink

    Security through obscurity ;)
    Aber ich machs auch nicht anders bei meinen Apache Installationen. Muss ja nicht jeder gleich wissen, welche Version(en) dort am Laufen sind...

  2. marco | 19. Juni 2007 at 21:29 | Permalink

    Ich denke mal das bringt nur ein falsches Sicherheitsgefühl... erstens kann man dass ziemlich schnell rausbekommen was dahinter läuft, zweitens macht man sich evtl. noch etwas interessanter ;)

    Diese Infos zu verschleiern bringt höchstens was gegen automatisierte scans, aber danach werden halt die paar kisten ohne Angaben noch einmal mit was anderen gescannt und dann sind die wissenslücken auch geschlossen.
    Ich denke da ist es sinnvoller sich auf diverse andere "Harden" projekte zu stürzen. Wenn PHP auf der Maschine läuft gibts da noch ganz andere Probleme :D