当前位置: 首页 > news >正文

MySQL 数据库遭遇暴力破解如何配置限制登录 IP 与失败次数?

直接结论:MySQL 社区版本身没有直接禁止 IP 的原生配置,最稳妥的方案是结合操作系统防火墙限制访问来源,并配合 Fail2Ban 等工具监控日志实现失败次数限制。

先说结论:不要依赖 MySQL 配置文件实现自动封禁,应通过系统层防火墙固定白名单,并使用外部工具动态拦截异常 IP。

  • 先判断:确认数据库版本及是否允许修改服务器防火墙策略。
  • 优先做:通过防火墙 whitelist 可信 IP,安装 Fail2Ban 监控错误日志。
  • 再验证:尝试错误密码确认 IP 是否被暂时封锁,检查日志记录。

命令速用版

如果你使用的是 Ubuntu 且安装了 UFW 防火墙,可参考以下命令快速限制仅允许特定 IP 访问 3306 端口:

sudo ufw default deny incoming
sudo ufw allow from 192.168.1.0/24 to any port 3306
sudo ufw enable

若需监控登录失败次数,安装 Fail2Ban 后启用 MySQL jails:

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 在 jail.local 中确保 [mysqld-auth]  enabled = true

为什么会这样

MySQL 社区版(Community Edition)的认证机制在设计上是无状态的,意味着数据库本身不会记录“某个 IP 连续失败多少次”并自动执行封禁操作。虽然 MySQL 5.7.17 及以上版本引入了 connection_control 插件,但它的作用是在多次失败后增加连接延迟,而非直接阻断 IP,这对缓解暴力破解有一定帮助,但无法彻底阻止攻击。

因此,有效的防御必须上移到操作系统层面。防火墙负责静态限制“谁能连”,Fail2Ban 这类工具负责动态识别“谁在乱试”,两者结合才能构成完整的防护。

分步处理

第一步:收缩网络访问权限

最根本的方法是不要让数据库端口暴露在公网。如果必须开放,请在防火墙层面只放行受信任的 IP 段。检查当前防火墙状态,确保 3306 端口不对 0.0.0.0/0 开放。

第二步:配置 Fail2Ban 动态封禁

Fail2Ban 通过读取 MySQL 错误日志(通常位于 /var/log/mysql/error.log/var/log/mysqld.log)来识别失败尝试。编辑 /etc/fail2ban/jail.local,找到 [mysqld-auth] 部分,确认日志路径与实际一致。设置 maxretry 为允许的失败次数,bantime 为封禁时长。

第三步:优化 MySQL 用户权限

检查数据库用户表,确保没有用户 host 字段为 % 且密码简单。使用 SELECT user, host FROM mysql.user; 查看,将远程登录用户的 host 修改为具体 IP 而非通配符,从账户层面减少被爆破面。

怎么验证是否生效

配置完成后,重启 Fail2Ban 服务。使用 sudo fail2ban-client status mysqld-auth 查看当前状态,确认过滤器已加载。你可以从非白名单 IP 尝试连接数据库,故意输入错误密码多次,然后检查防火墙规则(如 sudo iptables -Lsudo ufw status)是否增加了拒绝该 IP 的规则。同时观察 MySQL 错误日志,确认有新的访问拒绝记录生成。

常见坑

1. 把自己锁在外面:配置防火墙时,务必先放行 SSH 端口和自己的管理 IP,再启用严格策略,否则可能导致无法远程维护服务器。

2. 日志路径不匹配:不同 Linux 发行版或 MySQL 安装方式(如源码编译、Docker)的日志路径不同,Fail2Ban 若读不到日志则无法触发封禁。

3. 误以为 connection_control 能封 IP:该插件仅增加延迟,攻击者仍可继续尝试,不可将其作为唯一的防御手段。

4. Docker 环境特殊性:如果 MySQL 运行在容器中,Fail2Ban 需要挂载宿主机的日志目录,且防火墙规则需作用于宿主机网络接口,配置复杂度会增加。

