mod_security funktioniert überhaupt nicht

mod_security funktioniert überhaupt nicht

Ich versuche, die mod_security zum Laufen zu bringen, ich habe viel im Internet gesucht und bin gefolgtdieses Tutorialum mod_security zu konfigurieren (alle meine Konfigurationsdateien sind die gleichen wie im Tutorial), und wenn ich httpd -M | grep -Ei '(evasive|security)'es ausführe, gibt es aus

 security2_module (shared)
 evasive20_module (shared)

Die Erweiterungen werden also geladen, aber es wird überhaupt nichts blockiert und es wird auch nichts in die Protokolldatei geschrieben. Ich habe es sogar SecDebugLogLevelauf 9 gesetzt und das Debug-Protokoll ist immer noch leer.

Ich habe versucht, die Module vor den anderen, nach den anderen oder mittendrin zu laden, habe Apache mehrmals neu gestartet und nichts hat funktioniert.

Ich verwende Amazon Linux (es ist wie CentOS) mit Apache 2.4 Prefork.

Antwort1

Benötige weitere Informationen, um helfen zu können (die gesamte relevante Apache-Konfiguration aus httpd.conf und modsecurity.conf).

Hier sind jedoch einige Hinweise, die Ihnen bei der Lösung Ihres Problems helfen könnten:

Verwenden Sie den richtigen IfModule-Befehl? Ich verwende mod_security2.c, bin mir aber nicht sicher, ob das wichtig ist:

<IfModule mod_security2.c>
    Include conf/modsecurity.conf
</IfModule>

Haben Sie versucht, Apache vollständig zu stoppen und zu starten (kein ordnungsgemäßer Neustart)?

Steht nach einem vollständigen Stopp und Neustart irgendetwas in den Fehlerprotokollen? Es sollten einige [:notice]-Einträge wie diese vorhanden sein:

ModSecurity for Apache/2.9.0 (http://www.modsecurity.org/) configured.
ModSecurity: APR compiled version="1.5.0"; loaded version="1.5.0"
...etc.

Das zeigt, dass ModSecurity geladen wurde.

Gibt es PCRE-Fehler in der Fehlerprotokolldatei (was passieren kann, wenn ModSecurity mit einer anderen Version von PRCE als Apache kompiliert wurde)? Führen Sie einen ldd-Befehl für httpd und mod_security.so aus, um sicherzustellen, dass sie übereinstimmen. Zu Ihrer Information: Wenn ich den Befehl „httpd -M“ auf meiner Arbeitsversion ausführe, werden KEINE Sicherheitsmodule angezeigt – ich denke, weil es nicht geladen wird, es sei denn, ein Include wird ausgeführt.

Wird das Debug-Protokoll erstellt, ist aber leer? Wenn es erstellt wird, ist das ein gutes Zeichen dafür, dass ModSecurity selbst geladen wird.

Befinden sich alle Ihre Apache-Einstellungen im Verzeichnis /etc/httpd/conf, wie in der Anleitung, die Sie verwendet haben, vorgeschlagen wird? Es ist nicht ungewöhnlich, mehrere Versionen von Apache installiert zu haben und die Version, für die Sie die Konfiguration bearbeiten, ist nicht die, die verwendet wird :-)

Ich empfehle das ModSecurity-Handbuch von Ivan Ristic, von dem eine Kostprobe kostenlos erhältlich ist:https://www.feistyduck.com/library/modsecurity-handbook-free/und dies behandelt die Installation. Ivan hat ursprünglich ModSecurity geschrieben, daher würde ich empfehlen, das ganze Buch zu kaufen. Es ist ein paar Versionen älter, aber immer noch größtenteils relevant. Die wichtigste Änderung, die im Buch nicht behandelt wird, ist, dass eine Regel-ID jetzt obligatorisch ist.

verwandte Informationen