Назад | Перейти на главную страницу

Действие Fail2ban ufw не запускается при мониторинге, но работает при ручном бане

Я использую fail2ban 0.9.3 в Ubuntu 16.04. Мой jail.local выглядит так:

[DEFAULT]

banaction = ufw

[apache-post]
enabled = true
filter = apache-post
port = http,https
logpath  = /var/log/apache2/other_vhosts_access.log
maxretry = 20
bantime = 3600

Я запускаю fail2ban 0.9.3 на ubuntu 16.04.

У меня есть обычай ufw действие определяется следующим образом:

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip>
actionunban = ufw delete deny from <ip>

(Он отличается от того, который поставляется с fail2ban, поскольку просто блокирует IP на всех портах).

Действие работает - если я сделаю fail2ban-client set apache-post banip 10.0.0.1 а затем проверьте ufw status, IP забанен:

To                         Action      From
--                         ------      ----
Anywhere                   DENY        10.0.0.1

Но когда сервер перезапускается и работает, возникает проблема. fail2ban правильно отслеживает журналы и инициирует бан, но IP-адреса не забанены в ufw. Вот образец журнала:

2018-10-09 14:00:57,679 fail2ban.actions        [31576]: NOTICE  [apache-post] Ban 10.0.5.2
2018-10-09 14:01:02,897 fail2ban.actions        [31576]: NOTICE  [apache-post] 10.0.5.2 already banned
2018-10-09 14:01:07,903 fail2ban.actions        [31576]: NOTICE  [apache-post] 10.0.5.2 already banned
2018-10-09 14:01:12,908 fail2ban.actions        [31576]: NOTICE  [apache-post] 10.0.5.2 already banned
2018-10-09 14:01:17,914 fail2ban.actions        [31576]: NOTICE  [apache-post] 10.0.5.2 already banned

Если я проверю ufw status то IP не был забанен - ​​очевидно, что действие на самом деле не было выполнено, но fail2ban считает, что это так.

Если я перезапущу сервер fail2ban на этом этапе, он проверит последние журналы и успешно запретить IP - т.е. когда он выполняет действия при перезапуске, ufw действие выполнено правильно. Аналогично, если я вручную запустил banip команда, то IP правильно забанен. Но запреты на мониторинг логов не работают.

Я не понимаю, почему он работает вручную, но не в обычном режиме. Как мне отладить это?

UFW работает:

> sudo ufw status
Status: active

И проверка статуса тюрьмы показывает, что она активна и думает, что заблокировала IP-адреса:

Status for the jail: apache-post
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     643
|  `- File list:        /var/log/apache2/other_vhosts_access.log
`- Actions
   |- Currently banned: 9
   |- Total banned:     11
   `- Banned IP list:   10.0.5.2 (and more)

Вы подтвердили, что ufw действительно работает? Например. на моих установках Ubuntu, для этого требуется установка 'enabled = YES' в /etc/ufw/ufw.conf чтобы ufw запускался при загрузке. В Ubuntu 16.04 он по умолчанию отключен.

Я так понимаю, вы говорите, что заменили значение по умолчанию /etc/fail2ban/action.d/ufw.conf? Зачем? Ваш рецепт работает с оригинальной версией?

Что значит fail2ban status <JAIL> покажись?