Fail2ban включен и активен, но ни правила не добавлены в iptables на Ubuntu Server 24.04

Вопрос или проблема

кажется, я не могу заставить fail2ban работать.

У меня настроен ufw с таким статусом:

~$ sudo ufw status

Статус: активен

Куда                       Действие    Откуда
--                         ------       ----
25/tcp                     ПОЗВОЛИТЬ   Везде
2278/tcp                   ПОЗВОЛИТЬ   Везде
80,143,443,465,587,993/tcp ПОЗВОЛИТЬ   Везде
110,995/tcp                ПОЗВОЛИТЬ   Везде
80/tcp                     ПОЗВОЛИТЬ   Везде
22/tcp                     ЗАПРЕТИТЬ   Везде
25/tcp (v6)                ПОЗВОЛИТЬ   Везде (v6)
2278/tcp (v6)              ПОЗВОЛИТЬ   Везде (v6)
80,143,443,465,587,993/tcp (v6) ПОЗВОЛИТЬ Везде (v6)
110,995/tcp (v6)           ПОЗВОЛИТЬ   Везде (v6)
80/tcp (v6)                ПОЗВОЛИТЬ   Везде (v6)
22/tcp (v6)                ЗАПРЕТИТЬ   Везде (v6)

Я не вносил изменения в файл jail.conf и просто создал файл jail.local.

/etc/fail2ban/jail.local

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1/128

[sshd]
#mode   = normal
enabled = true
bantime = 1h
port    = 2278
filter = sshd
logpath = /var/log/auth.log
maxretry = 5



[postfix]
enabled = true
bantime = 1h
mode    = more
port    = smtp,465,submission
filter = postfix
logpath = /var/log/mail.log

[postfix-sasl]
enabled = true
bantime = 1h
maxretry = 5
filter   = postfix[mode=auth]
port     = smtp,465,submission,imap,imaps,pop3,pop3s
logpath  = /var/log/mail.log
~$ sudo fail2ban-client status
Статус
|- Количество тюрем:      3
`- Список тюрем:   postfix, postfix-sasl, sshd
~$ sudo fail2ban-client status postfix
Статус для тюрьмы: postfix
|- Фильтр
|  |- Текущие ошибки: 0
|  |- Всего ошибок:     0
|  `- Записи журнала:  _SYSTEMD_UNIT=postfix.service
`- Действия
   |- В настоящее время заблокировано: 0
   |- Всего заблокировано:     0
   `- Список заблокированных IP:

Я вручную заблокировал IP:

~$ sudo fail2ban-client -vvv set postfix banip 1.2.3.4
 +   32 743F3BD1E080 fail2ban.configreader     INFO  Загружаю конфигурации для fail2ban из /etc/fail2ban
 +   32 743F3BD1E080 fail2ban.configreader     DEBUG Чтение конфигураций для fail2ban из /etc/fail2ban
 +   33 743F3BD1E080 fail2ban.configreader     DEBUG Чтение конфигурационных файлов: /etc/fail2ban/fail2ban.conf
 +   33 743F3BD1E080 fail2ban.configparserinc  INFO    Загружаю файлы: ['/etc/fail2ban/fail2ban.conf']
 +   33 743F3BD1E080 fail2ban.configparserinc  TRACE     Чтение файла: /etc/fail2ban/fail2ban.conf
 +   33 743F3BD1E080 fail2ban.configparserinc  INFO    Загружаю файлы: ['/etc/fail2ban/fail2ban.conf']
 +   33 743F3BD1E080 fail2ban.configparserinc  TRACE     Общий файл: /etc/fail2ban/fail2ban.conf
 +   34 743F3BD1E080 fail2ban                  INFO  Используя сокет /var/run/fail2ban/fail2ban.sock
 +   34 743F3BD1E080 fail2ban                  INFO  Используя pid файл /var/run/fail2ban/fail2ban.pid, [INFO] ведение журнала в /var/log/fail2ban.log
 +   34 743F3BD1E080 fail2ban                  HEAVY CMD: ['set', 'postfix', 'banip', '1.2.3.4']
 +   73 743F3BD1E080 fail2ban                  HEAVY OK : 1
 +   73 743F3BD1E080 fail2ban.beautifier       HEAVY Улучшаю 1 с помощью ['set', 'postfix', 'banip', '1.2.3.4']
1
 +   73 743F3BD1E080 fail2ban                  DEBUG Выход с кодом 0

Команда iptables -nL не показывает, что этот IP был заблокирован fail2ban:

~$ sudo iptables -nL
Цепочка INPUT (политика DROP)
target     prot opt source               destination
ufw-before-logging-input  0    --  0.0.0.0/0            0.0.0.0/0
ufw-before-input  0    --  0.0.0.0/0            0.0.0.0/0
ufw-after-input  0    --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-input  0    --  0.0.0.0/0            0.0.0.0/0
ufw-reject-input  0    --  0.0.0.0/0            0.0.0.0/0
ufw-track-input  0    --  0.0.0.0/0            0.0.0.0/0

