VPS服务器部署MySQL服务时,首要任务是建立安全基线。修改默认3306端口可有效规避自动化扫描攻击,建议使用1024以上非标准端口。通过bind-address
参数限制数据库仅监听内网IP,配合防火墙规则仅开放必要访问源。安装最新版本MySQL时,务必移除测试数据库和匿名账户,这些默认配置往往成为攻击者的突破口。
二、账户权限的精细化管控
实施最小权限原则是MySQL安全加固的核心策略。为每个应用创建独立数据库账户,严格控制GRANT
权限分配。禁用root账户远程登录,建议通过sudo权限的普通用户进行管理操作。定期审计用户权限表(mysql.user),使用REVOKE
命令回收冗余权限。值得关注的是,密码复杂度策略应强制执行,推荐使用validate_password
组件确保密码包含大小写字母、数字和特殊字符。
三、SSL/TLS加密传输配置
在VPS环境中配置MySQL SSL加密连接能有效防止中间人攻击。通过OpenSSL生成CA证书和服务器/客户端证书,在my.cnf配置文件中设置ssl-ca
、ssl-cert
和ssl-key
参数。强制所有远程连接启用SSL(REQUIRE SSL
),并通过SHOW STATUS LIKE 'Ssl_cipher'
验证加密协议版本。建议禁用过时的TLS1.0协议,优先使用TLS1.2及以上版本保障传输安全。
四、审计日志与入侵检测机制
启用MySQL通用查询日志和慢查询日志,配合第三方审计工具实现操作追溯。企业版用户可使用官方审计插件,社区版建议部署MariaDB审计插件或Percona审计组件。设置合理的log_warnings
参数级别(建议2级),实时监控异常登录尝试。结合fail2ban工具配置自动封禁策略,当检测到连续5次失败登录时自动封锁IP地址30分钟。
五、数据库防火墙与备份策略
在VPS网络层部署iptables或firewalld防火墙,严格限制3306端口的访问范围。应用层防护建议使用ProxySQL实现SQL注入防御,通过白名单机制过滤危险语句。全量备份采用mysqldump
结合二进制日志的增量备份方案,加密后的备份文件应存储在不同区域的OSS中。测试环境中建议部署延迟复制从库,在遭遇勒索软件攻击时可快速回滚至安全时间点。