SystemdDoctor
мешает работе fail2ban защита сеть

fail2ban: правила создаются, но не блокируют

Самый неприятный случай: fail2ban показывает заблокированные адреса, а фактической блокировки нет. Так бывает, когда действие настроено под iptables, а в системе работает nftables — или правила вставляются после разрешающего правила.

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

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

  1. Действие не соответствует брандмауэру системы

    На системах с nftables действие для iptables может создавать правила в таблице, которую никто не смотрит.

  2. Правило вставлено после разрешающего

    Порядок правил решает всё: если выше стоит разрешающее правило, блокировка не сработает.

  3. Блокировка проверяется неверно

    Проверять надо не список fail2ban, а фактические правила и доступность порта для адреса.

Диагностика

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

Список правил и заблокированных адресов.

sudo fail2ban-client status sshd

Фактические правила брандмауэра.

sudo nft list ruleset 2>/dev/null | grep -i f2b | head -20

Записи о блокировках и действиях.

journalctl -u fail2ban -n 30 --no-pager | grep -iE "ban|action"

Решение

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

1. Действие не соответствует брандмауэру системы
Почему происходит
На системах с nftables действие для iptables может создавать правила в таблице, которую никто не смотрит.
Как проверить
Посмотрите действие и фактические правила.
sudo fail2ban-client get sshd action 2>/dev/null | head
sudo nft list ruleset 2>/dev/null | grep -i f2b | head
Как исправить
Выберите действие под ваш брандмауэр. В современных дистрибутивах это действие для nftables.
2. Правило вставлено после разрешающего
Почему происходит
Порядок правил решает всё: если выше стоит разрешающее правило, блокировка не сработает.
Как проверить
Посмотрите порядок правил в цепочке.
sudo nft list chain inet filter input 2>/dev/null | head -20
Как исправить
Правила блокировки должны стоять выше разрешающих. Действия fail2ban обычно вставляют их в начало — проверьте, не мешает ли ваша схема.
3. Блокировка проверяется неверно
Почему происходит
Проверять надо не список fail2ban, а фактические правила и доступность порта для адреса.
Как проверить
Посмотрите список заблокированных и правила.
sudo fail2ban-client status sshd 2>/dev/null | tail -3
sudo nft list ruleset 2>/dev/null | grep -A5 f2b | head
Как исправить
Сверяйте два источника: список fail2ban и правила брандмауэра. Расхождение и есть ответ.

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

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

$ sudo fail2ban-client status sshd | tail -3
   |- Total banned:     14
   `- Banned IP list:   <адрес> <адрес>

$ sudo nft list ruleset | grep -c f2b
0

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

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

Источники

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