我实现了每周公开输出 fail2ban 报告以便查看

2 min

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

Fail2ban 报告

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 脚本、静态文件和 HTML 的 Git 仓库

git pull 同步仓库

fail2ban-client status 获取规则名称

通过管道将现有规则的 fail2ban-client status <jail> 输出传递给 f2b-report 以生成 HTML 文件

根据当前目录中存在的 *.html 文件生成 index.html

复制到 /usr/local/www/ 下的 f2b-report 专用目录

执行 git commit && git push

最后将这些步骤分别设置到 cron 中即可。
此外,该 Shell 脚本会将传入的第一个参数作为 prefix 来生成 html 文件。

作为环境变量,我会同时传递 f2b-report 的可执行文件路径和复制目标路径来执行。

Related Posts