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
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...
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