Я пытаюсь создать правило, чтобы ограничить количество ошибок аутентификации xmlrpc.php до 5 в минуту. Правила ModSecurity, которые у меня есть до сих пор:
SecAction phase:1,nolog,pass,initcol:IP=%{REMOTE_ADDR},id:690010
<LocationMatch "/xmlrpc.php">
SecRule IP:COUNTXYZ "@gt 5" "phase:1,deny,status:403,log,msg:'WAF Rules : IP address blocked - more than 5 xmlrpc errors in 60 seconds',id:690011"
SecRule RESPONSE_BODY "faultCode" "phase:4,pass,nolog,setvar:ip.countxyz=+1,deprecatevar:ip.countxyz=1/60,id:690012"
</LocationMatch>
Несмотря на неоднократные обращения к сайту на этом сервере с использованием:
curl -d '<?xml version="1.0"?> <methodCall> <methodName>wp.getUsersBlogs</methodName> <params> <param> <value>username</value> </param> <param> <value>password</value> </param> </params> </methodCall>' http://victimsite/xmlrpc.php
который в каждом случае отправляет обратно тело, содержащее текст «faultCode», но никогда не блокирует запросы, даже если каждый запрос поступает с фиксированного IP-адреса. Есть ли проблема в синтаксисе моих правил, или я могу это отладить?