fail2banのレポートをパブリックに週次で出力して確認出来るようにしました

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

Fail2ban Reports

image

こんな感じに出力されます。

fail2ban-report

GitHub - haturatu/f2b-report: f2b-report reads fail2ban-client status <jail> output from stdin and writes a simple HTML report to stdout. · GitHub

上記で公開してます。
需要と言えばかなりニッチです。

自動化

標準入力から受け取った fail2ban-client status <jail> の出力結果をシンプルなhtnlにしてます。
また、この出力自体は全て自動で行っており私の場合はキャッシュサーバとしてのサーバー機二台が存在しているため出力を同期する必要があります。

なぜならば片方のNginxサーバでのみHTMLファイルが存在するという現象になり得るからです。

仕組みとしてはこうです。

同期用のシェルスクリプトと静的ファイル、htmlを含むgitレポジトリを作っておく

git pullしてレポジトリ同期

fail2ban-client status からルール名を取得

存在するルールから fail2ban-client statsu <jail> からパイプで f2b-report に渡してhtmlファイル生成

カレントディレクトリに存在する *.html ファイルから index.html を生成

/usr/local/www/配下の f2b-report 用ディレクトリにコピー

git commit && git push する

これを cron にそれぞれ仕込んで終わりです。
また、このシェルスクリプトの第一引数に渡した名前を prefix として html ファイルを生成します。

環境変数としては f2b-report の実行ファイル先パス、コピー先パスを一緒に渡して実行してます。

Related Posts