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

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

У меня проблема в том, что за определенным IP-адресом NAT может находиться несколько клиентов, и мне нужно различать их. Каждый клиент запрашивает разные 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
0
задан 3 September 2018 в 12:49
1 ответ

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

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

0
ответ дан 5 December 2019 в 05:18

Теги

Похожие вопросы