fail2ban различает результаты для одного и того же IP

fail2ban различает результаты для одного и того же IP

Мне нужно реализовать fail2ban для защиты сервера. Я хотел бы сканировать логи и банить хосты, которые генерируют много сообщений 404.

Проблема, с которой я столкнулся, заключается в том, что за определенным NAT'd IP может находиться несколько клиентов, и мне нужно различать их. Каждый клиент запрашивает другой URL в следующем формате:

https://server.example.com/path/<uniqueid>/<mac_address>

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

Я разработал следующее регулярное выражение, которое, по-видимому, перехватывает необходимые события:

(?P<host>(\d{1,3}.){4})\ -\ -\ \[\d{1,2}\/\w+\/\d{4}[\:\d{2}]+\ \+\d{4}\] "GET \/path\/(?P<unique_id>.+)\/.+HTTP\/\d.\d" ".+" ".+" 404.+

Это должно соответствовать:

1.1.1.11 - - [29/Aug/2018:01:27:45 +0100] "GET /path/3B44444444483/ddddee37D4.cfg HTTP/1.1" "somestring" "otherstring" 404 - 2005 5 0.117

И это должно совпадать, но считаться другим примером, нежели приведенный выше:

1.1.1.11 - - [29/Aug/2018:01:27:45 +0100] "GET /path/3B46666444483/ddddee37D4.cfg HTTP/1.1" "somestring" "otherstring" 404 - 2005 5 0.117

решение1

При использовании этой конфигурации ваш сервер потребляет больше ресурсов ЦП, просматривая ответы 404 в журналах, чем обеспечивает какую-либо выгоду для безопасности или ЦП от необработки ответа 404 для X IP.

Если вам не нравятся эти ответы, не создавайте для них записи в журнале.

Связанный контент