Apache - Server Signatur verändern
Nach der Installation “out of the box” ist der Apache Webserver recht “gesprächig”.
Auf den Fehlerseiten, wie etwa 404 - Nicht gefunden, oder im HTTP Header finden sich Angaben wie die folgende:
Apache/2.2.8 (Ubuntu) mod_auth_kerb/5.3 PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch Server at foobar.de Port 80
Sowohl Module, Scriptinterpreter und Betriebssystem werden mit allen Versionsangaben und teilweise noch mit Hinweisen auf angewandte Patches ausgegeben. Mit dieser Standardeinstellung erleichtern wir potentiellen Angreifern und Einbrechern die Arbeit erheblich, da diese genau wissen, nach welchen exploits sie suchen müssen.
Mit dem folgenden Kommando:
gksudo gedit /etc/apache2/apache2.conf
starten Sie einen Editor mit der Apache Konfigurationsdatei. Ändern Sie im folgenden Abschnitt:
# # 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 Full
den Wert
ServerTokens Full
auf
ServerTokens Prod
Speichern Sie die Datei und beenden Sie den Editor.
Starten Sie mit:
sudo /etc/init.d/apache2 restart
den Apache Webserver neu.
Danach sollte der Webserver nur noch die folgende Ausgabe liefern: Apache Server at foobar.de Port 80
Weitere mögliche Werte für ServerTokens
- # ServerTokens Major
Ausgabe: Apache/2 - # ServerTokens Minor
Ausgabe: Apache/2.2 - # ServerTokens Minimal
Ausgabe: Apache/2.2.8 - # ServerTokens Os
Ausgabe: Apache/2.2.8 (Ubuntu)
Ruft man nicht existierende URL’s ab, wird in der 404 Fehlermeldung nur noch die minimalste Ausgabe erzeugt. Solange man HTML Seiten abruft sieht auch die Ausgabe im HTTP Header sauber aus. Wird jedoch ein PHP Script aufgerufen, erhält man folgenden HTTP Header:
HTTP/1.x 200 OK Date: Sun, 07 Sep 2008 20:32:52 GMT Server: Apache X-Powered-By: PHP/5.2.4-2ubuntu5.3 Content-Length: 414 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html
PHP fügt dem HTTP Header bei der Ausgabe eines Scriptes selbstständig diese Informationen hinzu. Um dies zu ändern muss die Datei php.ini geändert werden.
Geben Sie folgenden Befehl ein:
gksudo gedit /etc/php5/apache2/php.ini
Etwa ab Zeile 254 findet sich folgender Abschnitt:
; Misc ; ; 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 = On
Ändern Sie
expose_php = On
in
expose_php = Off
Damit die Änderungen wirksam werden müssen Sie selbstverständlich auch den Webserver mit:
sudo /etc/init.d/apache2 restart
noch einmal neu starten. Nun sollte auch der Hinweis aus PHP beim ausführen von Scripten aus dem Header verschwunden sein.
Links:
http header online auslesen
Tags: 404, apche, error, expose_php, header, http, php, restart, server, tokens, ubuntu, version
