Назад | Перейти на главную страницу

Ограничение скорости Контроль доступа Apache 2?

Я не делаю ничего особенного. Я просто использую контроль доступа Apache2 для защиты каталога паролем.

Я подумал, что было бы разумно, если бы Apache ограничивал частоту попыток пользователей аутентифицировать имя пользователя и пароль с заданного IP-адреса. Это был бы дешевый способ предотвратить попытки перебора пароля без DoSing-атаки законных попыток входа пользователя.

Я искал и не нашел ничего конкретного по этому поводу, и был удивлен. Как это сделать? Есть что-нибудь получше?

это Сообщение блога указывает, что вы можете сделать это с mod_security используя что-то вроде следующего:

SecRuleEngine On

<LocationMatch "^/somepath">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,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>

ErrorDocument 509 "Rate Limit Exceeded"

Больше обсуждения на этот ответ.