はじめに
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