如何优化 Fail2Ban 规则:防止误封合法用户 IP 实战

秋墨酱_6633

秋墨酱_6633

2026-06-21

534人浏览

原创

防止误封合法用户的关键在于提升fail2ban识别精度:收紧正则匹配、分级白名单管理、排除良性日志、分场景设置findtime/maxretry/bantime阈值。

如何优化 fail2ban 规则:防止误封合法用户 ip 实战

防止误封合法用户,关键不在“加更多规则”,而在于让 Fail2Ban 更精准地识别谁是真攻击者。核心思路是:收紧匹配逻辑、排除干扰日志、分层设置阈值、留出人工干预通道。

锚点强制行首行尾匹配

很多误封源于正则表达式太宽泛,比如只写 Failed password,结果把日志里带这几个字的正常调试信息也抓进去了。必须用 ^ 和 $ 锁定整行结构。

  • 错误示例:failregex = Failed password for .* from <host></host>(可能匹配到中间字段)
  • 正确写法:failregex = ^Failed password for \S+ from <host> port \d+ ssh2?$</host>
  • 额外加固:加上 %(__on_port_opt)s 或 %(__suff)s 这类官方预定义后缀变量,兼容不同系统日志格式

白名单分级管理,不只靠 ignoreip

ignoreip 只能防静态IP,对办公网络出口、云服务商跳板机这类动态出口无效。建议组合使用:

阿里云百炼
阿里云百炼

阿里云百炼是一款AI大模型工具,一站式大模型开发与应用构建平台。

下载
  • 基础层:在 [DEFAULT] 中设 ignoreip = 127.0.0.1/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
  • 动态层:启用 action_mw 动作,配合邮件通知,收到封禁告警后手动加临时白名单
  • 行为层:为内网或可信段单独建 jail,如 [sshd-trusted],设更高 maxretry(如 15 次)和更长 findtime(如 3600 秒)

过滤器中排除已知良性行为

某些失败登录其实是运维操作或监控探活,不是攻击。可在 filter 规则中显式排除:

  • 排除特定用户名:failregex = ^Failed password for (?!root|admin|backup).*? from <host></host>
  • 排除特定客户端标识:^(?!.*Dropbear).*(避开 Dropbear 的非标准日志)
  • 排除健康检查请求:如果 Nginx 日志中含 status=404 但 http_user_agent="HealthCheck",就在 nginx-404 filter 中加负向断言

用 findtime + bantime 分段控制敏感度

不分场景统一用“5分钟5次”容易误伤。应按服务风险分级:

  • SSH 登录:设 findtime = 600(10分钟),maxretry = 5,bantime = 3600(1小时)——兼顾响应与容错
  • Web 登录接口(如 /login):设 findtime = 180(3分钟),maxretry = 3,bantime = 86400(24小时)——更激进,因非人工操作
  • 后台管理路径(如 /wp-admin):启用 nginx-noscript jail,但加 ignorecommand = /usr/local/bin/fail2ban-ignore.sh <ip></ip> 接口,供人工快速放行

相关文章

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

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

下载

相关标签:

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

相关专题

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

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

2025.10.13

4365

12

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

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

2025.11.04

395

21

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

20

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

40

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

20

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

20

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

20

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

240

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

140

15

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习