在阿里云购买ECS搭建MySQL和Redis服务需要注意哪些安全设置?

服务器

在阿里云ECS上搭建MySQL和Redis服务时,安全设置至关重要,以防止数据泄露、未授权访问和网络攻击。以下是关键的安全配置建议:


一、通用ECS安全设置

  1. 使用最小权限原则创建RAM用户

    • 避免使用主账号直接操作,为运维人员创建具备必要权限的RAM子用户。
    • 授予最小必要的权限(如仅允许访问特定ECS实例)。
  2. 开启云服务器安全加固

    • 使用阿里云提供的「安骑士」(现为「云安全中心」)进行漏洞扫描、入侵检测和基线检查。
    • 定期更新系统补丁(如 yum updateapt upgrade)。
  3. 关闭不必要的端口和服务

    • 禁用不使用的系统服务(如FTP、Telnet等)。
    • 使用 systemctl disable <service> 禁止开机自启。
  4. 设置强密码和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安全设置

  1. 修改默认端口(可选)

    • 修改 my.cnf 中的 port = 3306 → 自定义端口(如 3307),增加隐蔽性。
    • 同步更新安全组规则。
  2. 禁止root远程登录

    -- 登录MySQL后执行
    UPDATE mysql.user SET Host='localhost' WHERE User='root';
    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连接(生产环境推荐)

    • my.cnf 中配置SSL证书路径。
    • 强制应用使用SSL连接。
  5. 定期备份与日志审计

    • 开启慢查询日志、错误日志。
    • 使用阿里云快照 + mysqldump/Percona XtraBackup 定期备份。

四、Redis安全设置

  1. 禁止公网访问

    • 编辑 redis.conf
      bind 127.0.0.1 192.168.x.x   # 绑定内网IP,禁止0.0.0.0
      protected-mode yes
      port 6379
  2. 设置强密码(requirepass)

    requirepass YourStrongPassword!@#123
    • 应用连接时需提供密码:redis-cli -a "password"
  3. 重命名危险命令(如FLUSHDB、CONFIG)

    rename-command FLUSHDB my_flushdb_123
    rename-command CONFIG my_config_456
    rename-command SHUTDOWN my_shutdown_789
  4. 禁用危险命令(可选)

    rename-command FLUSHALL ""
    rename-command CONFIG ""
  5. 使用专有账号运行Redis

    useradd -r redis && chown -R redis:redis /var/lib/redis
    # 启动时使用redis用户
  6. 开启日志审计

    • 记录客户端连接、命令执行等信息(注意性能影响)。

五、网络与架构建议

  1. 使用VPC私有网络部署

    • 将ECS置于VPC中,通过内网IP通信,避免公网暴露。
  2. 部署在不同可用区实现高可用(可选)

    • 结合RDS(托管数据库)更安全省心。
  3. 使用NAT网关或跳板机管理访问

    • 所有管理操作通过跳板机(堡垒机)进行,限制直接访问ECS。
  4. 考虑使用阿里云RDS和云数据库Redis版

    • 更安全、自动备份、支持审计、DDoS防护等企业级功能。
    • 减少运维负担和安全风险。

六、监控与告警

  1. 启用云监控

    • 监控CPU、内存、网络、磁盘使用率。
    • 设置异常登录、端口扫描告警。
  2. 日志分析

    • 使用SLS(日志服务)收集MySQL、Redis、系统日志,分析异常行为。

总结:必须做的安全措施清单 ✅

项目 是否完成
关闭MySQL/Redis公网访问
配置安全组仅允许可信IP访问
设置强密码(MySQL用户、Redis密码)
禁用Redis默认无密码访问
创建非root数据库用户
SSH使用密钥登录 + 禁用root登录
定期系统与软件更新
开启云安全中心监控

强烈建议:对于生产环境,优先使用阿里云 RDS for MySQL云数据库Tair(兼容Redis),由平台负责安全、备份、高可用,降低安全风险。

如有更多需求(如SSL配置、主从复制安全),可进一步扩展。

未经允许不得转载:CDNK博客 » 在阿里云购买ECS搭建MySQL和Redis服务需要注意哪些安全设置?