Цепочка FORWARD (политика DROP)
target     prot opt source               destination
ufw-before-logging-forward  0    --  0.0.0.0/0            0.0.0.0/0
ufw-before-forward  0    --  0.0.0.0/0            0.0.0.0/0
ufw-after-forward  0    --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-forward  0    --  0.0.0.0/0            0.0.0.0/0
ufw-reject-forward  0    --  0.0.0.0/0            0.0.0.0/0
ufw-track-forward  0    --  0.0.0.0/0            0.0.0.0/0

Цепочка OUTPUT (политика ACCEPT)
target     prot opt source               destination
ufw-before-logging-output  0    --  0.0.0.0/0            0.0.0.0/0
ufw-before-output  0    --  0.0.0.0/0            0.0.0.0/0
ufw-after-output  0    --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-output  0    --  0.0.0.0/0            0.0.0.0/0
ufw-reject-output  0    --  0.0.0.0/0            0.0.0.0/0
ufw-track-output  0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-after-forward (1 ссылка)
target     prot opt source               destination

Цепочка ufw-after-input (1 ссылка)
target     prot opt source               destination
ufw-skip-to-policy-input  17   --  0.0.0.0/0            0.0.0.0/0            udp dpt:137
ufw-skip-to-policy-input  17   --  0.0.0.0/0            0.0.0.0/0            udp dpt:138
ufw-skip-to-policy-input  6    --  0.0.0.0/0            0.0.0.0/0            tcp dpt:139
ufw-skip-to-policy-input  6    --  0.0.0.0/0            0.0.0.0/0            tcp dpt:445
ufw-skip-to-policy-input  17   --  0.0.0.0/0            0.0.0.0/0            udp dpt:67
ufw-skip-to-policy-input  17   --  0.0.0.0/0            0.0.0.0/0            udp dpt:68
ufw-skip-to-policy-input  0    --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST

Цепочка ufw-after-logging-forward (1 ссылка)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Цепочка ufw-after-logging-input (1 ссылка)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Цепочка ufw-after-logging-output (1 ссылка)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Цепочка ufw-after-output (1 ссылка)
target     prot opt source               destination

Цепочка ufw-before-forward (1 ссылка)
target     prot opt source               destination
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 3
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 11
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 12
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ufw-user-forward  0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-before-input (1 ссылка)
target     prot opt source               destination
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ufw-logging-deny  0    --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
DROP       0    --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 3
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 11
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 12
ACCEPT     1    --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     17   --  0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
ufw-not-local  0    --  0.0.0.0/0            0.0.0.0/0
ACCEPT     17   --  0.0.0.0/0            224.0.0.251          udp dpt:5353
ACCEPT     17   --  0.0.0.0/0            239.255.255.250      udp dpt:1900
ufw-user-input  0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-before-logging-forward (1 ссылка)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            ctstate NEW limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW AUDIT] "

Цепочка ufw-before-logging-input (1 ссылка)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            ctstate NEW limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW AUDIT] "

Цепочка ufw-before-logging-output (1 ссылка)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            ctstate NEW limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW AUDIT] "

Цепочка ufw-before-output (1 ссылка)
target     prot opt source               destination
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ufw-user-output  0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-logging-allow (0 ссылок)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Цепочка ufw-logging-deny (2 ссылки)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW AUDIT INVALID] "
LOG        0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Цепочка ufw-not-local (1 ссылка)
target     prot opt source               destination
RETURN     0    --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
RETURN     0    --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
RETURN     0    --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
ufw-logging-deny  0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10
DROP       0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-reject-forward (1 ссылка)
target     prot opt source               destination

Цепочка ufw-reject-input (1 ссылка)
target     prot opt source               destination

Цепочка ufw-reject-output (1 ссылка)
target     prot opt source               destination

Цепочка ufw-skip-to-policy-forward (0 ссылок)
target     prot opt source               destination
DROP       0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-skip-to-policy-input (7 ссылок)
target     prot opt source               destination
DROP       0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-skip-to-policy-output (0 ссылок)
target     prot opt source               destination
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-track-forward (1 ссылка)
target     prot opt source               destination

Цепочка ufw-track-input (1 ссылка)
target     prot opt source               destination

Цепочка ufw-track-output (1 ссылка)
target     prot opt source               destination
ACCEPT     6    --  0.0.0.0/0            0.0.0.0/0            ctstate NEW
ACCEPT     17   --  0.0.0.0/0            0.0.0.0/0            ctstate NEW

Цепочка ufw-user-forward (1 ссылка)
target     prot opt source               destination

Цепочка ufw-user-input (1 ссылка)
target     prot opt source               destination
ACCEPT     6    --  0.0.0.0/0            0.0.0.0/0            tcp dpt:25
ACCEPT     6    --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2278
ACCEPT     6    --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,143,443,465,587,993
ACCEPT     6    --  0.0.0.0/0            0.0.0.0/0            multiport dports 110,995
ACCEPT     6    --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
DROP       6    --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

