在阿里云ECS上搭建MySQL和Redis服务时,安全设置至关重要,以防止数据泄露、未授权访问和网络攻击。以下是关键的安全配置建议:
一、通用ECS安全设置
-
使用最小权限原则创建RAM用户
- 避免使用主账号直接操作,为运维人员创建具备必要权限的RAM子用户。
- 授予最小必要的权限(如仅允许访问特定ECS实例)。
-
开启云服务器安全加固
- 使用阿里云提供的「安骑士」(现为「云安全中心」)进行漏洞扫描、入侵检测和基线检查。
- 定期更新系统补丁(如
yum update或apt upgrade)。
-
关闭不必要的端口和服务
- 禁用不使用的系统服务(如FTP、Telnet等)。
- 使用
systemctl disable <service>禁止开机自启。
-
设置强密码和SSH安全
- 设置复杂登录密码或使用SSH密钥对登录,禁用密码登录。
- 修改SSH默认端口(可选),并限制SSH登录IP(通过安全组或iptables)。
# /etc/ssh/sshd_config Port 2222 PermitRootLogin no PasswordAuthentication no - 重启SSH服务:
systemctl restart sshd
二、安全组配置(核心防护)
务必配置安全组规则,限制访问来源!
| 服务 | 端口 | 授权对象(源IP) | 建议 |
|---|---|---|---|
| SSH | 22(或自定义) | 仅限管理员办公IP或跳板机IP | ✅ 必须 |
| MySQL | 3306 | 应用服务器IP 或 内网VPC私有IP段 | ✅ 严禁公网开放 |
| Redis | 6379 | 应用服务器IP 或 内网VPC私有IP段 | ✅ 严禁公网暴露 |
| 其他管理端口 | 如33060(MySQL X Plugin)、6380等 | 按需限制 | ⚠️ 谨慎开放 |
🔐 重要提示:不要将MySQL或Redis端口对0.0.0.0/0开放(即公网全开放),极易被暴力破解或X_X病毒利用。
三、MySQL安全设置
-
修改默认端口(可选)
- 修改
my.cnf中的port = 3306→ 自定义端口(如 3307),增加隐蔽性。 - 同步更新安全组规则。
- 修改
-
禁止root远程登录
-- 登录MySQL后执行 UPDATE mysql.user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES; -
创建专用数据库用户并限制权限
CREATE USER 'app_user'@'192.168.%.%' IDENTIFIED BY 'StrongPassword123!'; GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'192.168.%.%'; FLUSH PRIVILEGES; -
启用SSL连接(生产环境推荐)
- 在
my.cnf中配置SSL证书路径。 - 强制应用使用SSL连接。
- 在
-
定期备份与日志审计
- 开启慢查询日志、错误日志。
- 使用阿里云快照 + mysqldump/Percona XtraBackup 定期备份。
四、Redis安全设置
-
禁止公网访问
- 编辑
redis.conf:bind 127.0.0.1 192.168.x.x # 绑定内网IP,禁止0.0.0.0 protected-mode yes port 6379
- 编辑
-
设置强密码(requirepass)
requirepass YourStrongPassword!@#123- 应用连接时需提供密码:
redis-cli -a "password"
- 应用连接时需提供密码:
-
重命名危险命令(如FLUSHDB、CONFIG)
rename-command FLUSHDB my_flushdb_123 rename-command CONFIG my_config_456 rename-command SHUTDOWN my_shutdown_789 -
禁用危险命令(可选)
rename-command FLUSHALL "" rename-command CONFIG "" -
使用专有账号运行Redis
useradd -r redis && chown -R redis:redis /var/lib/redis # 启动时使用redis用户 -
开启日志审计
- 记录客户端连接、命令执行等信息(注意性能影响)。
五、网络与架构建议
-
使用VPC私有网络部署
- 将ECS置于VPC中,通过内网IP通信,避免公网暴露。
-
部署在不同可用区实现高可用(可选)
- 结合RDS(托管数据库)更安全省心。
-
使用NAT网关或跳板机管理访问
- 所有管理操作通过跳板机(堡垒机)进行,限制直接访问ECS。
-
考虑使用阿里云RDS和云数据库Redis版
- 更安全、自动备份、支持审计、DDoS防护等企业级功能。
- 减少运维负担和安全风险。
六、监控与告警
-
启用云监控
- 监控CPU、内存、网络、磁盘使用率。
- 设置异常登录、端口扫描告警。
-
日志分析
- 使用SLS(日志服务)收集MySQL、Redis、系统日志,分析异常行为。
总结:必须做的安全措施清单 ✅
| 项目 | 是否完成 |
|---|---|
| 关闭MySQL/Redis公网访问 | ✅ |
| 配置安全组仅允许可信IP访问 | ✅ |
| 设置强密码(MySQL用户、Redis密码) | ✅ |
| 禁用Redis默认无密码访问 | ✅ |
| 创建非root数据库用户 | ✅ |
| SSH使用密钥登录 + 禁用root登录 | ✅ |
| 定期系统与软件更新 | ✅ |
| 开启云安全中心监控 | ✅ |
✅ 强烈建议:对于生产环境,优先使用阿里云 RDS for MySQL 和 云数据库Tair(兼容Redis),由平台负责安全、备份、高可用,降低安全风险。
如有更多需求(如SSL配置、主从复制安全),可进一步扩展。
CDNK博客