Fast bei jeder Anfrage erhalte ich folgende Fehlermeldung:
Rule execution error - PCRE limits exceeded (-8): (null).
Nach einigem googeln scheinen die einzigen Lösungen zu sein
a) Fügen Sie Folgendes in Ihre httpd.conf ein
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b) Fügen Sie Ihrer php.ini Folgendes hinzu
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c) Verwenden Sie eine Version, die mit -disable-pcre-match-limit
Option kompiliert wurde .
Ich führe folgendes aus:
ModSecurity für Apache / 2.5.12 ( http://www.modsecurity.org/ ).
Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + Squeeze8 mit Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8
Für meine ModSec-Regeln verwende ich die OWASP ModSecurity Core Rule Set Project-Version (CRS) Version 2.2.3, die zum Zeitpunkt dieser Veröffentlichung die neueste ist.
Meine httpd.conf besteht im Wesentlichen aus:
<IfModule security2_module>
SecUploadDir /var/asl/data/suspicious
SecDataDir /var/asl/data/msa
SecTmpDir /tmp
SecAuditLogStorageDir /var/asl/data/audit
Include modsecurity.d/modsecurity_crs_10_config.conf
Include modsecurity.d/activated_rules/*.conf
SecRuleEngine On
# Debug log
SecDebugLog /var/log/apache2/modsec_debug.log
SecDebugLogLevel 3
# Serial audit log
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus ^5
SecAuditLogParts ABIFHZ
SecAuditLogType Serial
SecAuditLog /var/log/apache2/modsec_audit.log
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
</IfModule>
<IfModule mod_php5.c>
php_admin_flag pcre.backtrack_limit 10000000
php_admin_flag pcre.recursion_limit 10000000
</IfModule>
Davon in meinem modsecurity.d
Verzeichnis nur alle Standardregeln, die CRS in seiner Installationsdatei hat. Ich habe auch die PCR-Grenzwerte auf 150000000 und 100000000000 und mehr festgelegt, aber nicht verfügbar.
Also abschließend:
Lösungen a
und b
funktionieren nicht, und ich ziehe es vor, es nicht zu tun c
... da ich das Kompilieren nicht wirklich verstehe / mag.
Hat jemand andere Ideen?
quelle
Antworten:
Heilige Rekursion, Batman!
Ich behaupte, Sie haben etwas mit Ihren mod_security-Regeln falsch gemacht. Diese Art der Rekursion scheint unnötig zu sein und wird höchstwahrscheinlich eine ernsthafte Belastung für Ihren Server verursachen. Korrigieren Sie die Regeln und / oder die Apache-Konfiguration und versuchen Sie nicht, dieses Problem mit beliebig großen Zahlen zu "beheben".
quelle
Beobachten Sie dies genau, da ich genau das gleiche Problem habe und Ihre Konfiguration meiner ähnlich sieht. Ich bin ein Anfänger in Sachen Modsecurity, es ist nicht gerade noob-freundlich!
Stimmen Sie mit Janne überein. Bisher habe ich nur den Rat, alle Kernregeln zu entfernen und sie 1 zu 1 erneut einzuführen, um das Problem einzugrenzen. Ich mache das jetzt gleich.
Außerdem sollten Sie Ihre Regelengine-Einstellung auf ändern
Während Sie Konfigurationsprobleme bearbeiten, können Sie auf diese Weise überwachen, ohne sie durchzusetzen. Sie möchten die Regeln nicht durchsetzen, solange Sie noch nicht sicher sind, ob sie das tun, was Sie wollen.
Bitte senden Sie Ihre Erkenntnisse zurück, wenn Sie eine Lösung finden.
quelle
Das muss in einigen * nix-Versionen in den Konfigurationsdateien von mod_security gefunden und geändert werden.
quelle