在阿里云ECS上搭建MySQL和Redis服务时,安全设置至关重要,以防止数据泄露、未授权访问和网络攻击。以下是关键的安全配置建议:
一、ECS基础安全设置
-
选择最小权限的系统镜像
- 使用官方推荐的Linux发行版(如 Alibaba Cloud Linux、CentOS、Ubuntu),并保持系统更新。
- 避免使用默认密码或弱口令。
-
关闭不必要的端口和服务
- 仅开放必要的端口(如SSH 22、MySQL 3306、Redis 6379等)。
- 使用
systemctl disable禁用不需要的服务。
-
定期更新系统和软件包
yum update # CentOS/Alibaba Cloud Linux apt-get update && apt-get upgrade # Ubuntu/Debian -
禁用 root 远程登录
- 编辑
/etc/ssh/sshd_config:PermitRootLogin no PasswordAuthentication no # 建议使用密钥登录 - 重启SSH服务:
systemctl restart sshd
- 编辑
-
使用密钥对登录ECS
- 在阿里云控制台创建并绑定SSH密钥对,避免密码登录。
二、网络安全设置(安全组)
-
配置安全组规则(最小化原则)
- MySQL(默认3306端口):
- 仅允许特定IP或VPC内网访问。
- 不建议对公网开放3306端口。
- 示例规则:
- 协议类型:TCP
- 端口范围:3306
- 授权对象:你的办公IP 或 内部应用服务器私有IP
- Redis(默认6379端口):
- 强烈建议不暴露到公网。
- 只允许应用服务器通过内网访问。
- 最好限制为VPC内网IP段(如
172.16.0.0/12)。
- MySQL(默认3306端口):
-
优先使用内网通信
- 将MySQL/Redis部署在VPC内,应用服务器也部署在同一VPC,通过内网IP连接,避免公网传输。
三、MySQL 安全配置
-
修改默认端口(可选)
- 修改
my.cnf中的port = 3306为非常见端口,降低被扫描风险。
- 修改
-
禁止远程root登录
SELECT host, user FROM mysql.user; -- 删除或限制 root 用户的远程访问 DROP USER 'root'@'%'; CREATE USER 'admin'@'192.168.%.%' IDENTIFIED BY 'StrongPassword!'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'192.168.%.%' WITH GRANT OPTION; FLUSH PRIVILEGES; -
绑定监听地址
- 修改
my.cnf:bind-address = 127.0.0.1 # 仅本地访问 # 或 bind-address = 172.16.x.x # 仅允许内网访问
- 修改
-
启用SSL加密(生产环境推荐)
- 配置MySQL支持SSL连接,确保客户端与服务器间数据加密。
-
定期备份与审计
- 开启慢查询日志、错误日志,监控异常行为。
- 使用
mysqldump或 XtraBackup 定期备份。
四、Redis 安全配置
-
设置强密码
- 修改
redis.conf:requirepass YourStrongPasswordHere!@#123 - 客户端连接时需使用
AUTH password。
- 修改
-
禁用危险命令
- 在
redis.conf中重命名或禁用高危命令:rename-command FLUSHDB disabled_flushdb rename-command FLUSHALL disabled_flushall rename-command CONFIG disabled_config rename-command EVAL disabled_eval
- 在
-
绑定内网地址
- 修改
redis.conf:bind 127.0.0.1 172.16.x.x # 仅允许本地和内网访问 protected-mode yes # 开启保护模式
- 修改
-
禁用公网访问
- 绝对不要将Redis暴露在公网,极易被勒索病毒攻击(如X_X、数据删除)。
-
使用专有网络(VPC)隔离
- Redis实例只接受来自应用服务器的内网请求。
-
升级到较新版本
- 老版本Redis存在多个安全漏洞,建议使用 Redis 6+。
五、其他增强安全措施
-
使用云防火墙(可选)
- 阿里云提供云防火墙服务,可进一步精细化控制进出流量。
-
开启日志审计
- 启用操作审计(ActionTrail),记录ECS和数据库相关操作。
-
定期漏洞扫描
- 使用阿里云“安骑士”(现称“云安全中心”)进行主机安全检测。
-
数据加密
- 对敏感数据在应用层加密。
- 可考虑使用阿里云KMS管理密钥。
-
使用RDS替代自建MySQL(推荐)
- 阿里云RDS提供自动备份、高可用、安全加固、审计日志等功能,比自建更安全可靠。
- 若非特殊需求,建议使用 RDS MySQL + 云数据库版 Redis(Tair)。
六、总结:关键安全实践清单
| 项目 | 安全建议 |
|---|---|
| ECS 登录 | 使用SSH密钥,禁用root远程登录 |
| 安全组 | 仅允许可信IP访问MySQL/Redis端口 |
| MySQL | 绑定内网IP,禁用远程root,设复杂密码 |
| Redis | 设置密码,重命名危险命令,绝不暴露公网 |
| 网络 | 使用VPC内网通信,避免公网传输 |
| 更新 | 定期更新系统、MySQL、Redis |
| 备份 | 定期备份数据,测试恢复流程 |
| 监控 | 启用日志,使用云安全中心监控异常 |
✅ 强烈建议:对于生产环境,优先使用阿里云 RDS for MySQL 和 Tair(兼容Redis),它们已内置多项安全机制,运维更简单、安全性更高。
如需自建,请务必遵循以上安全规范,定期审查配置。
CLOUD云枢