У меня в журнале 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