fail2ban: Выявление и блокирование атакующих (HTTP error 4xx) веб сервер

Allsoft

В логах веб сервера можно заметить множество ошибок HTTP error 404, это может быть связано как с поведением различных ботов, так и с атакующими.

В процессе атаки веб сервера, атакующие используют различные инструменты к примеру DirBuster, OWASP ZAP и подобные, которые генерируют множество ошибок 404.

Данный метод надо применять с осторожностью, так как могут заблокироваться легитимные пользователи или поисковые системы. К примеру если удалить несколько страниц

Данный метод не будет работать с серверами установленными за реверс прокси, к примеру cloudflare. Блокировка происходит на фаерволе, а подключение к серверу происходит от серверов прокси. Что может привести к остановке публикации сайта.

По умолчанию у Nginx и Apache формат лога одинаковый. Разница лишь в пути.

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

1) Заходим в консоль

2) Необходимо создать файл с политикой fail2ban

echo > /etc/fail2ban/filter.d/nginx-400.conf

со следующим содержимым

[Definition]
failregex = ^<HOST>.*"(GET|POST).*" (404|444|403|400) .*$
ignoreregex = /apple-touch-icon.*
              /favicon\.ico

Правило обрабатывает ошибки 400, при этом игнорирует некоторые файлы, к которым обычно обращаются браузеры.

3) Тестируем правило

fail2ban-regex --print-all-matched /var/log/nginx/access.log /etc/fail2ban/filter.d/nginx-400.conf
4) Открываем политики /etc/fail2ban/jail.conf и добавляем следующую
[nginx-400]
enabled = true
port = http,https
filter = nginx-400
logpath = /var/log/nginx/access.log
bantime = 1800
findtime = 10
maxretry = 10

5) перезапускаем fail2ban для применения изменений

service fail2ban restart

Проверить статистику можно командой

fail2ban-client status nginx-400
Добавить комментарий