Um Angriffe gegen Webanwendungen zu erkennen und zu verhindern, gleicht die Web Application Firewall (ModSecurity) alle Abfragen an Ihren Webserver und die zugehörigen Antworten vom Server mit ihren Regeln ab. Wenn diese Überprüfung erfolgreich verläuft, wird die HTTP-Abfrage an den Website-Content weitergegeben. Fällt die Überprüfung hingegen negativ aus, werden die vorher definierten Aktionen durchgeführt.
ModSecurity ist ein Modul für Apache. Daher kann es nur HTTP-Abfragen prüfen, die Apache erreichen. Apache wird aber auch durch einen weiteren Webserver ergänzt: nginx. Wenn Sie die Option PHP von nginx verarbeiten lassen des nginx-Webservers für den dynamischen Content Ihrer Website einschalten, kann die Web Application Firewall keine HTTP-Abfragen überprüfen, da sie nie Apache erreichen. Für den statischen Content gilt dies bei eingeschalteter Option Statische Dateien direkt durch nginx bedienen, da HTTP-Abfragen Apache nicht erreichen und somit ModSecurity diese nicht überprüft.
Hinweis: Administratoren, die von Plesk 11.5 upgraden wollen und die Web Application Firewall (ModSecurity) verwenden wollen, müssen einen neuen Lizenzschlüssel für Plesk 12 von Odin oder ihrem Anbieter erhalten.
So aktivieren Sie die Web Application Firewall:
Hinweis: Die Modi der Web Application Firewall können auf Server- sowie auf Domainebene eingerichtet werden. Jedoch kann kann der Modus auf Domainebene nicht höher sein als der für den Server festgelegte Modus. Wenn beispielsweise die Web Application Firewall auf der Server-Ebene im Modus Nur Erkennung arbeitet, werden Sie sie für Domains nicht auf Ein einstellen können. In dem Fall werden nur die Modi Aus und Nur Erkennung angezeigt.
Achtung: Wenn Sie den Atomic Regelsatz auswählen, müssen Sie wie folgt vorgehen, um sicherzustellen, dass ModSecurity einwandfrei funktioniert:
Rufen Sie auf dem Server den Befehl aum -u
aus. Das Plesk modsecurity-Paket wird durch das Paket aus dem Atomic Repository ersetzt. Führen Sie anschließend die folgenden Befehle aus:
plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl –enable
service httpd restart
Hinweis: Für eine optimale Leistung benötigt die Web Application Firewall einen lokalen DNS-Server, bei dem das Caching von Abfragen aktiviert ist. Sonst kann es passieren, dass Ihre Websites bei eingeschalteter Web Application Firewall langsam laden.
ModSecurity verwendet zwei Orte für Protokolle:
/var/log/httpd/modsec_audit.log
) ist sehr detailliert und wird vom gesamten Plesk Server verwendet. Sobald ModSecurity erkennt, dass ein Ereignis eingetreten ist, generiert es einen Eintrag in der Auditprotokolldatei. Wenn Sie das ModSecurity Auditprotokoll einsehen möchten, rufen Sie Tools & Einstellungen > Web Application Firewall (ModSecurity) auf und klicken Sie auf den Link Protokollarchiv im Abschnitt ModSecurity Auditprotokoll. Dort können Sie die ModSecurity Protokolldateien und ihre Änderungsdaten sehen sowie die Protokolldateien herunterladen./var/www/vhosts/DOMAIN.TLD/logs/error_log
) enthält nur kurze Informationen über Website-Fehler. Sie können das Fehlerprotokoll für eine bestimmte Website im einsehen. Dazu gehen Sie zu Websites & Domains > <Domainname> > Protokolle und wählen auf der rechten Seite nur Apache-Fehler und nginx-Fehler anstatt Alle Protokolle aus.Eine Website kann u.U. nicht mehr wie erwartet funktionieren, wenn Sie den Modus der Web Application Firewall von Aus oder Nur Erkennung zu "Ein" ändern. Fehlercodes wie 403
, 404
oder 500
sind dann im Fehlerprotokoll der Website finden und erscheinen wiederum nicht mehr, wenn Sie den Modus der Web Application Firewall zurück in Nur Erkennung oder Aus ändern. In diesem Fall sollten Sie das ModSecurity-Auditprotokoll analysieren, um herauszufinden, was genau passiert. Sie können zu strenge Sicherheitsregeln ausschalten oder die Website anpassen.
So finden Sie heraus, warum eine HTTP-Abfrage für eine Website nicht abgeschlossen werden konnte und schalten die entsprechende Sicherheitsregel aus:
Strg+F
in den meisten Webbrowsern), um Ereignisse in Verbindung mit der Website (dem Domainnamen) zu finden, die die Probleme verursacht haben. Suchen Sie zum Beispiel nach ihre_domain.tld
. Der Browser markiert dann Einträge wie HOST: ihre_domain.tld
. Suchen Sie drei Zeilen über dem markierten Eintrag eine Zeichenkette wie --eece5138-B--
. Die acht Zeichen zwischen den Bindestrichen (in unserem Beispiel: eece5138
) sind die ID des Ereignisses, das von der HTTP-Abfrage ausgelöst wurde.H
nach der Ereignis- ID (in unserem Beispiel: eece5138-H--
). Dieser Eintrag enthält die ID und die Beschreibung der Sicherheitsregel, die während der Überprüfung der HTTP-Abfrage ausgelöst wurde. Die ID der Sicherheitsregel ist eine ganzzahlige Nummer in Anführungszeichen, die mit 3
beginnt und zusammen mit dem Präfix id
in eckige Klammern gesetzt ist. Zum Beispiel [id "340003"]
.[id "3
verwenden.340003
), Kennzeichnung (z.B. CVE-2011-4898) oder regulären Ausdrucks (z.B. XSS
) aus und klicken Sie auf OK.