Linux中Redis的安全防护措施
小樊
38
2026-01-01 04:11:51
Linux中Redis的安全防护措施
一 网络与访问控制
- 将服务仅暴露在内网或本机,避免监听0.0.0.0;按需使用bind 127.0.0.1或指定内网接口IP,必要时配合安全组/VPC隔离。
- 使用iptables/firewalld限制来源IP与端口,仅放通应用所在网段;例如 firewalld 仅允许本机或特定网段访问 Redis 端口。
- 修改默认端口6379为非常见端口,降低自动化扫描命中率。
- 启用protected-mode yes,当未设置bind和密码时仅允许本地连接,作为最后防线。
- 主从/复制链路同样需要上述网络与认证约束,避免从公网直连主库。
二 身份与权限控制
- 设置强口令并定期更换:在配置中启用requirepass <强密码>;主从复制使用**masterauth <密码>**保持认证一致。
- 利用**ACL(Redis 6.0+)**进行细粒度授权,按用户/命令/键空间最小化授权,例如创建只读用户、读写用户等。
- 禁用或重命名高危命令,降低被滥用风险:如FLUSHDB/FLUSHALL/EVAL/SHUTDOWN/SAVE/DEBUG/CONFIG等,建议重命名为随机字符串或置空禁用。
三 加密与传输安全
- 在公网或跨机房部署时启用TLS/SSL加密传输,配置tls-port、tls-cert-file、tls-key-file、tls-ca-cert-file;客户端使用**–tls**及相应CA/证书参数连接。
- 如暂无法启用TLS,应严格限制为内网访问并叠加防火墙白名单。
四 运行账户与文件权限
- 禁止使用root运行 Redis,创建专用系统用户(如redis),并以该用户启动服务;禁止该账户交互式登录(如设置**/sbin/nologin**)。
- 严格控制文件与目录权限:配置文件redis.conf 600,Redis 二进制与工具700,数据目录与持久化文件仅对 Redis 用户可读写。
- 将RDB/AOF与日志目录放在非系统分区,避免日志或持久化文件无限增长导致磁盘被占满。
五 资源限制、审计与备份
- 设置资源上限与连接治理:配置maxmemory(如1GB)与maxmemory-policy(如allkeys-lru),限制maxclients(如5000),设置timeout(如3600秒)回收空闲连接,防止资源耗尽与DoS。
- 打开慢查询日志(如slowlog-log-slower-than 10000微秒、slowlog-max-len 128)定位性能与异常;按需使用monitor做临时排查(生产慎用)。
- 启用日志轮转(logrotate),防止日志撑满磁盘;定期备份RDB/AOF并演练恢复流程,确保灾难恢复能力。
- 持续更新补丁与安全审计,关注异常登录、命令执行与复制异常告警。