Мод безопасности правил, нарушающий Apache configtest - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь добавить правило безопасности мода для реализации ограничения скорости для определенного 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>

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

1 Ответ

1 голос
/ 26 марта 2019

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

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

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

...