MySQL安全加固十大硬核操作技术文章大纲
1. 禁用或限制远程访问
- 配置
bind-address为本地IP或127.0.0.1 - 使用防火墙限制访问来源IP
- 避免使用默认端口
3306,改为非标准端口
2. 强化账户与密码策略
- 删除默认匿名账户和测试数据库
- 设置复杂密码策略(长度、特殊字符、定期更换)
- 限制用户权限(遵循最小权限原则)
3. 启用SSL/TLS加密传输
- 配置MySQL支持SSL证书
- 强制客户端使用SSL连接
- 验证加密状态:
SHOW STATUS LIKE 'Ssl_cipher'
4. 审计日志与监控
- 启用通用查询日志和慢查询日志
- 部署第三方审计工具(如Audit Plugin)
- 监控异常登录行为和SQL注入尝试
5. 数据备份与加密
- 定期全量+增量备份(使用
mysqldump或XtraBackup) - 备份文件加密存储(AES或OpenSSL)
- 测试备份恢复流程
6. 文件系统权限控制
- MySQL数据目录权限设置为
mysql:mysql 750 - 配置文件
my.cnf权限设置为root:mysql 640 - 禁止MySQL用户拥有shell登录权限
7. 禁用危险功能
- 关闭
LOAD DATA LOCAL INFILE(防止文件读取) - 禁用
--skip-grant-tables启动选项 - 限制
FILE权限(避免任意文件写入)
8. 参数调优与防护
- 设置
max_connections防止DDoS - 启用
sql_mode=STRICT_ALL_TABLES严格模式 - 配置
skip_name_resolve避免DNS反向查询
9. 补丁与版本管理
- 定期更新至最新稳定版本
- 订阅CVE漏洞公告(如MySQL Security Advisories)
- 禁用已弃用的功能(如
old_passwords)
10. 网络层防护
- 部署数据库防火墙(如ProxySQL)
- 使用SSH隧道或VPN访问生产环境
- 隔离数据库服务器(DMZ区不可达)
结语
- 强调安全加固需持续迭代
- 推荐自动化检查工具(如MySQL Secure Configuration Tool)
- 提供快速自查清单(Checklist)模板