Em quase todas as solicitações, estou recebendo o seguinte erro:
Rule execution error - PCRE limits exceeded (-8): (null).
Depois de pesquisar bastante, as únicas soluções parecem ser
a) Adicione o seguinte no seu httpd.conf
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b) Adicione o seguinte ao seu php.ini
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c) Use uma versão que foi compilada com a -disable-pcre-match-limit
opção
Estou executando o seguinte:
ModSecurity for Apache / 2.5.12 ( http://www.modsecurity.org/ ).
Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + squeeze8 com Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8
Para ModSec minhas regras, estou usando a versão 2.2.3 do CRS (Projeto de Conjunto de Regras Principais do OWASP ModSecurity), versão 2.2.3, a mais recente desta publicação.
Meu httpd.conf consiste basicamente em:
<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>
Das quais dentro do meu modsecurity.d
diretório estão todas as regras padrão que o CRS possui em seu arquivo de instalação. Também defini os limites de pcre para 150000000 e 100000000000 e mais, mas não estão disponíveis.
Então, em conclusão:
soluções a
e b
não estão funcionando, e eu prefiro muito não fazer c
... como eu realmente não entendo / gosto de compilar.
Alguém tem outras ideias?
fonte
Respostas:
Santo recursão, Batman!
Eu afirmo que você tem algo errado com suas regras de mod_security. Esse tipo de recursão parece desnecessário e provavelmente causará uma carga séria no servidor. Corrija as regras e / ou a configuração do Apache e não tente "corrigir" esse problema com números arbitrariamente grandes.
fonte
Observando isso de perto, pois tenho exatamente o mesmo problema e sua configuração é semelhante à minha. Eu sou o primeiro temporizador de modsecurity, não é exatamente fácil de usar!
Concordo com Janne. O único conselho que tenho até agora é remover todas as regras básicas e reintroduzi-las 1 a 1 para começar a diminuir o problema. Estou prestes a fazer isso agora.
Você também deve alterar a configuração do mecanismo de regras para
ao trabalhar com problemas de configuração, isso permitirá que você monitore sem impor - você não deseja impor as regras enquanto ainda não tem certeza de que eles estão fazendo o que você deseja.
Publique de volta com seus aprendizados se você encontrar uma solução.
fonte
O arquivo deve ser encontrado e alterado nos arquivos de configuração mod_security em algumas versões * nix.
fonte