VPS购买后:MySQL数据库基础安全配置清单
文章分类:技术文档 /
创建时间:2025-08-22
VPS购买后,MySQL数据库的基础安全配置是数据防护的第一道防线。很多用户拿到VPS后急于部署业务,却忽略了数据库的初始安全设置,给后续埋下隐患。本文整理7项核心操作,从密码管理到传输加密,帮你快速构建数据库安全屏障。
第一步:改强root密码,切断暴力破解源头
新购VPS安装MySQL后,默认root用户的密码要么为空,要么是弱口令(如"123456"),这是攻击者的首要目标。立即修改密码时,需满足"大写+小写+数字+特殊符号"四要素,长度至少12位。例如"Db@2024Secure!MySQL"这种组合,破解难度比纯数字密码高百万倍。
修改命令很简单:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';
执行后记得退出重连验证是否生效。
第二步:清理匿名用户,关闭默认漏洞
MySQL默认存在的匿名用户(User字段为空)是个隐藏炸弹——无需密码就能登录,可执行简单查询甚至删库操作。曾有小站点因未清理匿名用户,被扫描工具2小时内定位并删除了测试数据库。
删除匿名用户只需两条命令:
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
第二条命令是为了让权限变更立即生效,避免缓存问题。
第三步:限制root远程登录,缩小攻击面
允许root用户通过公网远程登录,相当于给服务器挂了把"超级钥匙"。正确做法是仅保留本地登录权限,业务操作通过专用账号完成。
执行以下命令删除非本地root账户:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
FLUSH PRIVILEGES;
之后尝试用root从远程连接,应该会提示权限拒绝。
第四步:创建专用用户,遵循最小权限原则
业务系统直接使用root账户是大忌。例如电商系统的订单查询功能,只需"SELECT"权限;后台管理可能需要"INSERT/UPDATE"权限。为每个功能创建专用用户,即使某个用户凭证泄露,损失也可控。
创建示例:
-- 创建仅能查询的用户
CREATE USER 'query_user'@'localhost' IDENTIFIED BY 'Qry#2024Pass';
GRANT SELECT ON your_db.* TO 'query_user'@'localhost';
-- 创建可读写的用户
CREATE USER 'manage_user'@'localhost' IDENTIFIED BY 'Mgr$2024Safe';
GRANT INSERT,UPDATE,DELETE ON your_db.* TO 'manage_user'@'localhost';
FLUSH PRIVILEGES;
注意将"your_db"替换为实际数据库名。
第五步:及时更新MySQL版本,修复已知漏洞
MySQL官方每月会发布安全补丁,修复缓冲区溢出、权限绕过等漏洞。以2023年10月的漏洞为例,未更新的5.7版本可能被利用获取敏感数据。
在Ubuntu系统中,通过包管理器更新:
sudo apt-get update && sudo apt-get upgrade mysql-server
更新后建议查看变更日志(/var/log/mysql/error.log)确认无异常。
第六步:防火墙锁定3306端口,只放信任IP
MySQL默认监听3306端口,若开放公网访问,会被扫描工具持续探测。建议仅允许业务服务器的固定IP连接,例如前端服务器IP为192.168.1.100:
sudo ufw allow from 192.168.1.100 to any port 3306
如果是云VPS,也可在控制台的安全组规则中做同样限制。
第七步:启用SSL加密,保护传输中的数据
明文传输的数据库流量可能被中间人截获,用户密码、订单信息等敏感数据会泄露。启用SSL/TLS加密后,数据在客户端和服务器间传输时会被加密。
操作分三步:
1. 生成证书(存放在/etc/mysql/ssl目录):
sudo mkdir -p /etc/mysql/ssl
sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/mysql/ssl/server-key.pem -out /etc/mysql/ssl/server-cert.pem -days 3650 -nodes
2. 修改MySQL配置(/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
ssl-ca=/etc/mysql/ssl/server-cert.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem
3. 重启服务生效:
sudo systemctl restart mysql
曾有用户购买VPS后未做任何安全配置,两周内遭遇暴力破解,客户手机号、地址等敏感数据被恶意下载。按上述清单完成密码强化、限制远程登录、启用SSL后,后续半年未再出现同类攻击。
VPS购买不是终点,而是数据防护的起点。这7项基础配置耗时不超过1小时,却能大幅降低数据库被攻击的概率。建议新购VPS后,先完成MySQL安全配置再部署业务,把数据安全的主动权握在自己手里。
上一篇: 香港服务器多模态:GPU加速与存储优化
下一篇: 海外VPS批量管理测试集群与文章生成指南