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

Журналы fail2ban заполнены сообщением «Не удалось выполнить действие Ban jail 'recidive' action 'iptables-multiport'»

У меня в журнале fail2ban.log масса подобных ошибок

fail2ban.actions        [13370]: ERROR   Failed to execute ban jail 'recidive' action 'iptables-multiport' info 'CallingMap({'ip': '164.132.49.140', 'matches': '2019-04-01 08:30:14,100 fail2ban.actions        [1415]: NOTICE  [sshd] Ban 164.132.49.140\n2019-04-01 23:08:43,345 fail2ban.actions        [26861]: NOTICE  [sshd] Ban 164.132.49.140\n2019-04-01 08:30:14,100 fail2ban.actions        [1415]: NOTICE  [sshd] Ban 164.132.49.140\n2019-04-01 23:08:43,345 fail2ban.actions        [26861]: NOTICE  [sshd] Ban 164.132.49.140', 'ipmatches': <function Actions.__checkBan.<locals>.<lambda> at 0x7fa4a8366598>, 'time': 1554154478.985568, 'ipjailfailures': <function Actions.__checkBan.<locals>.<lambda> at 0x7fa4a8366510>, 'ipfailures': <function Actions.__checkBan.<locals>.<lambda> at 0x7fa4a8366488>, 'failures': 4, 'ipjailmatches': <function Actions.__checkBan.<locals>.<lambda> at 0x7fa4a8366400>})': Error starting action

Я вижу, что это однострочная ошибка, но мне кажется, что есть ошибка с сопоставлением шаблонов или что-то еще в журнале вызвало цикл, потому что шаблон теперь соответствует даже строкам с ошибками.

РЕДАКТИРОВАТЬ Я нашел эти строки в журнале, вероятно, связанные с ошибкой

2019-04-01 23:44:35,895 fail2ban.action         [19570]: ERROR   iptables -w -n -L INPUT | grep -q 'f2b-recidive[ \t]' -- stdout: b''
2019-04-01 23:44:35,896 fail2ban.action         [19570]: ERROR   iptables -w -n -L INPUT | grep -q 'f2b-recidive[ \t]' -- stderr: b''
2019-04-01 23:44:35,897 fail2ban.action         [19570]: ERROR   iptables -w -n -L INPUT | grep -q 'f2b-recidive[ \t]' -- returned 1
2019-04-01 23:44:35,898 fail2ban.CommandAction  [19570]: ERROR   Invariant check failed. Trying to restore a sane environment
2019-04-01 23:44:36,114 fail2ban.action         [19570]: ERROR   iptables -w -N f2b-recidive
iptables -w -A f2b-recidive -j RETURN
iptables -w -I INPUT -p all -m multiport --dports 0:65535 -j f2b-recidive -- stdout: b''

Это мое рецидивное определение в jail.local

[recidive]

enabled  = true
logpath  = /var/log/fail2ban.log
filter   = recidive
findtime = 86400
maxretry = 2
bantime  = 648000
protocol = all

В моем filter.d / recidive.conf есть эта строка

failregex = ^(%(__prefix_line)s| %(_daemon)s%(__pid_re)s?:\s+)NOTICE\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+<HOST>\s*$

И это все для меня.

Я использую ubuntu 16.04, если это полезно.

Вопрос: как отладить ошибку конфигурации и даже как восстановить рабочую конфигурацию по умолчанию. У меня есть только еще один настраиваемый фильтр (pihole), и я знаю, как его восстановить, но я понятия не имею, есть ли что-то вроде сброса конфигурации fail2ban

Это собственно мое решение. Только следующие часы скажут мне, действительно ли это решение или нет.

Я остановил fail2ban

systemctl остановить fail2ban

Затем очистил журнал

echo > /var/log/fail2ban.log

Затем добавил action к моей конфигурации рецидива

action   = iptables-allports[name=recidive, protocol=all]

Затем перезапустите службу faiilban.

systemctl start fail2ban