はじめに
fail2banでお呼びでない方にお引取り願っているのですが、どうも様子がおかしい。いつぞやのUnban連発によく似た流れのログが出ていたので確認してみると、なんとFailed to execute ban jailの文字が!
状況の確認と障害対応に入ります。
エラーの内容
Failed to execute ban jail周辺のログを確認します。
ふむふむ。iptables-restoreでCOMMAND_FAILED。ipsetでSyntax error: '86400000' is out of range 0-2147483。
なにかの値が上限を超えてしまっていたことが原因です。
ipset create ** hash:ip timeout 86400000
上限を超えていたのはipsetのtimeoutでした。
ipsetとは?
ipsetはIPやポートをひとまとめにして管理するツールらしいです。firewalldやiptablesで1つずつルールを作っていくのではなく、ある程度IPやポートをまとめて1つのルールで縛ってしまうもののようですね。なるほどfail2banにとっては使い勝手の良いツールですね。
そのipsetでエラーが発生していたようです。
障害対応
ログにズバリ解決方法が書いてありますね。
timeoutの時間の上限は2,147,483秒です。これを超える値を設定すると、ipsetのコマンド自体が失敗しiptablesへのルール設定も行われないようです。
timeout時間をfail2banのjail.localで調整します。ひとまずこれで様子を見ます。
ちなみに、ipset公式サイトのmanページにしっかりと書いてありました。
The largest possible timeout value is 2147483 (in seconds).
http://ipset.netfilter.org/ipset.man.html


