首页/安全/漏洞与攻击面速查/Redis 安全配置加固
主机与服务风险面53 条

Redis 安全配置加固

Redis 加固四件套:绑定内网地址(bind)、开启密码(requirepass)、重命名或禁用危险命令(rename-command)、限制访问来源(防火墙/安全组);生产实例建议全部执行。

漏洞与攻击面速查安全更新于 2026-10-13

Redis 加固是什么

Redis 默认面向可信内网设计,几乎没有内置访问控制,因此加固不是可选项而是部署前提。核心是四件事:绑定地址(bind)收敛、开启口令(requirepass)、重命名或禁用危险命令(rename-command)、在防火墙或安全组限制来源。Redis 6 及以上版本可用 ACL 按业务拆分账号,替代单一密码模式。

基本信息

适用版本Redis 5/6/7(ACL 需 6.0 及以上)
配置文件redis.conf(或 /etc/redis/redis.conf)
关键项bind、protected-mode、requirepass、rename-command
生效方式改配置后重启服务,或对支持的命令执行 CONFIG REWRITE

redis.conf 加固示例

redis.conf 加固示例
bind 127.0.0.1 10.0.0.5      # 只监听回环与应用网卡地址
protected-mode yes            # 未显式配置绑定与口令时的兜底保护
requirepass <强随机口令>       # 开启口令认证
rename-command CONFIG ""       # 禁用可改写落盘路径的高危命令
rename-command FLUSHALL ""     # 阻止一键清库
rename-command KEYS ""         # 阻断全量键枚举
# Redis 6+ 建议用 ACL 按业务拆分只读/读写账号,替代共用口令

生效验证

生效验证
redis-cli -h 10.0.0.5 -a '<口令>' config get maxmemory   # 认证后可读取配置
redis-cli -h 10.0.0.5 -p 6379 ping                        # 未认证应返回 NOAUTH 错误
redis-cli -h 10.0.0.5 -p 6379 info server | head -5       # 确认连接到的实例与端口正确
ss -lntp | grep 6379                                      # 确认监听地址已收敛

典型使用场景

  • 新实例上线:按基线配置后再开放网络访问
  • 存量核查:扫描 6379 对外可达的实例,确认是否已认证与绑定收敛
  • 等保整改:口令强度、来源限制、危险命令禁用是常见核查项
  • 多业务共用:用 ACL 给各业务独立账号与键空间前缀权限
  • 排障:从节点认证失败或监控采集报 NOAUTH 时,多半是口令未同步

加固项与验证方式

加固项验证命令通过标准
绑定地址ss -lntp | grep 6379只监听回环与管理/应用网卡
口令认证redis-cli ping未认证返回 NOAUTH
危险命令redis-cli -a 口令 CONFIG GET maxmemory重命名后应报未知命令
来源限制从其他网段 telnet 测试连接被拒绝或超时
Redis 6 起提供 ACL 体系,可按业务拆分只读/读写账号,替代单一密码模式;改造时先给监控与运维脚本建独立只读账号,再逐步收紧。
把 Redis 直接暴露在公网且无口令,等于把主机控制权交出去:攻击者可借助配置写入或持久化机制落地后门。任何情况下都不建议公网直连。

易错点

  • rename-command 后管理工具、监控脚本或运维命令调用旧命令会失败:先梳理调用方再禁用
  • 只开口令不改 bind,口令泄露后攻击者可直连内网任意可达位置
  • 口令写在应用配置或脚本里且长期不轮换,一次代码泄露就全面失守
  • 禁用 CONFIG 后忘记保留必要的运维通道,故障时无法在线查看内存与持久化状态
  • 主从或哨兵环境中只改主节点配置,从节点仍是宽口径监听

数据来源与参考

  • Redis 官方文档(Security 与 ACL 章节)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