Redis安全配置有哪些
小樊
41
2026-01-03 03:01:43
Redis安全配置清单
一 网络与访问控制
- 禁止监听公网地址,避免使用通配地址:将 bind 设置为受信任的 内网IP 或仅本地 127.0.0.1,严禁 0.0.0.0;必要时配合更改默认端口 port 6379 为非常用端口,降低被扫描概率。
- 启用保护模式:保持 protected-mode yes,当未显式配置 bind 与密码时,仅允许本地访问,作为“最后防线”。
- 以最小权限运行:禁止使用 root 启动 Redis,创建专用低权限系统账号(如 redis),并禁止该账号 交互式登录(如 shell 设为 /sbin/nologin)。
- 网络边界防护:通过 firewalld/iptables 或云上 安全组/VPC 实施白名单,仅放通可信来源 IP 与端口;如无公网业务需求,建议完全关闭公网访问。
二 身份认证与传输
- 强制启用认证:设置强口令 requirepass <strong_password>;主从复制场景配置 masterauth 与主库一致,避免复制中断。
- 避免口令泄露:连接时避免在命令行使用 -a 明文参数(会被 ps 等进程列表暴露),优先采用配置文件、环境变量或客户端 API 管理凭据;必要时对客户端调用进行封装,禁止通过 sudo 切换执行带口令的 redis-cli。
- 加密传输:在公网或跨机房访问时启用 TLS/SSL,配置 ssl on / ssl_cert_file / ssl_key_file,确保数据链路机密性与完整性。
三 命令与权限最小化
- 禁用或重命名高危命令:对 FLUSHALL、FLUSHDB、CONFIG、SHUTDOWN、DEBUG、EVAL、KEYS 等执行 rename-command 禁用或重命名为不可猜测字符串,降低破坏性操作与脚本注入风险。
- 最小权限原则:仅授予应用所需命令与键空间访问;结合业务拆分实例与数据库,避免使用高权限的 CONFIG/DEBUG 类命令。
四 资源与持久化安全
- 资源限额与稳定性:设置 maxmemory 与合适的淘汰策略(如 volatile-lru / allkeys-lru),防止内存耗尽引发 DoS;限制 maxclients 与 timeout,避免连接风暴与闲置占用。
- 持久化与日志:按需启用 AOF/RDB,配置 appendfsync everysec 平衡性能与数据安全;配置 logfile 与 syslog,并实施 logrotate 策略防止日志占满磁盘。
- 文件与目录权限:配置文件 redis.conf 权限 600、属主为 redis;二进制文件 700;数据目录 dir 使用非系统分区,避免系统盘被日志或持久化文件打满。
五 运维与审计
- 版本与补丁:保持 Redis 与依赖组件为最新稳定版,及时修复已知漏洞。
- 基线核查与加固:定期审计 bind、protected-mode、requirepass、rename-command、maxmemory、maxclients、firewall 等关键项,形成合规基线并持续巡检。
- 审计与监控:开启 慢查询日志 slowlog(如 slowlog-log-slower-than 10000),监控异常命令与连接;对关键操作与访问来源进行留痕与告警。