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

Действия при блокировке Fail2Ban в зависимости от кода состояния

Я использую Fail2Ban и настроил его по мере необходимости. Он читает логи из nginx / error.log и действует в зависимости от настроек maxretry и таймингов. Вопрос в том, возможно ли иметь разные правила в зависимости от кодов статуса?

Например, я хочу заблокировать всех, кто получит 10 404 Status code за 5 минут, но заблокировать получение 3 403 Status code.

Любая помощь будет принята с благодарностью, заранее спасибо.

Вы должны добавить фильтр в /etc/fail2ban/filter.d/ с соответствующим именем - например, nginx-{403,404}.conf.

Они должны содержать что-то вроде следующих строк:

nginx-403.conf:

[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 403
ignoreregex =

nginx-404.conf:

[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 404
ignoreregex =

Затем вы должны вызвать их из своего jail.conf или любого другого файла conf:

Для 403:

[nginx-403]

enabled = true
port    = http,https
filter  = nginx-403
logpath = /var/log/nginx/access.log
maxretry = 5
findtime = 300

А для 404:

[nginx-404]

enabled = true
port    = http,https
filter  = nginx-404
logpath = /var/log/nginx/access.log
maxretry = 10
findtime = 300