Sichern und härten Sie den Apache-Webserver mit den folgenden Best Practices, um Ihre Webanwendung sicher zu halten.
Der Webserver ist ein entscheidender Bestandteil von webbasierten Anwendungen. Wenn er falsch konfiguriert ist und die Standardkonfiguration verwendet wird, können sensible Informationen preisgegeben werden, was ein Risiko darstellt.
Als Eigentümer oder Administrator einer Website sollten Sie regelmäßig Sicherheitsscans durchführen um Ihre Website auf Online-Bedrohungen zu überprüfen, damit Sie Maßnahmen ergreifen können, bevor ein Hacker es tut.
Gehen wir die wichtigsten Konfigurationen durch, um Ihren Apache-Webserver zu erhalten.
Nachfolgend ist die gesamte Konfiguration in httpd.conf
Ihrer Apache-Instanz.
Hinweis: Erstellen Sie vor der Änderung eine Sicherungskopie der erforderlichen Konfigurationsdatei, damit die Wiederherstellung einfach ist, wenn etwas schief geht.
Trace HTTP-Anfrage deaktivieren
Der Standard TraceEnable
on erlaubt TRACE, was es nicht erlaubt, dass der Anfrage ein Textteil beigefügt wird.
Wenn TraceEnable ausgeschaltet ist, geben der Hauptserver und mod_proxy einen 405-Fehler (Methode nicht erlaubt) an den Client zurück.
Wenn TraceEnable aktiviert ist, kann es zu einem Cross-Site-Tracing-Problem kommen und einem Hacker die Möglichkeit geben, Ihre Cookie-Informationen zu stehlen.
Lösung
Beheben Sie dieses Sicherheitsproblem, indem Sie die HTTP-Methode TRACE in der Apache-Konfiguration deaktivieren.
Sie können dies tun, indem Sie die folgende Direktive in der httpd.conf Ihres Apache Webservers ändern/hinzufügen.
TraceEnable off
Als separater Benutzer und Gruppe ausführen
Standardmäßig ist der Apache so konfiguriert, dass er als nobody oder daemon läuft.
Setzen Sie den Benutzer (oder die Gruppe) nicht auf Root, wenn Sie nicht genau wissen, was Sie tun und welche Gefahren damit verbunden sind.
Lösung
Es ist gut, Apache in seinem eigenen Nicht-Root-Konto laufen zu lassen. Ändern Sie die Benutzer- und Gruppenrichtlinie in der httpd.conf Ihres Apache-Webservers
User apache
Group apache
Signatur deaktivieren
Bei der Standardeinstellung Aus wird die Fußzeile unterdrückt.
Die Einstellung Ein fügt einfach eine Zeile mit der Versionsnummer des Servers und dem Servernamen des bedienenden virtuellen Hosts hinzu.
Lösung
Es ist sinnvoll, die Signatur zu deaktivieren, da Sie die Apache-Version, die Sie verwenden, nicht preisgeben möchten.
ServerSignature Off
Banner deaktivieren
Diese Direktive steuert, ob das Server-Antwort-Header-Feld, das an die Clients zurückgesendet wird, eine Beschreibung des generischen OS-Typs des Servers sowie Informationen über einkompilierte Module enthält.
Lösung
ServerTokens Prod
Beschränkung des Zugriffs auf ein bestimmtes Netzwerk oder eine IP
Wenn Sie möchten, dass Ihre Website nur von einer bestimmten IP-Adresse oder einem bestimmten Netzwerk eingesehen werden kann, können Sie Ihr Website-Verzeichnis in httpd.conf ändern
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>
Geben Sie die IP-Adresse in der Richtlinie Allow an.
<Directory /yourwebsite>
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.20.1.56
</Directory>
Nur TLS 1.2 verwenden
SSL 2.0, 3.0, TLS 1, 1.1 weisen Berichten zufolge mehrere kryptografische Schwachstellen auf.
Benötigen Sie Hilfe bei der Konfiguration von SSL, lesen Sie dies Leitfaden.
Lösung
SSLProtocol -ALL +TLSv1.2
Verzeichnisauflistung deaktivieren
Wenn Sie die Datei index.html nicht in Ihrem WebSite-Verzeichnis haben, sieht der Client alle Dateien und Unterverzeichnisse im Browser aufgelistet (wie die 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>
OR
<Directory />
Options -Indexes
Order allow,deny
Allow from all
</Directory>
Unnötige DSO-Module entfernen
Überprüfen Sie Ihre Konfiguration, um redundante DSO-Module zu entfernen.
Es gibt viele Module, die nach der Installation standardmäßig aktiviert sind. Sie können die Module entfernen, die Sie nicht benötigen.
Null und schwache Chiffren deaktivieren
Erlauben Sie nur starke Chiffren, so dass Sie alle Türen schließen, die versuchen, mit niedrigeren Chiffriersuiten einen Handschlag zu machen.
Lösung
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
Auf dem Laufenden bleiben
Da Apache ein aktiver Open-Source-Server ist, ist es am einfachsten, die Sicherheit des Apache-Webservers zu verbessern, indem man die neueste Version verwendet. In jeder Version werden neue Fehlerbehebungen und Sicherheitspatches hinzugefügt. Aktualisieren Sie immer auf die neueste stabile Version von Apache.
Die obigen Ausführungen sind nur einige der wichtigsten Konfigurationen, und wenn Sie sich eingehender informieren möchten, dann können Sie meine Schritt-für-Schritt-Anleitung für Sicherheit und Härtung.