Fail2ban ジョブ ipset の再試行またはタイムアウト

Fail2ban ジョブ ipset の再試行またはタイムアウト

最近、Ubuntu 20.04ボックスでfail2ban次のエラーが発生しました。

2023-07-13 06:57:05,129 fail2ban.actions        [3063]: NOTICE  [nginx-http-auth] Ban 2600:1005:b02d:3b6a:c1e:4a7e:6a9f:ccc4
2023-07-13 06:57:05,151 fail2ban.utils          [3063]: ERROR   7f106882c6c0 -- exec: ipset create f2b-nginx-http-auth-v6 hash:ip timeout 600 family inet6
ip6tables -w -I ban -m set --match-set f2b-nginx-http-auth-v6 src -j REJECT --reject-with icmp6-port-unreachable
2023-07-13 06:57:05,152 fail2ban.utils          [3063]: ERROR   7f106882c6c0 -- timed out after 0 seconds.
2023-07-13 06:57:05,353 fail2ban.utils          [3063]: ERROR   ipset create f2b-nginx-http-auth-v6 hash:ip timeout 600 family inet6
ip6tables -w -I ban -m set --match-set f2b-nginx-http-auth-v6 src -j REJECT --reject-with icmp6-port-unreachable -- failed with [Errno 3] No such process
2023-07-13 06:57:05,353 fail2ban.utils          [3063]: ERROR   7f106882c6c0 -- killed with SIGTERM (return code: -15)
2023-07-13 06:57:05,354 fail2ban.actions        [3063]: ERROR   Failed to execute ban jail 'nginx-http-auth' action 'iptables-ipset-proto6-allports' info 'ActionInfo({'ip': '2600:1005:b02d:3b6a:c1e:4a7e:6a9f:ccc4', 'family': 'inet6', 'fid': <function Actions.ActionInfo.<lambda> at 0x7f1068839750>, 'raw-ticket': <function Actions.ActionInfo.<lambda> at 0x7f1068839e10>})': Error starting action Jail('nginx-http-auth')/iptables-ipset-proto6-allports: 'Script error'

ジョブは次から始まります。/etc/fail2ban/action.d/iptables-ipset-proto6-allports.local

actionstart = ipset create <ipmset> hash:ip timeout <default-timeout> <familyopt>
              <iptables> -I <chain> -m set --match-set <ipmset> src -j <blocktype>

私の問題の理解は/fail2ban実行できないということです(デッドロック?)ipsetip6tables

fail2ban何度も再試行または終了する前に、より長いタイムアウトを許可するように設定を軽減する方法はありますか?

答え1

fail2ban共有したエラーログを見ると、ip6tablesipset createとコマンドの実行に問題があるようです。

この問題を解決するには、より長い再試行とタイムアウトを許可するようにFail2ban設定を調整してください。考えられる解決策は次のとおりです。

fail2ban編集する設定ファイルを開きます。

Ubuntu 20.04では、このファイルは一般的に/etc/fail2ban/fail2ban.conf

nginx-http-auth刑務所に関連するactionban行を見つけます。次のように見えます。

actionban = ipset create <ipmset> hash:ip timeout <default-timeout> <familyopt>
iptables -I <chain> -m set --match-set <ipmset> src -j <blocktype>

より長いタイムアウトまたは再試行間隔を含むようにアクション禁止行を変更します。

--retry <num>再試行回数を指定するオプションと、より長い--timeout <secs>タイムアウトを設定するオプションを追加できます。

たとえば、

actionban = ipset create <ipmset> hash:ip --timeout 1200 <familyopt>
iptables -I <chain> -m set --match-set <ipmset> src -j <blocktype> --retry 3

上記の例では、タイムアウトは1200秒(20分)に設定され、再試行回数は3に設定されています。

構成ファイルに対する変更を保存し、変更を適用するには、Fail2ban サービスを再起動します。次のコマンドを使用できます。

sudo service fail2ban restart

Fail2ban構成でタイムアウト値と再試行値を調整すると、必要なコマンドを実行するための時間が長くなり、デッドロックの発生時に追加の再試行が可能になります。これにより、直面した問題を解決できます。

fail2ban問題が解決され、期待fail2banどおりに実行されるように変更した後は、ログを監視することを忘れないでください。

答え2

timed out after 0 seconds.

一つある問題 #2790ipsetジョブの場合、これはtimeoutジョブパラメーターとの名前の混乱が原因で発生します。 Ubuntu 20.04には古いバージョンのfall2banがあるようです。更新しよう0.11からaction.d設定を開始フォーク以上のアップグレードに失敗しましたhttps://github.com/fail2ban/fail2ban/releases(最小バージョン0.11.2のUbuntuで動作するDebianベースのパッケージがあります。)Failed 2:: wiki :: Failed 2を手動でインストールまたはアップグレードする方法

関連情報