最近、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
実行できないということです(デッドロック?)ipset
ip6tables
fail2ban
何度も再試行または終了する前に、より長いタイムアウトを許可するように設定を軽減する方法はありますか?
ベストアンサー1
fail2ban
共有したエラーログを見ると、ip6tables
ipset 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
どおりに実行されるように変更した後は、ログを監視することを忘れないでください。