在阿里云购买ECS(弹性计算服务)搭建 MySQL 和 Redis 服务时,为了保障系统的安全性,必须进行一系列安全设置。以下是关键的安全建议和最佳实践:
一、基础安全设置
1. 选择最小权限的系统镜像
- 使用官方推荐的 Linux 发行版(如 Alibaba Cloud Linux、CentOS Stream、Ubuntu LTS)。
- 禁用不必要的服务和端口。
2. 及时更新系统和软件
# 更新系统包
sudo yum update -y # CentOS/Alibaba Cloud Linux
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
- 定期打补丁,防止已知漏洞被利用。
二、网络与防火墙安全
1. 配置安全组(Security Group)
- 原则:最小开放原则
- 只允许必要的端口入站访问:
- MySQL:默认端口
3306→ 仅允许指定 IP 或 VPC 内网访问,禁止公网直接暴露。 - Redis:默认端口
6379→ 建议只允许内网或跳板机访问,严禁公网开放。
- MySQL:默认端口
- 示例规则:
- 入方向:
- 协议类型:TCP
- 端口范围:3306
- 授权对象:应用服务器的私有IP或安全组ID(避免使用
0.0.0.0/0) - SSH(22端口):限制为公司/运维人员的固定公网IP。
2. 使用VPC专有网络
- 将 ECS 部署在 VPC 内,通过私有网络连接其他服务(如Web服务器),避免数据库直连公网。
3. 启用云防火墙(可选)
- 使用阿里云云防火墙增强边界防护,设置更精细的访问控制策略。
三、MySQL 安全设置
1. 修改默认端口(可选)
- 修改
my.cnf中的port = 3306为非常用端口(但不依赖此作为主要安全手段)。
2. 禁用远程 root 登录
-- 删除匿名用户
DELETE FROM mysql.user WHERE User='';
-- 只允许本地root登录
UPDATE mysql.user SET Host='localhost' WHERE User='root' AND Host='%';
-- 刷新权限
FLUSH PRIVILEGES;
3. 创建专用用户并授权最小权限
CREATE USER 'app_user'@'192.168.%.%' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'192.168.%.%';
FLUSH PRIVILEGES;
4. 启用SSL连接(生产环境推荐)
- 配置 MySQL 支持 SSL 加密通信,防止数据在传输中被窃听。
5. 定期备份与审计
- 启用 binlog,定期备份数据。
- 开启 general log 或 slow query log(注意性能影响),用于审计。
四、Redis 安全设置
1. 禁止公网暴露
- 绝对不要将 Redis 绑定到 0.0.0.0 并开放到公网!
- 修改
redis.conf:bind 127.0.0.1 # 只监听本地或内网IP protected-mode yes
2. 设置强密码认证
requirepass YourVeryStrongPassword!@#123
- 在客户端连接时需使用
AUTH命令。
3. 重命名危险命令(如 flushall、config)
rename-command FLUSHALL ""
rename-command CONFIG "random-string-config"
rename-command SHUTDOWN ""
4. 禁用危险功能
- 关闭
slaveof(如果不需要主从复制) - 禁止使用
keys *等高危命令(通过应用层控制)
5. 使用非默认端口(可选)
- 修改
port 6379为其他端口,减少自动化扫描攻击。
五、系统层面安全加固
1. 禁用 root 远程 SSH 登录
编辑 /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no # 建议使用密钥登录
然后重启 SSH 服务。
2. 使用 SSH 密钥登录
- 禁用密码登录,使用 RSA 密钥对认证。
3. 安装并配置 fail2ban
防止暴力破解 SSH 和数据库登录尝试:
sudo yum install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
4. 文件权限控制
- MySQL 数据目录、Redis 配置文件等应设为
600或644,属主为mysql/redis用户。
六、监控与日志
1. 开启阿里云日志服务(SLS)
- 收集系统日志、MySQL 错误日志、Redis 日志,便于审计和排查。
2. 配置云监控告警
- 监控 CPU、内存、磁盘、网络异常。
- 设置登录异常、端口扫描等安全事件告警。
3. 定期检查安全中心
- 使用阿里云 云安全中心(安骑士) 扫描漏洞、检测入侵行为、管理基线合规。
七、其他建议
| 项目 | 建议 |
|---|---|
| 数据库部署方式 | 生产环境建议使用 RDS(托管数据库),更安全、易维护 |
| Redis 替代方案 | 考虑使用阿里云 云数据库 Redis 版,支持自动备份、加密、访问控制 |
| 定期安全评估 | 每季度进行一次渗透测试或漏洞扫描 |
总结:核心安全原则
✅ 最小权限
✅ 网络隔离(VPC + 安全组)
✅ 强密码 + 认证机制
✅ 禁用默认/高危配置
✅ 实时监控与日志审计
✅ 定期更新与备份
⚠️ 特别提醒:Redis 一旦暴露在公网,极可能在几分钟内被入侵X_X或数据勒索,务必严格限制访问!
如需更高安全性,建议使用阿里云 RDS for MySQL 和 云数据库 Redis 版,由平台统一管理安全、备份、高可用等,降低运维风险。
CLOUD云计算