將 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> 輸出結果轉換為簡單的 HTML。
此外,這個輸出過程本身是全自動的。就我的情況而言,因為有兩台作為快取伺服器的伺服器主機,所以需要同步輸出結果。

這是因為可能會出現 HTML 檔案僅存在於其中一台 Nginx 伺服器上的情況。

運作機制如下:

預先建立一個包含同步用 Shell Script、靜態檔案及 HTML 的 Git 儲存庫。

執行 git pull 同步儲存庫

fail2ban-client status 取得規則名稱

從現有的規則中,透過管線 (pipe) 將 fail2ban-client statsu <jail> 的結果傳遞給 f2b-report 並生成 HTML 檔案

從當前目錄中的 *.html 檔案生成 index.html

複製到 /usr/local/www/ 下的 f2b-report 專用目錄

執行 git commit && git push

將這些步驟分別設定在 cron 中就完成了。
此外,會將傳遞給此 Shell Script 的第一個參數作為 prefix 來生成 html 檔案。

環境變數的部分,則是將 f2b-report 的執行檔路徑與複製目標路徑一併傳遞並執行。

Related Posts