如何在Linux利用Fail2ban防护针对管理后台的分布式暴力破解

秋雪姑娘_7016

秋雪姑娘_7016

2026-04-26

652人浏览

原创

Fail2ban默认不防护HTTP管理后台,因其仅监控系统日志(如/var/log/auth.log),而Web登录失败记录在Nginx/Apache错误或访问日志中;必须配置匹配的日志路径、自定义filter及正确正则规则,否则无法识别POST暴力请求。

如何在linux利用fail2ban防护针对管理后台的分布式暴力破解

Fail2ban 本身不直接支持 HTTP 管理后台(如 WordPress 登录页、phpMyAdmin、自建 admin.php)的防护,必须配合自定义 filter 和正确日志路径才能生效——否则它根本“看不见”那些 POST 请求失败。

为什么默认 fail2ban 不拦管理后台暴力破解

Fail2ban 默认只监控系统服务日志(/var/log/auth.log、/var/log/secure),而 Web 后台的登录失败通常记录在 Web 服务器日志里:/var/log/nginx/error.log、/var/log/apache2/error.log 或应用自定义日志(如 /var/www/myapp/logs/login.log)。没有匹配规则,fail2ban 就像没装摄像头。

常见错误现象:

  • fail2ban-client status nginx-http-auth 显示 0 banned IPs,但 grep "401" /var/log/nginx/access.log | tail -20 明显有大量异常 POST
  • 手动触发一次错误登录,sudo fail2ban-regex /var/log/nginx/error.log /etc/fail2ban/filter.d/nginx-http-auth.conf 返回 0 matches

配置 nginx + fail2ban 拦截 /admin/login 的暴力请求

以 Nginx + 自建 PHP 后台为例,假设登录失败时返回 HTTP 401 且日志中含 "POST /admin/login HTTP/1.1" 401,需三步打通链路:

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 确保 Nginx 记录足够信息:在 server 块中启用 log_format 并包含 $request 和 $status,例如:
    log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent';
  • 写一个专用 filter:/etc/fail2ban/filter.d/admin-login.conf,内容为:
    [Definition]
    failregex = ^<host> -.*"POST /admin/login HTTP/1\.1" 401
    ignoreregex =</host>
  • 在 /etc/fail2ban/jail.d/admin.local 中启用 jail:
    [admin-login]
    enabled = true
    filter = admin-login
    logpath = /var/log/nginx/access.log
    maxretry = 4
    findtime = 600
    bantime = 1h
    port = http,https

注意:logpath 必须指向实际写入登录失败记录的日志文件;若后台用 JSON 日志或写入 stderr,则需调整 failregex 或先用 awk 转成文本行。

避免误封和漏判的关键点

分布式暴力破解常来自不同 IP 轮询,单 IP 尝试次数可能压在阈值以下。光靠 maxretry 不够,得叠加行为识别:

  • 启用 backend = systemd(而非默认 auto)可捕获 journald 中的 PHP-FPM 错误,补全日志盲区
  • 对高危路径(如 /wp-login.php)建议用 recidive jail:被封过一次的 IP 再犯就永久拉黑,配置项为 bantime = -1
  • 务必把运维出口 IP 加进 ignoreip,否则改配置时自己把自己踢出;测试阶段先设 bantime = 60,确认无误再调长
  • Web 层已有 WAF(如 Cloudflare)时,fail2ban 看到的 $remote_addr 是 WAF 回源 IP,此时必须用 X-Forwarded-For —— 需在 Nginx 中加 set_real_ip_from 并改 failregex 匹配该 header

真正难的不是写正则,而是确认日志里确实留了能区分“真实用户输错”和“脚本扫密码”的痕迹;如果后台静默失败(不返回 401,也不记日志),fail2ban 就无从下手——这时得先改应用代码,至少打点日志。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

5205

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

455

21

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

2026.11.03

0

18

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

2026.11.03

0

11

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

2026.11.03

0

11

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

2026.11.03

0

17

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

2026.11.03

0

19

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

2026.11.03

0

12

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

2026.11.03

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习