Skip to content

第32章:安全与访问控制 ​

本章目标 ​

配置密码、ACL、禁用危险命令


32.1 基础安全配置 ​

bash
# redis.conf
bind 127.0.0.1 192.168.1.100   # 绑定内网IP,不暴露公网
requirepass "strong-password"   # 连接密码
protected-mode yes              # 无密码时仅本地连接
rename-command FLUSHALL ""      # 禁用危险命令
rename-command KEYS ""          # 禁用 KEYS

32.2 ACL(Redis 6.0+) ​

bash
# 查看用户
ACL LIST

# 创建只读用户
ACL SETUSER readonly ON >password ~* +@read

# 创建受限用户(只能操作特定前缀)
ACL SETUSER appuser ON >password ~cache:* +@all

# 删除用户
ACL DELUSER readonly

# 查看用户权限
ACL GETUSER readonly

# 保存到配置文件
ACL SAVE

ACL 规则 ​

规则含义
ON/OFF启用/禁用
>password设置密码
~patternKey 匹配模式
+@read允许读命令集
+@all允许所有命令
-@dangerous禁止危险命令
-FLUSHALL禁止特定命令
nopass无密码

32.3 安全清单 ​

  • [ ] requirepass 设强密码
  • [ ] bind 绑定内网 IP
  • [ ] rename-command 禁用 FLUSHALL/FLUSHDB/KEYS/CONFIG
  • [ ] ACL 限制用户权限
  • [ ] 不暴露公网(防火墙/安全组)
  • [ ] 定期升级 Redis 版本
  • [ ] 开启 protected-mode

本章小结 ​

  • requirepass + bind + rename-command 三道防线
  • ACL 精确控制用户权限(6.0+)
  • 不要暴露到公网(很多 Redis 被黑挖矿)

练习题 ​

  1. 设连接密码并验证。
  2. 创建只读用户和受限用户。
  3. 用 rename-command 禁用 FLUSHALL。

把零散知识,整理成可以反复走的路。