You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8如何配置记录失败登录尝试 适配fail2ban防暴力破解

MySQL 8 记录认证失败日志配置(适配fail2ban拦截暴力破解)

MySQL 8.0 版本默认日志规则不会将登录失败事件写入错误日志,和已废弃的log_warnings参数无关,核心原因是默认日志过滤规则、日志详细度参数未匹配到认证事件的记录要求,按以下步骤配置即可:

1. 修改mysqld主配置

根据你的发行版找到配置文件,Debian/Ubuntu默认路径为/etc/mysql/mysql.conf.d/mysqld.cnf,RHEL/CentOS/Rocky默认路径为/etc/my.cnf.d/mysqld.cnf,在[mysqld]段落添加/修改以下配置:

[mysqld]
# 错误日志路径,按你实际部署的路径调整,默认路径参考:
# Debian/Ubuntu: /var/log/mysql/error.log
# RHEL/CentOS: /var/log/mysqld.log
log_error = /var/log/mysql/error.log
# 日志详细度设为3:级别2仅记录错误、警告,认证失败属于Note级别事件,必须设为3才能捕获
log_error_verbosity = 3
# 加载默认日志过滤、写入组件,保持默认文本格式方便fail2ban匹配
log_error_services = 'log_filter_internal; log_sink_internal'
# 清空错误抑制列表,避免认证类事件被过滤
log_error_suppression_list = ''

2. 运行时验证配置(无需重启立即生效)

先通过MySQL客户端登录服务端,执行以下SQL让配置临时生效,确认日志正常输出后再重启服务把配置固化:

SET GLOBAL log_error_verbosity = 3;
SET GLOBAL log_error_suppression_list = '';
-- 确认日志组件加载正常,预期返回 log_filter_internal; log_sink_internal
SELECT @@GLOBAL.log_error_services;

配置生效后,故意输错密码发起一次连接请求,查看错误日志,若出现如下格式的条目说明配置成功:

2024-XX-XXTXX:XX:XX.XXXXXXZ 17 [Note] [MY-010926] [Server] Access denied for user 'xxx'@'x.x.x.x' (using password: YES)

3. 适配fail2ban拦截规则

确认日志正常输出后,配置fail2ban匹配日志特征:

  • 新建filter规则文件/etc/fail2ban/filter.d/mysqld8.conf:
[Definition]
failregex = ^.*\[Note\] \[MY-010926\].*Access denied for user '.*'@'<HOST>'.*$
ignoreregex =
  • 在/etc/fail2ban/jail.local中添加对应jail配置:
[mysqld8]
enabled  = true
port     = 3306
filter   = mysqld8
# 此处logpath和你my.cnf里配置的log_error路径保持一致
logpath  = /var/log/mysql/error.log
maxretry = 3
bantime  = 86400
findtime = 600
  • 重启fail2ban服务加载配置:
systemctl restart fail2ban
# 执行以下命令确认jail正常运行
fail2ban-client status mysqld8

常见踩坑说明

  • 不要在MySQL 8配置中写入log_warnings参数,该参数已在8.0版本被移除,写入会导致MySQL服务启动失败
  • 不要随意调整log_error_services的组件顺序,必须先执行过滤逻辑再写入日志,顺序错误会导致日志写入异常
  • 如果使用Docker/容器化部署MySQL,需要把错误日志路径挂载到宿主机,否则fail2ban无法读取日志内容
  • 如果修改日志组件为JSON格式输出,需要同步调整fail2ban的正则匹配规则,否则会识别不到失败登录事件

内容的提问来源于stack exchange,提问作者Peter Maurer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:06:23