Анализ логов без передачи логов: как это устроено в KIPBan

4 мин чтения · обновлено 9 октября 2026

Чтобы понять, какие атаки проходят мимо fail2ban, нужно читать журналы сервера. Обычное решение — отправить их в облачный сервис, и там их разберут. Но журналы веб-сервера и почты — это адреса посетителей, логины, адреса почты и содержимое запросов. Отдавать их наружу ради статистики атак хочется не всем, а иногда и нельзя. Анализ журналов в KIPBan устроен наоборот: журналы разбираются на самом сервере, а в кабинет уходят только счётчики. Разберём, как это работает и что именно передаётся.

Что лежит в журналах

Одна строка access.log nginx содержит IP посетителя, время, адрес страницы с параметрами, код ответа и User-Agent. В параметрах бывают токены восстановления пароля и номера заказов. Журнал почтового сервера содержит адреса отправителей и получателей и логины ящиков. Это персональные данные в прямом смысле слова, и передача их третьей стороне — отдельный вопрос для юриста.

Для того чтобы сказать «на этом сервере 35 сканеров не заблокированы», сами строки не нужны. Нужны только счётчики.

Как устроен анализ

  1. Поиск журналов. Агент KIPBan находит работающие сервисы и их журналы: по файлам, открытым процессами, по конфигурации nginx, по journald и по известным путям почтовых и FTP-серверов. Поддерживаются нестандартные пути, панели управления вроде ISPmanager и несколько сайтов на одном сервере.
  2. Проверка шаблонами. Агент читает до 150 тысяч последних строк каждого журнала вместе с файлом после ночной ротации, то есть примерно сутки, и проверяет их шаблонами атак из каталога KIPBan. Шаблоны лежат в отдельной папке агента и в настройки fail2ban не попадают.
  3. Сверка. Найденные адреса сверяются с тем, что сервер уже блокирует: другими jail или из общей базы KIPBan. Сверка тоже идёт на сервере.
  4. Порты. Агент смотрит, на каком интерфейсе слушает каждый сервис, и отмечает порты, открытые наружу, в том числе порты Docker-контейнеров, опубликованные в обход брандмауэра.
  5. Сводка. В кабинет уходят только итоговые цифры.

По сути это то же, что администратор делает руками утилитой fail2ban-regex, только для всех журналов сразу, каждую ночь и со сверкой с текущими банами.

Что передаётся и что нет

Формулировка, которой мы придерживаемся:

Журналы читаются и анализируются только на самом сервере. В кабинет приходит сводка: какие сервисы найдены, где лежат их журналы и сколько раз сработал каждый фильтр. Строки журналов и IP-адреса из них не передаются.

Передаётся в кабинетНе передаётся
список сервисов и их портыстроки журналов
пути к журналам и число проверенных строкIP-адреса из журналов
по каждому шаблону: число срабатываний, число адресов, сколько из них уже заблокированосодержимое запросов, логины, адреса почты
версия fail2ban, тип брандмауэра, панель управления

Отчёт в кабинете поэтому выглядит как таблица счётчиков: серая строка с сервисом, путём к журналу и числом строк, а под ней шаблоны с цифрами и итогом — «включён», «уже блокируются», «не закрыто: 35 из 58» или «единичные».

Одно уточнение, чтобы не было недопонимания. Анализ журналов не передаёт IP-адреса, но если вы включите jail в режиме бана, адреса, которые он забанит, уйдут в KIPBan так же, как от любого другого jail: в этом смысл общего бан-листа. В режиме наблюдения jail ничего не банит.

Что анализ делает с сервером

  • Ничего не меняет. Анализ только читает журналы. fail2ban меняется лишь тогда, когда вы сами включили jail в кабинете. Исключение — базовый jail SSH, который работает на каждом сервере Linux по умолчанию.
  • Выключен, пока вы его не включите. Включается для всей фермы, для группы серверов или для одного сервера.
  • Не мешает работе. Анализ запускается раз в сутки ночью, между 05:00 и 06:00, с самым низким приоритетом. Он ограничен половиной одного ядра, 400 МБ памяти и 10 минутами. На реальных серверах анализ занимает от 1 секунды до 4 минут. Кнопка «Запустить анализ» в кабинете проверяет сервер сразу.

Что нужно от сервера

  • Linux и агент KIPBan 21.5 или новее. Агенты обновляются сами. Для Windows анализа журналов нет.
  • Журналы в привычном формате, где IP посетителя стоит в начале строки. Если формат нестандартный, отчёт предупредит, что разобрать журнал не удалось.
  • Журналы на самом сервере. Журналы внутри Docker-контейнеров не анализируются, хотя сами контейнеры и их порты видны.

Что анализ находит на обычных серверах, мы посчитали в статье «Что fail2ban на вашем сервере не видит». А как включить найденный jail безопасно, описано в статье «Режим наблюдения: как включить jail и не забанить своих».

Вопросы

Отправляет ли KIPBan журналы сервера в облако?

Нет. Журналы читаются и анализируются только на самом сервере. В кабинет приходит сводка: какие сервисы найдены, где лежат их журналы и сколько раз сработал каждый фильтр. Строки журналов и IP-адреса из них не передаются.

Как часто запускается анализ журналов?

Раз в сутки ночью, между 05:00 и 06:00, с самым низким приоритетом и ограничением по процессору, памяти и времени. Проверить сервер сразу можно кнопкой «Запустить анализ» в кабинете.

Меняет ли анализ журналов настройки fail2ban?

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