Die 14-stufige Apache-Sicherheits-Best-Practice-Checkliste (PDF-eBook enthalten)
Veröffentlicht: 2017-11-22Railwayfx / stock.adobe.com
Apache bleibt derzeit mit einem Marktanteil von 45,8 % die weltweit führende Webserver-Software. Das sind am Ende etwa 80 Millionen Websites, deren Webserver mit Apache betrieben werden. Ziemlich beeindruckend, oder?
Apache ist eine Open-Source-Webserversoftware, die es seit 1995 gibt, das allein sagt also Bände über ihre Zuverlässigkeit und Langlebigkeit. Dann gibt es noch die bekannten Websites, die auf Apache-Servern laufen: Apple, Adobe und Paypal sind nur einige der großen Marken, die ihre Websites Apache anvertrauen.
Das macht Apache natürlich nicht zu 100 % sicher, da keine Software jemals zu 100 % vor Hackern sicher sein wird, insbesondere wenn es sich um eine so bekannte und vertrauenswürdige Plattform handelt (ähnlich wie WordPress). Wenn Sie jedoch nach einem E-Book, einem Modul, einem Leitfaden, einem Tutorial, einem Framework oder einer Checkliste zur Webserver-Sicherheit im PDF-Format für Apache suchen, sind Sie hier genau richtig.
Wenn Sie Ihre Apache-Sicherheit verstärken möchten, Probleme mit der Apache-Sicherheit haben oder versuchen, ein oder zwei Schwachstellen zu schließen, finden Sie in der folgenden Checkliste 14 bewährte Sicherheitsmethoden, die Sie in den Sicherheitsplan Ihrer Website integrieren können.
Die ultimative Checkliste für Apache-Sicherheits-Best-Practices
Für diejenigen unter Ihnen, die Ihre WordPress-Website wirklich stärken möchten, ist die Sicherung von Apache wie bei jeder anderen Software, die sich in Ihre Website einklinkt und diese unterstützt, von entscheidender Bedeutung. Wenn Sie dies nicht tun, kann dies sogar die Geschwindigkeit Ihrer Website beeinträchtigen. So machen Sie es also:
1. Aktualisieren Sie Apache
Wissen Sie, dass WordPress und alle von Ihnen installierten Plugins und Themes regelmäßig aktualisiert werden müssen? Das gilt auch für Ihren Webserver.
Wenn Sie befürchten, dass Ihre Site nicht auf der aktuellsten Version von Apache läuft, können Sie dies mit der Befehlszeile httpd -v überprüfen. Wenn die ausgegebene Version nicht mit der aktuellen von Apache übereinstimmt, können Sie sie wie folgt aktualisieren:
# yum update httpd
# apt-get install [add Apache version here]c
2. Aktivieren Sie Protokolle
Wenn Sie mit einem verwalteten WordPress-Hosting-Anbieter zusammenarbeiten, kümmert sich dieser um die Überwachung Ihres Servers und WordPress auf Schwachstellen und andere Warnzeichen. Allerdings sollten Sie auch Ihren Serververkehr im Auge behalten.
Mit Apache können Sie Zugriff auf dieses Aktivitätsprotokoll erhalten, indem Sie Ihr mod_log_config-Modul aktualisieren. Im Wesentlichen erfahren Sie, was Benutzer tun, wenn sie Ihren Server berühren.
3. Holen Sie sich ein SSL-Zertifikat
Da Ihr Webserver alle Browser-/Serveranfragen an Ihre Website verarbeitet, ist es wichtig, diese mit einem SSL-Zertifikat zu sichern. Die gute Nachricht ist, dass Sie jetzt kostenlos ein SSL-Zertifikat erhalten können. Dies ist heute wichtiger denn je. Wenn Sie also technisch nicht in der Lage sind, dies selbst zu installieren, kann dies jeder hochwertige Hosting-Anbieter für Sie übernehmen.
4. Fügen Sie eine Firewall hinzu
Zusätzlich zum zusätzlichen Schutz der SSL-Verschlüsselung sollte Ihr Webserver mit einer Firewall geschützt sein. Für Apache bedeutet dies, ModSecurity zu aktivieren.
Um es auf Ihrem Server zu installieren, können Sie Folgendes ausführen:
# yum install mod_security
# /etc/init.d/httpd restart
Sobald die Firewall aktiv ist, verhindert sie, dass eine Reihe bösartiger Aktivitäten Ihren Server erreichen, wie z. B. SQL-Injection, Session-Hijacking und Cross-Site-Scripting.
5. Installieren Sie mod_evasive
Mod_evasive ist das Modul, das Ihren Apache-Server vor Brute-Force- und DDoS-Angriffen schützt. Stellen Sie daher sicher, dass dies ebenfalls aktiviert ist. Gleichzeitige und fehlgeschlagene Anmeldeversuche werden auf die schwarze Liste gesetzt und auf bösartige IP-Adressen überwacht.
6. Legen Sie HTTP-Limits fest
Distributed-Denial-of-Service-Angriffe (DDoS) lassen sich recht einfach blockieren, wenn Sie wissen, auf welche Art von Aktionen Sie achten müssen. Da DDoS in der Regel dadurch auftritt, dass Ihr Server wiederholt mit großen Anfragen angegriffen wird, sollte es Ihr Ziel sein, Grenzwerte festzulegen, die dies verhindern.
Hier sind einige der Grenzwerte, die Sie festlegen möchten:
- KeepAlive=ein
- KeepAliveTimeout
- LimitRequestBody
- LimitRequestFields
- LimitRequestFieldSize
- LimitRequestLine
- LimitXMLRequestBody
- MaxClients
- MaxKeepAliveRequests
- MaxRequestWorkers
- RequestReadTimeout
- Auszeit
7. Löschen Sie nicht verwendete Module
Indem Sie ungenutzte, nicht gewartete oder abgelaufene Module auf Ihrem Apache-Server belassen, machen Sie Ihre Site über einen Einstiegspunkt, der nicht einmal vorhanden sein muss, für Hacker offen.
Als erstes sollten Sie herausfinden, welche Module tatsächlich aktiv sind. Sie können dies tun, indem Sie einen LoadModule-Befehl verwenden. Sobald Sie die Liste durchgesehen und herausgefunden haben, welche Module Sie nicht benötigen, fügen Sie einfach das „#“-Symbol vor jedem Modul ein, das Sie deaktivieren möchten, und starten Sie es dann neu.
8. Ändern Sie den Standardbenutzer und die Standardgruppe
Standardeinstellungen und Benutzereinstellungen für jede Software sind im Allgemeinen eine schlechte Sicherheitspraxis. Der Grund dafür ist einfach: Wenn Sie den Apache-Standardbenutzer- oder -gruppennamen verwenden, wissen Hacker sicher auch, wie diese Standardnamen lauten.
Anstatt die Standardeinstellungen beizubehalten, sollten Sie ein neues, nicht privilegiertes Konto erstellen, über das Ihre Apache-Prozesse ausgeführt werden. Mit den Befehlen #groupadd und #useradd können Sie die neuen Entitäten festlegen. Denken Sie daran, Ihre httpd.conf mit den neuen Benutzer- und Gruppennamen zu aktualisieren, die Sie erstellt haben.
9. Blockieren Sie den Verzeichniszugriff
Hier ist ein weiteres Beispiel für Standardeinstellungen, die geändert werden müssen. In diesem Fall ist es der gewährte Zugriff auf die Dateien Ihres Verzeichnisses, der es jedem ermöglicht, überall dort zu suchen, wo er möchte.
Um einen Gesamtblock einzurichten, verwenden Sie den folgenden Befehl:
<Directory "/">
Require all denied
</Directory>
Wenn Sie den Zugriff für bestimmte Benutzer ermöglichen möchten, können Sie dies folgendermaßen tun:
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
Wenn Sie den Zugriff auf bestimmte Ordner innerhalb des Verzeichnisses ermöglichen möchten, können Sie dies folgendermaßen tun:
<Directory "/usr/local/httpd">
Require all granted
</Directory>
Möglicherweise möchten Sie auch das Apache-Modul-Repository durchsuchen, um die Benutzerzugriffsrechte weiter zu optimieren.
10. Veröffentlichen Sie das Verzeichnis nicht
Wussten Sie, dass Benutzer den gesamten Inhalt sehen können, den Sie in Ihrem Stammverzeichnis gespeichert haben, wenn Ihr Server nicht über eine Indexdatei verfügt? Das ist offensichtlich nicht gut, daher müssen Sie diese Standardeinstellung wie folgt deaktivieren:
<Directory /var/www/html>
Options -Indexes
</Directory>
11. Serverdetails ausblenden
Da es sich bei Apache um eine Open-Source-Software handelt, sind Details zur verwendeten Version sofort verfügbar, sofern diese Einstellungen nicht serverseitig deaktiviert werden. Da Hacker diese sensiblen Informationen nutzen können, um herauszufinden, wie sie in Ihren Server eindringen können, sollten Sie diese Informationen blockieren.
Es gibt zwei Dinge, die Sie deaktivieren möchten:
- ServerSignature – die Version von Apache
- ServerTokens – einschließlich der Betriebssystemversion und anderer vertraulicher Serverdetails
Diese Informationen können von anderen Benutzern gefunden werden, indem sie einfach eine Fehlerseite auf Ihrer Website anzeigen. Daher ist es sehr wichtig, die Anzeige dieser Informationen zu blockieren. Aktualisieren Sie dazu die httpd.conf mit Folgendem:
ServerSignature Off
ServerTokens Prod
12. Verstecken Sie das ETag
Der ETag-Header in Apache enthält leider eine Reihe vertraulicher Details zu Ihrem Server. Offensichtlich sollte alles, was diese Art von Informationen mit der Außenwelt teilt, verborgen bleiben. Wenn Sie eine E-Commerce-Website betreiben, müssen Sie diese außerdem ausblenden, um PCI-konform zu sein.
Fügen Sie dazu die folgende Anweisung zu Ihrer httpd.conf hinzu:
FileETag None
13. Deaktivieren Sie die .htaccess-Überschreibung
Die .htaccess-Datei ist eine wichtige Datei für jede WordPress-Website. Aus diesem Grund müssen Sie es sperren und sicherstellen, dass niemand anderes Ihre Konfigurationseinstellungen überschreiben kann.
Um dies zu deaktivieren, fügen Sie Folgendes zu Ihrer httpd.conf im Stammverzeichnis hinzu:
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14. Deaktivieren Sie SSI und CGI
Server Side Includes (SSI)-fähige Dateien können Ihre Site einer Reihe von Sicherheitsproblemen aussetzen, wenn sie nicht aktiviert werden. Das Gleiche gilt für CGI-Skripte. Um zu verhindern, dass Hacker Hacker in die Lage versetzen, Ihren Server zu überlasten oder bösartige Skripts in Ihren Code einzuschleusen, denken Sie daran, sie über die Options-Direktive auszuschalten oder ihre Aktionen einzuschränken.
Hier sind einige Optionswerte, die Sie verwenden können:
- Optionen Alle
- Zu den Optionen gehört NOEXEC
- Optionen – Beinhaltet
- Optionen -ExecCGI
- Optionen -Includes -ExecCGI
- Optionen MultiViews
Kümmern Sie sich um Ihren Apache-Server
Um die Sicherheit Ihrer Website zu erhöhen, achten Sie besonders auf Ihren Apache-Server. Probleme wie eine Fehlkonfiguration des Servers und das Beibehalten von Standardeinstellungen können Ihre Website ebenso gefährden wie ein nicht aktualisierter Kern oder unsichere PHP-Codierungspraktiken.
Möchten Sie Ihr Feedback geben oder sich an der Diskussion beteiligen?Fügen Sie Ihre Kommentare auf Twitter hinzu.