Цепочка ufw-user-limit (0 ссылок)
target     prot opt source               destination
LOG        0    --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
REJECT     0    --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Цепочка ufw-user-limit-accept (0 ссылок)
target     prot opt source               destination
ACCEPT     0    --  0.0.0.0/0            0.0.0.0/0

Цепочка ufw-user-logging-forward (0 ссылок)
target     prot opt source               destination

Цепочка ufw-user-logging-input (0 ссылок)
target     prot opt source               destination

Цепочка ufw-user-logging-output (0 ссылок)
target     prot opt source               destination

Цепочка ufw-user-output (1 ссылка)
target     prot opt source               destination

Сервис Fail2ban работает.

~$ sudo systemctl status fail2ban.service
● fail2ban.service - Служба Fail2Ban
     Loaded: загружен (/usr/lib/systemd/system/fail2ban.service; включен; предустановка: включен)
     Active: активен (работает) с Вт 2024-11-12 21:09:28 CET; 1ч 6мин назад
       Docs: man:fail2ban(1)
   Main PID: 1001 (fail2ban-server)
      Tasks: 9 (лимит: 4556)
     Memory: 49.7M (макс: 53.2M)
        CPU: 10.557s
     CGroup: /system.slice/fail2ban.service
             └─1001 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Nov 12 21:09:28 crosis systemd[1]: Запущена служба fail2ban.service - Служба Fail2Ban.
Nov 12 21:09:29 crosis fail2ban-server[1001]: 2024-11-12 21:09:29,352 fail2ban.configreader   [1001]: ПРЕДУПРЕЖДЕНИЕ 'allowipv6' не определено в 'Definition'. Используется значение по умолчанию: 'auto'
Nov 12 21:09:30 crosis fail2ban-server[1001]: Сервер готов

Не хватает ли мне чего-то? Делаю ли я что-то не так?

Ответ или решение

Проблема, с которой вы столкнулись, заключается в том, что Fail2ban активен, настроены необходимые правила, но они не отображаются в iptables. Давайте разберем несколько важных аспектов, которые могут помочь вам устранить эту проблему.

Проверка настройки UFW (Uncomplicated Firewall)

  1. Конфликт настроек: UFW обрабатывает правила фаервола, и если он включен, то, как правило, конфигурация iptables будет управляться через него. Fail2ban может не вносить изменения, если UFW настроен на блокировку определенных действий. Вам необходимо убедиться, что UFW не блокирует добавленные правила Fail2ban.

    Проверьте, активированы ли правила для Fail2ban. Существует команда, которая позволяет это сделать:

    sudo ufw status verbose

    Если UFW блокирует необходимые порты или IP-адреса, попробуйте временно отключить правила UFW для тестирования:

    sudo ufw disable

    После проверки включите UFW снова и проанализируйте его конфигурацию.

  2. Правила входящих и исходящих соединений: Ваша конфигурация UFW показывает, что порт 22 заблокирован. Убедитесь, что данный порт открыт для вашего SSH, иначе Fail2ban просто не сможет работать должным образом.

Проверьте настройки Fail2ban

  1. Точность конфигурации: Убедитесь, что ваш файл конфигурации /etc/fail2ban/jail.local корректно настроен. В этом случае:

    • Раздел [sshd] указывает на порт 2278, который используется для SSH. Если у вас используется стандартный порт 22, вам нужно изменить его на 22 или настроить SSH на использование порта 2278.
    • Убедитесь, что фильтры и журналы (лог-файлы), указанные в конфигурации, существуют и корректны.
  2. Логи Fail2ban: Проверьте журналы Fail2ban:

    cat /var/log/fail2ban.log

    Логи могут предоставить информацию о проблемах, которые возникают во время работы Fail2ban.

  3. Статусы и действия: Убедитесь, что в jails действуют соответствующие действия. Для jails с включёнными фильтрами, проверьте их статус:

    sudo fail2ban-client status sshd

    Это позволит узнать, какие IP-адреса уже были заблокированы.

Проверка iptables

Если все настройки корректны, проверьте, правильно ли Fail2ban интегрирован с iptables. Вам нужно убедиться, что Fail2ban использует iptables как метод блокировки IP, и что нет настроек в системе, которые этому препятствуют.

  1. Список правил: Выполните команду для проверки правил iptables:

    sudo iptables -L -n -v

    Это покажет, какие правила применены и какие пакеты обрабатываются.

  2. Перезапуск Fail2ban: Если изменения были внесены в конфигурацию или настройки, перезапустите службу Fail2ban:

    sudo systemctl restart fail2ban

    После этого снова проверьте статус и правила.

Заключение

Проанализировав предложенные аспекты, вы сможете более точно идентифицировать и устранить основные причины, по которым Fail2ban не вносит изменения в iptables. Если после выполнения всех рекомендаций проблема остается, возможно, потребуется дополнительное исследование логов или оценка конфликта с другими системами безопасности. Всегда рекомендуется вести резервное копирование конфигураций перед внесением изменений.

Оцените материал
Добавить комментарий

Капча загружается...