这类问题,AI回答已经非常靠谱了;记录一下,仅仅是加强一下记忆;
1. 确认Nginx日志格式
1.1 确保Nginx日志中包含客户端IP($remote_addr),检查Nginx配置(通常位于/etc/nginx/nginx.conf):
1 2 3 4 5 6 | |
1.2 重启Nginx使配置生效:
1
| |
2. 安装Fail2Ban
1 2 3 4 5 | |
3. 创建自定义Filter规则
比如要监控 所有 /hello url下的请求;
新建文件 /etc/fail2ban/filter.d/nginx-url-bruteforce.conf
1
| |
4. 配置Jail规则
编辑 /etc/fail2ban/jail.local,添加以下内容
1 2 3 4 5 6 7 8 9 10 11 12 | |
5. 测试Filter规则
使用 fail2ban-regex 测试正则匹配
1
| |
6. 重启Fail2Ban并监控
1 2 | |
7. 高级调整(可选)
-
日志路径:如果日志路径不同,修改 logpath。
-
封禁时间:调整 bantime(单位:秒,如 86400 封禁1天)。
-
精确匹配状态码:如需仅封禁500错误,修改 failregex: