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!