在阿里云ECS上搭建MySQL和Redis服务时,安全设置至关重要。以下是关键的安全建议和最佳实践:
一、ECS实例基础安全设置
-
选择最小化操作系统镜像
- 使用精简版Linux系统(如Alibaba Cloud Linux或CentOS Minimal),减少不必要的服务和潜在漏洞。
-
及时更新系统和软件包
yum update -y # CentOS/Alibaba Cloud Linux apt-get update && apt-get upgrade -y # Ubuntu/Debian -
关闭不必要的端口和服务
- 使用
systemctl禁用不需要的服务(如telnet、ftp等)。 - 使用
firewalld或iptables配置防火墙规则。
- 使用
-
配置安全组(Security Group)
- 最小权限原则:只开放必要的端口。
- MySQL 默认端口:3306 → 只允许指定IP或VPC内访问
- Redis 默认端口:6379 → 建议仅限内网或通过跳板机访问
- 示例:
- 入方向规则:
- 源IP:
192.168.0.0/16(VPC内网) - 协议端口:TCP:3306, TCP:6379
- 源IP:
- 不要对公网开放 3306 和 6379 端口(除非必要且有强保护)
- 入方向规则:
- 最小权限原则:只开放必要的端口。
-
使用SSH密钥登录,禁用密码登录
- 在ECS创建时使用SSH密钥对。
- 修改
/etc/ssh/sshd_config:PasswordAuthentication no PermitRootLogin no - 重启SSH服务:
systemctl restart sshd
-
启用云盾(安骑士)
- 开启阿里云免费的主机安全防护(入侵检测、漏洞扫描、基线检查等)。
二、MySQL 安全设置
-
修改默认端口(可选)
- 修改
my.cnf中的port = 3306为非常见端口(如 3307),降低被扫描风险。
- 修改
-
禁止root远程登录
-- 登录MySQL后执行 UPDATE mysql.user SET host='localhost' WHERE user='root'; FLUSH PRIVILEGES; -
创建专用用户并限制权限
CREATE USER 'appuser'@'192.168.%.%' IDENTIFIED BY 'StrongPassword123!'; GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'appuser'@'192.168.%.%'; FLUSH PRIVILEGES; -
启用SSL连接(生产环境推荐)
- 配置MySQL支持SSL,并强制应用使用SSL连接。
-
定期备份与监控
- 使用
mysqldump或 XtraBackup 定期备份。 - 监控慢查询日志、错误日志。
- 使用
-
修改默认数据目录权限
- 确保MySQL数据目录(如
/var/lib/mysql)权限为mysql:mysql,避免其他用户读取。
- 确保MySQL数据目录(如
三、Redis 安全设置
-
禁止公网暴露
- Redis设计为可信环境使用,绝不应直接暴露在公网。
- 将Redis绑定到内网IP或本地回环地址:
bind 127.0.0.1 192.168.1.100
-
设置强密码认证
- 在
redis.conf中配置:requirepass YourVeryStrongPassword!@#123 - 客户端连接时需使用
AUTH命令。
- 在
-
重命名危险命令(如FLUSHALL、CONFIG)
rename-command FLUSHALL "" rename-command CONFIG "some_random_name" rename-command SHUTDOWN "" -
以非root用户运行Redis
- 创建专用用户运行Redis服务:
useradd -r redis chown -R redis:redis /var/lib/redis - 启动时使用
sudo -u redis redis-server ...
- 创建专用用户运行Redis服务:
-
禁用保护模式(但确保网络隔离)
- 如果Redis仅用于内网,可关闭保护模式:
protected-mode no - ⚠️ 仅当确认网络受信任时才关闭。
- 如果Redis仅用于内网,可关闭保护模式:
-
开启日志审计
- 记录客户端命令(注意性能影响):
loglevel verbose
- 记录客户端命令(注意性能影响):
四、其他通用安全建议
-
使用VPC网络隔离
- 将ECS部署在专有网络VPC中,避免使用经典网络。
- 数据库服务器放在私网子网,Web服务器放在公网子网,通过内网通信。
-
定期备份与快照
- 使用阿里云快照功能定期备份ECS磁盘。
- 对MySQL数据做逻辑备份并异地存储。
-
启用操作审计(ActionTrail)
- 记录所有对ECS、安全组、RDS等资源的操作,便于追溯。
-
考虑使用云数据库替代自建
- 阿里云RDS(MySQL)和云数据库Tair(兼容Redis)提供自动备份、高可用、安全加固等功能,更安全省心。
总结:关键安全要点
| 项目 | 安全措施 |
|---|---|
| ECS | SSH密钥、最小化系统、关闭密码登录 |
| 安全组 | 仅放行必要IP和端口,禁止公网访问数据库端口 |
| MySQL | 禁止root远程、专用用户、强密码、SSL |
| Redis | 绑定内网、设置密码、重命名危险命令、非root运行 |
| 网络 | 使用VPC,数据库不暴露公网 |
| 运维 | 定期更新、备份、启用云盾 |
✅ 强烈建议:若非必须,优先使用阿里云RDS和Tair等托管服务,它们已内置大量安全机制,比自建更可靠。
如需进一步优化,可结合WAF、堡垒机、日志服务等阿里云安全产品构建完整防护体系。
云计算导航