データベースのメンテナンス¶
Fail2banは検索対象のログなどの情報をsqliteにインポートしてチェックを行っている。
そのため運用中にログが肥大化したり、読み込むログファイルの設定変更を行った際に
古いログが参照されて不具合を起こしたり起動・終了に遅延が発生することがある。
これを解決するために、既存ポリシーを大きく変更した際や遅延が実感できる場合に
データベースのクリアを行うことを推奨する。
特に「recidive」ポリシーを設定している場合はfail2ban自身のログもDBに格納するため
ポリシー設定ミスなどでエラーログが大量に出力された場合にもDBのクリア及びログ
自体のクリアを行うことを推奨する。
手順¶
- 「# systemctl stop fail2ban」でサービスを終了する
- 「# tar czxf /var/log/fail2ban/fail2ban.log.tar.gz /var/log/fail2ban/fail2ban.log」で現在のログを退避する
- 「# cat /dev/null > /var/log/fail2ban/fail2ban.log」でログをクリアする
- 「# mv /var/lib/fail2ban/fail2ban.sqlite3 /var/lib/fail2ban/fail2ban.sqlite3.old」でDBを退避する
- ポリシーの修正があれば修正を行う ※必要な場合
- 「# systemctl restart iptables」でiptablesにfail2banが設定した一時的なポリシーををリフレッシュする
- 「# systemctl start fail2ban」でサービスを開始する
- ログファイルに「WARNING New database created. Version '2'」が記載され、DBが作成されたことを確認する