Правило безопасности мода, нарушающее configtest Apache

Я пытаюсь добавить правило безопасности мода для реализации ограничения скорости для определенного uri в веб-приложении, которое обслуживается apache.

Я получаю следующую ошибку при попытке перезапустить apache:

ModSecurity: No action id present within the rule
Action 'configtest' failed.
The Apache error log may have more information

В частности, это то, чего я пытаюсь достичь: https://johnleach.co.uk/words/2012/05/15/rate-limiting-with-apache-and-mod-security/

Похоже, что эта статья была написана для предыдущей версии mod_security, где идентификатор не требовался.

Однако я изменил правило, включив в него идентификатор (как видите, я добавил идентификатор: 1234). Поэтому я не уверен, почему я все еще получаю сообщение об ошибке.

<LocationMatch "^/login_check">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,id:1234,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
  SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
  Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>

Не совсем уверен, как это отлаживать. Приветствуется любой вклад.


person PiX06    schedule 25.03.2019    source источник
comment
Кроме того, я также пытался заключить значение id в одинарные кавычки, но это не имеет значения.   -  person PiX06    schedule 25.03.2019


Ответы (1)


Для директив SecAction также требуется идентификатор: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-%28v2.x%29#id

Примечание. Действие id требуется для всех директив SecRule/SecAction, начиная с версии 2.7.0.

Добавьте уникальный идентификатор в свои строки SecAction, и он должен работать.

person Barry Pollard    schedule 26.03.2019
comment
Спасибо, я в конце концов понял это! - person PiX06; 26.03.2019