У меня много подобные ошибки в моем 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 stop fail2ban
Затем очистил его журнал
echo > /var/log/fail2ban.log
Затем добавил действие
в свой конфигурация восстановления
action = iptables-allports[name=recidive, protocol=all]
Затем перезапустите службу faiilban
systemctl start fail2ban