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

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

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

Проверено на тестовой машине: systemd 255, Ubuntu 24.04. Сверено с документацией 15 сентября 2026. Как мы проверяем

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

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

  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

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

  • No such file or directory в журнале службы Служба не находит файл или каталог. Разбор: путь, момент запуска, изоляция unit-файла, символические ссылки, приватный /tmp.
  • status=255/EXCEPTION в systemd Код 255/EXCEPTION: программа завершилась с кодом 255 либо код используется для передачи аварийного завершения. Как различить случаи.
  • status=1/FAILURE в systemd Код 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.
  • Apache: Invalid command — не включён модуль Apache не запускается: директива требует модуль, который не подключён. Как найти нужный модуль и включить.
  • Apache: правила .htaccess не действуют Файл .htaccess игнорируется: запрещён параметром AllowOverride, нет нужного модуля, файл не читается.
  • Configuration file is marked executable Предупреждение о правах: unit-файл помечен исполняемым. Откуда берётся и почему это стоит исправить.
  • Configuration file is marked world-inaccessible Предупреждение о правах на unit-файл: служба работает, но файл недоступен для чтения другим.
  • Docker: unable to configure the Docker daemon with file daemon.json Демон Docker не запускается из-за ошибки в /etc/docker/daemon.json: неверный JSON или неизвестный ключ.

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

Источники

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