SystemdDoctor
служба не работает fail2ban конфигурация

fail2ban: Failed during configuration и отсутствующий файл журнала

Если в правиле fail2ban указан файл журнала, которого нет на машине, служба не запускается целиком. Частая ситуация: правило для apache на сервере с nginx или правило для почтовой службы, которая не установлена.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Файла журнала из правила нет

    fail2ban проверяет доступность всех источников при запуске и отказывается работать при отсутствии любого.

  2. Служба пишет в журнал systemd, а не в файл

    На современных системах многие службы не ведут собственных файлов. Правило с указанием пути к файлу для них не работает.

  3. Файл существует, но недоступен для чтения

    fail2ban работает от root и обычно читает всё, но при жёсткой изоляции в unit-файле путь может быть закрыт.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Проверка всех правил: называет правило и проблемный файл.

sudo fail2ban-client -t

Сообщения службы при отказе запуска.

journalctl -u fail2ban -n 40 --no-pager | grep -iE "error|not found|failed"

Список активных правил при работающей службе.

sudo fail2ban-client status

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Файла журнала из правила нет
Почему происходит
fail2ban проверяет доступность всех источников при запуске и отказывается работать при отсутствии любого.
Как проверить
Запустите проверку настроек: она называет файл и правило.
sudo fail2ban-client -t
Как исправить
Отключите ненужное правило или укажите существующий файл. Правила по умолчанию удобно отключать в jail.local.
# /etc/fail2ban/jail.local
# [apache-auth]
# enabled = false
2. Служба пишет в журнал systemd, а не в файл
Почему происходит
На современных системах многие службы не ведут собственных файлов. Правило с указанием пути к файлу для них не работает.
Как проверить
Посмотрите, куда пишет служба.
systemctl show sshd -p StandardOutput 2>/dev/null; ls -l /var/log/auth.log 2>/dev/null
Как исправить
Переведите правило на чтение журнала systemd: параметр backend = systemd вместо пути к файлу.
# [sshd]
# backend = systemd
3. Файл существует, но недоступен для чтения
Почему происходит
fail2ban работает от root и обычно читает всё, но при жёсткой изоляции в unit-файле путь может быть закрыт.
Как проверить
Проверьте доступ и параметры изоляции.
sudo head -1 /var/log/auth.log
systemctl show fail2ban | grep -E "Protect|ReadOnly"
Как исправить
Разрешите путь через ReadWritePaths= или ослабьте изоляцию для нужного каталога.

Пример вывода

Правило ссылается на журнал apache, которого нет. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

× fail2ban.service - Fail2Ban Service
     Active: failed (Result: exit-code) since Mon 2026-09-15 16:02:10 MSK; 2s ago

fail2ban-server[4400]: ERROR   Failed during configuration: Have not found any log file for apache-auth jail
fail2ban-server[4400]: ERROR   Async configuration of server failed
systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация fail2ban: правила и источники журналов документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено правилом apache-auth на сервере без apache.
    собственная проверка, systemd 255
    сверено 15 сентября 2026