10 Best Practices zum Sichern und Härten Ihres Apache-Webservers

Um Ihre Webanwendung abzusichern, sollten Sie Ihren Apache-Webserver mit den folgenden bewährten Methoden schützen und härten.

Ein Webserver stellt eine kritische Komponente für webbasierte Anwendungen dar. Fehlerhafte Konfigurationen oder Standardeinstellungen können die Offenlegung vertraulicher Informationen zur Folge haben und somit ein erhebliches Risiko darstellen.

Als Webseitenbetreiber oder -administrator sollten Sie regelmäßig Sicherheitsüberprüfungen Ihrer Webseite durchführen, um potenzielle Online-Bedrohungen zu identifizieren und Gegenmaßnahmen zu ergreifen, bevor ein Hacker dies tut.

Im Folgenden werden wesentliche Konfigurationen erläutert, die zur Sicherheit Ihres Apache-Webservers beitragen.

Die hier beschriebenen Konfigurationen beziehen sich auf die Datei `httpd.conf` Ihrer Apache-Installation.

Hinweis: Erstellen Sie vor jeglichen Änderungen eine Sicherungskopie der relevanten Konfigurationsdatei, um im Fehlerfall eine einfache Wiederherstellung zu ermöglichen.

Deaktivierung der TRACE HTTP-Anfrage

Die Standardeinstellung `TraceEnable on` gestattet TRACE-Anfragen, wodurch verhindert wird, dass ein Anfragetext die Anfrage begleitet.

Die Einstellung `TraceEnable off` bewirkt, dass der Core-Server und `mod_proxy` einen 405-Fehler (Methode nicht zulässig) an den Client zurückgeben.

Durch die Aktivierung von `TraceEnable on` entstehen potenzielle Cross-Site-Tracing-Probleme, die es einem Angreifer ermöglichen könnten, Ihre Cookie-Informationen zu stehlen.

Lösung

Beheben Sie dieses Sicherheitsproblem, indem Sie die HTTP-Methode TRACE in der Apache-Konfiguration deaktivieren.

Dies erreichen Sie, indem Sie die folgende Direktive in Ihrer `httpd.conf` Ihres Apache-Webservers ändern oder hinzufügen:

TraceEnable off

Ausführung mit separatem Benutzer und Gruppe

Standardmäßig ist Apache so konfiguriert, dass er unter dem Benutzer `nobody` oder `daemon` ausgeführt wird.

Setzen Sie den Benutzer (oder die Gruppe) nicht auf `root`, es sei denn, Sie sind sich der damit verbundenen Risiken und Gefahren vollständig bewusst.

Lösung

Es wird empfohlen, Apache mit einem dedizierten Nicht-Root-Konto auszuführen. Ändern Sie die Benutzer- und Gruppenrichtlinien in der `httpd.conf` Ihres Apache-Webservers.

User apache
Group apache

Deaktivieren der Serversignatur

Die Standardeinstellung `Off` unterdrückt die Fußzeile.

Die Einstellung `Ein` fügt am Ende einer Seite eine Zeile hinzu, die die Serverversionsnummer und den Namen des bedienenden virtuellen Hosts enthält.

Lösung

Es ist ratsam, die Serversignatur zu deaktivieren, um die von Ihnen verwendete Apache-Version nicht preiszugeben.

ServerSignature Off

Deaktivierung von Server-Bannern

Diese Direktive steuert, ob das Server-Antwort-Header-Feld, das an die Clients zurückgesendet wird, eine Beschreibung des generischen Betriebssystemtyps des Servers sowie Informationen über einkompilierte Module enthält.

Lösung

ServerTokens Prod

Beschränkung des Zugriffs auf bestimmte Netzwerke oder IPs

Wenn Sie den Zugriff auf Ihre Webseite auf bestimmte IP-Adressen oder Netzwerke beschränken möchten, können Sie das entsprechende Verzeichnis in Ihrer `httpd.conf` anpassen.

Lösung

Geben Sie die Netzwerkadresse in der `Allow`-Direktive an.

<Directory /yourwebsite>
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.20.0.0/24
</Directory>

Oder geben Sie die IP-Adresse in der `Allow`-Direktive an:

<Directory /yourwebsite>
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.20.1.56
</Directory>

Erzwingen von TLS 1.2

Die Protokolle SSL 2.0, 3.0 sowie TLS 1 und 1.1 weisen bekanntermaßen mehrere kryptografische Schwachstellen auf.

Benötigen Sie Hilfe bei der Konfiguration von SSL? Hier finden Sie eine Anleitung.

Lösung

SSLProtocol -ALL +TLSv1.2

Deaktivieren der Verzeichnisauflistung

Falls keine `index.html`-Datei in Ihrem Webseitenverzeichnis existiert, werden dem Client alle darin enthaltenen Dateien und Unterverzeichnisse im Browser angezeigt (ähnlich der Ausgabe von `ls -l`).

Lösung

Um das Durchsuchen von Verzeichnissen zu deaktivieren, können Sie entweder den Wert der Option-Direktive auf `None` oder `-Indexes` setzen.

<Directory />
Options None
Order allow,deny
Allow from all
</Directory>

ODER

<Directory />
Options -Indexes
Order allow,deny
Allow from all
</Directory>

Entfernen unnötiger DSO-Module

Überprüfen Sie Ihre Konfiguration, um redundante DSO-Module zu entfernen.

Nach der Installation sind viele Module standardmäßig aktiviert. Entfernen Sie Module, die Sie nicht benötigen.

Deaktivieren von Null- und schwachen Verschlüsselungen

Lassen Sie nur starke Verschlüsselungen zu, um Sicherheitslücken zu schließen, die durch niedrigere Verschlüsselungs-Suites entstehen könnten.

Lösung

SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

Bleiben Sie auf dem Laufenden

Da Apache ein aktives Open-Source-Projekt ist, besteht die einfachste Methode zur Verbesserung der Sicherheit Ihres Apache-Webservers darin, die neueste Version zu verwenden. Jede neue Version enthält neue Fehlerbehebungen und Sicherheitspatches. Aktualisieren Sie daher immer auf die neueste stabile Version von Apache.

Oben wurden nur einige der wesentlichen Konfigurationen aufgeführt. Wenn Sie weitere Details wünschen, können Sie meine detaillierte Schritt-für-Schritt-Anleitung zu Sicherheit und Härtung lesen.

Hat Ihnen der Artikel gefallen? Dann teilen Sie ihn doch mit der Welt!