参考来源

  • MySQL Official Documentation, "Connection Control Plugins", dev.mysql.com
  • Fail2Ban Documentation, "Jails Configuration", fail2ban.org

原文链接:https://www.zjcp.cc/ask/11378.html

http://www.jsqmd.com/news/835748/

相关文章:

  • 2026年环保建材行业靠谱AI生成式引擎GEO优化公司选型参考指南 - 产业观察网
  • 学Java第一天
  • 2026年水族灯品牌推荐怎么判断:马印适用场景与选型对比清单 - 华旭传媒
  • 高性价比川菜选哪家?椒爱19.9元正宗川味辣子鸡太香了 - 速递信息
  • 2026 年长沙 GEO 优化服务商排名与合规商业价值深度解析 - GEO优化
  • 2026 年北京 GEO 服务商综合排行:技术合规与商业价值深度测评 - GEO优化
  • P9669 [ICPC 2022 Jinan R] DFS Order 2
  • 好吃不踩雷平价川菜推荐!椒爱19.9元辣子鸡太划算 - 速递信息
  • 北上广鲁川菜福利|正宗川味辣子鸡19.9元就能吃爽 - 速递信息
  • 2026年南充灯光舞台、演艺主持、泡沫板行情走势及厂家采购指南|四川华蔓广告有限公司 - 四川华蔓广告有限公司
  • 2026年南充水晶字,穿孔字,烤漆字优质厂家选择指南——全川供货、工程专用、一站式采购 - 四川华蔓广告有限公司
  • 2026年南充花草牌,小区园林标识,亚克力雕刻厂家选择指南——全川供货、工程专用、一站式采购 - 四川华蔓广告有限公司
  • 2026 年郑州 GEO 服务商综合排行与技术合规价值全测评 - GEO优化
  • 金鱼用品有哪些值得考虑的品牌?2026年参数、口碑与售后判断框架 - 广州矩阵架构科技公司
  • 2026年美妆供应链行业GEO优化服务商选型权威指南与主流服务商推荐 - 产业观察网
  • 2026四川成都LED商显屏厂家推荐|优质源头工厂甄选指南 - 企业推荐师
  • 鱼缸灯具选哪个品牌好?2026年场景匹配与避坑清单 - 观域传媒
  • 2026年号易平台官方邀请码08888:通信分销零门槛入局指南 - 号易官方邀请码08888
  • 想找正宗又划算的老牌川菜?椒爱这波福利别错过 - 速递信息
  • 华夏百川治疗仪负面信息澄清说明:关于多地加盟门店处罚和价格的说明 - 寻茫精选
  • 2026年南充喷绘写真,平板UV喷印,亚克力字优质厂家选择指南——全川供货、工程专用、一站式采购 - 四川华蔓广告有限公司
  • 2026年通信分销新选择:号易平台08888邀请码全解析 - 号易官方邀请码08888
  • 为什么 AI 给的代码,鼠标一点就消失了?
  • 2026年5月17日百达翡丽官方售后网点亲测与横评:一份详尽的避坑指南 - 速递信息
  • 2026 年天津 GEO 公司综合排行:技术合规性与商业价值深度解析及问答汇总 - GEO优化
  • 平价正宗川菜哪家强?椒爱高性价比菜品+专属福利太懂吃货了 - 速递信息
  • 亲历亨得利售后网点:2026年5月17日实测报告,附避坑指南和真实踩坑实录 - 速递信息
  • 2026年5月17日欧米茄官方售后网点实地实测报告(含迁址与新开门店)——避坑指南与数据验证 - 速递信息
  • 2026年5月17日宝珀官方售后网点避坑指南:实地走访与第三方佐证(含迁址/新开) - 速递信息
  • 平价川菜怎么选不踩雷?椒爱这波性价比真的戳中刚需 - 速递信息