在阿里云ECS上搭建MySQL和Redis服务时,为保障系统和数据的安全性,需要进行一系列关键的安全设置。以下是详细的建议:
一、基础安全设置(适用于所有ECS实例)
-
使用最小权限原则创建RAM用户
- 避免使用主账号直接操作,应通过RAM子账号并分配最小必要权限。
-
选择安全的操作系统镜像
- 使用官方或阿里云提供的安全加固镜像(如 Alibaba Cloud Linux、CentOS Stream 安全版等)。
- 及时更新系统补丁:
yum update或apt upgrade。
-
关闭不必要的端口和服务
- 使用
systemctl disable <service>禁用不需要的服务(如 telnet、ftp)。 - 使用
netstat -tuln检查开放端口。
- 使用
-
配置SSH安全
- 修改默认SSH端口(非22)。
- 禁用 root 远程登录:
PermitRootLogin no - 使用密钥认证代替密码登录。
- 设置强密码策略。
- 推荐使用 Fail2Ban 防止暴力破解。
-
启用云防火墙与安全组
- 安全组规则:
- 仅允许特定IP访问 SSH(如你的办公IP)、MySQL(3306)、Redis(6379)。
- 默认拒绝所有入站流量,按需开放。
- 示例:
入方向: - 协议: TCP, 端口: 自定义 (如 22), 源: 你的IP/32
- 协议: TCP, 端口: 3306, 源: 应用服务器IP/32(不要对公网开放)
- 协议: TCP, 端口: 6379, 源: 应用服务器IP/32
- 安全组规则:
二、MySQL 安全设置
-
修改默认端口(可选)
- 修改
my.cnf中的port = 3306为其他端口(增加隐蔽性)。
- 修改
-
禁用远程root登录
-- 登录MySQL后执行 USE mysql; UPDATE user SET host='localhost' WHERE user='root'; FLUSH PRIVILEGES; -
创建专用数据库用户
CREATE USER 'appuser'@'192.168.1.100' IDENTIFIED BY 'StrongPassword123!'; GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'appuser'@'192.168.1.100'; FLUSH PRIVILEGES; -
绑定监听地址
- 在
/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf中:bind-address = 127.0.0.1 # 仅本地访问 # 或指定内网IP(如VPC内通信) bind-address = 172.16.0.10
- 在
-
启用SSL连接(生产环境推荐)
- 配置MySQL支持SSL,并要求客户端使用加密连接。
-
定期备份与审计
- 使用
mysqldump或 XtraBackup 定期备份。 - 启用慢查询日志和通用日志(用于审计,注意性能影响)。
- 使用
-
安装防病毒和入侵检测工具(可选)
- 如 ClamAV、AIDE、OSSEC 等。
三、Redis 安全设置
Redis 默认设计为可信环境使用,暴露在公网极不安全!
-
设置强密码
- 编辑
redis.conf:requirepass YourStrongPassword!@#123 - 客户端连接时使用:
AUTH YourStrongPassword!@#123
- 编辑
-
禁止外部访问
- 绑定到本地或内网IP:
bind 127.0.0.1 172.16.0.10 - 确保
protected-mode yes(默认开启)
- 绑定到本地或内网IP:
-
修改默认端口(可选)
- 修改
port 6379为其他端口(如 60001),减少扫描攻击。
- 修改
-
禁用危险命令
- 在
redis.conf中重命名或禁用高危命令:rename-command FLUSHDB disabled rename-command FLUSHALL disabled rename-command CONFIG disabled rename-command SHUTDOWN disabled
- 在
-
使用专有网络(VPC)隔离
- 将Redis部署在内网,仅允许应用服务器通过内网访问。
-
避免使用root运行Redis
- 创建专用用户运行Redis服务。
-
启用日志审计
- 记录客户端命令(谨慎开启,影响性能)。
四、网络与架构建议
-
使用VPC私有网络
- 所有服务部署在VPC内,通过内网通信,避免公网暴露。
-
使用NAT网关或跳板机
- 数据库不分配公网IP,管理通过跳板机(Bastion Host)接入。
-
考虑使用阿里云RDS和云数据库Redis版
- 更安全、自动备份、监控、漏洞修复。
- 若非必须自建,建议使用托管服务。
五、监控与告警
-
启用云监控
- 监控CPU、内存、磁盘、网络异常。
-
日志分析
- 收集MySQL错误日志、Redis日志、系统日志到SLS(日志服务)。
-
设置安全告警
- 使用云安全中心(安骑士)检测异常登录、木马、漏洞。
总结:关键安全要点
| 项目 | 建议措施 |
|---|---|
| SSH | 密钥登录 + 非标准端口 + 禁用root |
| 安全组 | 最小授权,仅允许可信IP访问 |
| MySQL | 禁用远程root,绑定内网IP,使用专用用户 |
| Redis | 设置密码,禁用公网访问,重命名危险命令 |
| 网络架构 | 使用VPC,避免公网暴露 |
| 更新维护 | 定期更新系统和软件补丁 |
| 备份 | 定期备份数据并验证恢复 |
✅ 强烈建议:
如果业务允许,优先使用阿里云 RDS for MySQL 和 云数据库 Redis 版,它们已内置多项安全机制(如白名单、SSL、自动备份、高可用),远比自建更安全、省心。
如需自建,请务必遵循上述安全实践,防止数据泄露或被勒索病毒加密。
秒懂云