SystemdDoctor
fail2ban.service защита

fail2ban в systemd: почему не запускается

fail2ban падает в основном из-за того, за чем он следит: если указанного файла журнала нет, служба не стартует целиком. Вторая причина — расхождение между настроенным способом блокировки и тем, что есть в системе: nftables против iptables.

О службе

fail2ban читает настройки из /etc/fail2ban с наложением: файлы *.conf идут от пакета, *.local — ваши. Правки нужно вносить только в .local, иначе обновление пакета их затрёт. Ошибка в любом включённом файле останавливает запуск службы, а не отдельного правила.

Каждое правило (jail) указывает файл журнала. Если файла нет — например настроено наблюдение за журналом apache, который не установлен, — служба откажется стартовать. В современных сборках вместо файлов используется чтение журнала systemd, и тогда нужен параметр backend=systemd.

Способ блокировки задаётся действием. На системах с nftables действие для iptables может не работать, и служба запустится, но блокировать не будет. Это самый неприятный вариант: внешне всё в порядке, а защиты нет.

Как устроена

Настройкифайлы .local в /etc/fail2ban поверх .conf от пакета
Проверка настроекfail2ban-client -t — разбирает все правила и печатает ошибки
Источник событийфайл журнала или журнал systemd при backend=systemd
Состояние правилfail2ban-client status и fail2ban-client status ИМЯ
Частая поломкаотсутствующий файл журнала в правиле останавливает всю службу

Частые ошибки

6 записей базы отмечены за этой службой.

Коды выхода

  • status=1/FAILURE в systemdКод 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.

Сообщения журнала

  • No such file or directory в журнале службыСлужба не находит файл или каталог. Разбор: путь, момент запуска, изоляция unit-файла, символические ссылки, приватный /tmp.
  • Permission denied в журнале службыОтказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.

Состояния результата

Ошибки служб

Коды выхода этой службы

Числа в status=N ниже 200 назначает сама программа, 200 и выше — systemd, когда не смог подготовить запуск.

statusЧто означает у этой службыКуда смотреть
1/FAILURE ошибка в настройках или отсутствующий файл журнала в одном из правил. разбор
255 нестандартный код при ошибке разбора у части версий. разбор

Диагностика

Проверка всех настроек: печатает файл, правило и ошибку.

sudo fail2ban-client -t

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

systemctl status fail2ban --no-pager -l

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

sudo fail2ban-client status

Сообщения об отсутствующих файлах журналов и ошибках действий.

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

Параметры unit, которые тут важны

  • Type=simple или notify в зависимости от версии
  • Restart=on-failure: защита должна возвращаться после сбоя
  • RuntimeDirectory=каталог в /run для сокета управления

Источники

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