Рейтинг:0

fail2ban не банит, но соответствует логам

флаг ng

Я пытаюсь создать защиту от перебора с помощью fail2ban.С тестом fail2ban он соответствует журналам, которые я хочу сопоставить, но с моим тестовым перебором, форсирующим сайт с 7+ неудачными входами в систему, он не блокирует мой IP-адрес.

фильтр:

[Определение]
failregex = <HOST>:.*"POST /login.*" 200 .*$
игнорироватьregex =

тюрьма:

[магазин-грубая сила]
включено = верно
filter = магазин-грубая сила
logpath = /etc/exampleorg/shop/log/access.log
максимальная попытка = 7
найти время = 60
бантайм = 900
игнорип =

пример журнала (анонимно с помощью ..., 88.88.88.88 и example.org):

2022/04/01 08:09:25.413720 88.88.88.88:10729 - - [01/Апр/2022:08:09:25 +0000] "POST /login?target=%2Fshop%2F HTTP/1.1" 200 2192 " https://example.org/login?target=%2Fshop%2F" "..."

тестовое задание:

Запуск тестов
==============

Используйте файл фильтра failregex: shop-brute-force, baseir: /etc/fail2ban
Используйте файл журнала: /home/user/test.log
Использовать кодировку: UTF-8


Результаты
=======

Failregex: всего 3
|- #) [количество совпадений] регулярное выражение
| 1) [3] <HOST>:.*"POST /login.*" 200 .*$
`-

Игнорировать регулярное выражение: всего 0

Дата показа шаблона:
|- [количество просмотров] формат даты
| [106] Год(?P<_sep>[-/.])Месяц(?P=_sep)День 24час:минута:секунда(?:,микросекунды)?
`-

Строки: 106 строк, 0 проигнорировано, 3 совпало, 103 пропущено
[обработано за 0,02 секунды]

Пропущенные строки: слишком много для печати. Используйте --print-all-missed, чтобы напечатать все 103 строки
Рейтинг:0
флаг il

Я пытаюсь создать защиту от перебора с помощью fail2ban
failregex = ... 200 ...

Это не обязательно попытка грубой силы, потому что 200 — это обычный ответ, что означает «ОК». Обычно такие коды, как 401 или 403, сигнализируют о несанкционированных попытках, или, если служба отвечает кодом 200, она записывает дополнительную запись в журнал. какой-нибудь лог-файл или журнал (не обязательно в доступ.log). Но и другие вещи здесь весьма сомнительны, не говоря уже о том, что теоретически можно переборщить чужими методами, т.к. ПУБЛИКОВАТЬ.

но с моим тестовым перебором сайта с 7+ неудачными входами в систему ...
Строки: 106 строк, 0 проигнорировано, 3 совпало, 103 пропущено

Вы не предоставили всю выдержку из журнала, соответствующую этим 7 попыткам. И fail2ban-regex найти только 3 совпадения, связанные с вашим отказоустойчивое выражение (что совсем нехорошо, например, без привязки и с универсальными, впрочем, ничего - спичек там нет). Вероятно, он регистрирует что-то другое в виде одной строки журнала из вашего примера, потому что ваш RE в основном соответствует этому. Таким образом, пожалуйста, обновите свой вопрос, указав всю выдержку из журнала, соответствующую всем 7 попыткам, которые вы предприняли.

И последнее, но не менее важное: намного лучше RE мог бы выглядеть так:

failregex = ^\s*<ADDR>:\d+ [^"]*"[A-Z]+ /login\b[^"]*" 200\b

Однако я все еще не уверен, что вы действительно будете использовать это (из-за 200-й проблемы и всего, о чем я упоминал выше).

Если это был только тест (с 3 строками лога) и вы действительно видите все 7 строк лога в реальном логе, вы можете проверить это FAQ по возможным причинам почему fail2ban не банит. Например, это может быть неправильно серверная часть (установите его на авто для мониторинга, связанного с файлами), или неподходящее действие бана, или какая-то ошибка на стороне fail2ban (проверьте также fail2ban.log).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.