# Fail2ban установлен, но банит ли он кого-нибудь? Как проверить и почему на новых системах он может молчать

**URL:** <https://kryptos.forum/t/fail2ban-ustanovlen-no-banit-li-on-kogo-nibud-kak-proverit-i-pochemu-na-novyh-sistemah-on-mozhet-molchat/107>\
**Category:** Виртуальные машины и серверы\
**Tags:** сеть-и-доступ\
**Created:** [30.Сентябрь.2026 08:39:44 UTC](https://kryptos.forum/t/fail2ban-ustanovlen-no-banit-li-on-kogo-nibud-kak-proverit-i-pochemu-na-novyh-sistemah-on-mozhet-molchat/107 "2026-09-30T08:39:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![team\_net](https://kryptos.forum/letter_avatar_proxy/v4/letter/t/91b2a8/32.png) [@team\_net](https://kryptos.forum/u/team_net)\
**Post date:** [30.Сентябрь.2026 08:39:44 UTC](https://kryptos.forum/t/fail2ban-ustanovlen-no-banit-li-on-kogo-nibud-kak-proverit-i-pochemu-na-novyh-sistemah-on-mozhet-molchat/107/1 "2026-09-30T08:39:44Z")

</div>

**Вопрос из обсуждения.** «Поставил fail2ban для sshd. В его логе почти пусто, в правилах брандмауэра ничего похожего не вижу. Работает ли он вообще?»

**Как проверить за минуту.**

1. `fail2ban-client status`: список активных jail. Если `sshd` там нет, защита SSH не включена.
2. `fail2ban-client status sshd`: число проверенных строк лога, число неудачных попыток, число забаненных адресов и их список. На любом сервере с публичным адресом через сутки в бане будут десятки и сотни адресов; ноль значит, что fail2ban не видит журнал.
3. Правила брандмауэра: `iptables -L f2b-sshd -n` или, на системах с nftables, `nft list table inet f2b-table`. Пустой вывод при непустом списке банов означает, что действие бана не применяется.
4. Сам журнал: `journalctl -u ssh | grep -c "Failed password"` или `grep -c "Failed password" /var/log/auth.log`. Если неудачные попытки есть, а fail2ban их не считает, проблема в источнике данных.

**Почему fail2ban может «не видеть» попытки.**

- **Нет файла лога.** На Ubuntu 22.04+ и Debian 12 `rsyslog` может быть не установлен, и `/var/log/auth.log` не существует. В `/etc/fail2ban/jail.local` для `[sshd]` указать `backend = systemd`, тогда fail2ban читает журнал systemd напрямую.
- **Нестандартный порт SSH.** Фильтр попытки видит, но правило бана создаётся на порт `ssh` из `/etc/services`. Указать `port = 2222` в секции jail.
- **Свой адрес в `ignoreip`.** Полезно для админского адреса, но проверять бан с него бессмысленно.
- **Ключи вместо паролей.** Если парольный вход выключен, попыток «Failed password» почти нет: боты отваливаются раньше, в журнале `Connection closed by authenticating user` или `Invalid user`. Современный фильтр `sshd` с `mode = aggressive` ловит и их.

**Почему бан не применяется.**

- На системе с nftables и без iptables-legacy действие по умолчанию `iptables-multiport` ничего не делает. Указать `banaction = nftables-multiport` (и `banaction_allports = nftables-allports`) в `[DEFAULT]`.
- ufw как основной брандмауэр: `banaction = ufw`, иначе правила fail2ban и ufw живут в разных цепочках и порядок применения непредсказуем.

**Разумные параметры для sshd.** `maxretry = 5`, `findtime = 10m`, `bantime = 1h` с `bantime.increment = true`, чтобы повторные визитёры получали удвоение. Слишком агрессивные настройки в первую очередь бьют по вам самим после смены пароля.

Настройка описана в [документации fail2ban](https://fail2ban.readthedocs.io/en/latest/).
