1386 字
约 4 分钟
7
设置密码(运行时)

Redis 安全概述

Redis 安全是生产环境部署的重要考虑因素。默认情况下,Redis 的安全配置相对宽松,需要管理员根据实际需求进行安全加固,包括认证、网络访问控制、命令限制等多个方面。

⚠️ 安全警告

Redis 默认配置存在安全风险,在生产环境中必须进行安全加固!未经保护的 Redis 实例可能被恶意利用。

🔐 认证配置

设置密码认证是 Redis 安全的第一步:

# 设置密码(运行时)
CONFIG SET requirepass your_strong_password

# 使用密码连接
redis-cli -a your_strong_password

# 连接后认证
redis-cli
127.0.0.1:6379> AUTH your_strong_password
OK

# 在配置文件中设置(推荐)
# redis.conf
requirepass your_strong_password

# 查看当前密码设置
CONFIG GET requirepass

密码安全建议:使用强密码(至少16位,包含大小写字母、数字、特殊字符)定期更换密码避免在命令行中明文显示密码使用环境变量或配置文件管理密码

🌐 网络安全

限制网络访问是保护 Redis 的重要措施:

# 绑定特定IP地址
bind 127.0.0.1 192.168.1.100

# 启用保护模式
protected-mode yes

# 修改默认端口
port 6380

# 禁用某些网络命令
rename-command SHUTDOWN ""
rename-command CONFIG "CONFIG_abc123"
rename-command EVAL ""

# 设置客户端连接超时
timeout 300

# 限制最大客户端连接数
maxclients 1000
配置项 说明 安全级别
bind 127.0.0.1 只允许本地连接 高
protected-mode yes 启用保护模式 高
port 非默认端口 修改默认端口 中
timeout 300 连接超时设置 中

🚫 命令重命名与禁用

重命名或禁用危险命令防止误操作:

# 在 redis.conf 中配置

# 禁用危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command KEYS ""
rename-command CONFIG ""
rename-command SHUTDOWN ""
rename-command DEBUG ""
rename-command EVAL ""
rename-command SCRIPT ""

# 重命名命令(增加安全性)
rename-command CONFIG "CONFIG_abc123def456"
rename-command SHUTDOWN "SHUTDOWN_xyz789"
rename-command FLUSHALL "FLUSHALL_secret123"

# 使用重命名后的命令
CONFIG_abc123def456 GET *
SHUTDOWN_xyz789

注意:重命名命令后,需要更新应用程序代码和运维脚本中的命令调用。

👤 用户访问控制 (ACL)

Redis 6.0 引入了 ACL(Access Control List)功能:

# 查看当前用户
ACL LIST

# 创建新用户
ACL SETUSER alice on >password123 ~cached:* +get +set

# 用户权限说明:
# on/off: 启用/禁用用户
# >password: 设置密码
# ~pattern: 允许访问的key模式
# +command: 允许的命令
# -command: 禁止的命令
# @category: 命令分类

# 创建只读用户
ACL SETUSER readonly on >readonly123 ~* +@read -@write

# 创建管理员用户
ACL SETUSER admin on >admin123 ~* +@all

# 删除用户
ACL DELUSER alice

# 查看用户详情
ACL GETUSER alice

# 保存ACL配置
ACL SAVE

ACL 命令分类:@read:只读命令@write:写入命令@admin:管理命令@dangerous:危险命令@all:所有命令

🔍 安全监控

监控 Redis 的安全状态和异常行为:

# 查看客户端连接
CLIENT LIST

# 监控命令执行
MONITOR

# 查看慢查询日志
SLOWLOG GET 10

# 查看服务器信息
INFO server
INFO clients
INFO stats

# 检查配置安全性
CONFIG GET bind
CONFIG GET protected-mode
CONFIG GET requirepass

# 查看ACL日志(Redis 6.0+)
ACL LOG
ACL LOG RESET

🛡️ TLS/SSL 加密

启用 TLS 加密保护数据传输:

# 在 redis.conf 中配置 TLS
port 0
tls-port 6380
tls-cert-file /path/to/redis.crt
tls-key-file /path/to/redis.key
tls-ca-cert-file /path/to/ca.crt

# 客户端 TLS 配置
tls-protocols "TLSv1.2 TLSv1.3"
tls-ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"
tls-ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256"

# 使用 TLS 连接
redis-cli --tls --cert /path/to/client.crt --key /path/to/client.key --cacert /path/to/ca.crt

注意:TLS 配置需要有效的证书文件,建议在生产环境中使用受信任的 CA 签发的证书。

📋 安全检查清单

Redis 安全配置检查清单:

基础安全配置:✅ 设置强密码认证✅ 启用保护模式✅ 绑定特定IP地址✅ 修改默认端口✅ 禁用或重命名危险命令✅ 设置连接超时✅ 限制最大连接数✅ 配置防火墙规则

高级安全配置:配置 ACL 用户权限启用 TLS 加密传输设置日志监控定期安全审计备份加密存储网络隔离部署

🚨 安全事件响应

发现安全问题时的应急响应:

# 紧急情况处理

# 1. 立即断开可疑连接
CLIENT KILL TYPE normal
CLIENT KILL ADDR 192.168.1.100:12345

# 2. 修改密码
CONFIG SET requirepass new_emergency_password

# 3. 查看访问日志
ACL LOG
SLOWLOG GET 100

# 4. 检查数据完整性
INFO keyspace
KEYS *

# 5. 备份当前数据
BGSAVE

# 6. 重启服务(如必要)
SHUTDOWN SAVE

安全事件处理步骤:

  1. 隔离:立即隔离受影响的系统
  2. 评估:评估安全事件的影响范围
  3. 遏制:阻止进一步的安全威胁
  4. 清除:清除恶意代码或数据
  5. 恢复:恢复正常业务运行
  6. 总结:分析事件原因并改进安全措施

💡 安全最佳实践

Redis 安全部署的最佳实践:

部署安全:使用专用的 Redis 用户运行服务设置适当的文件权限定期更新 Redis 版本使用配置管理工具实施网络分段定期安全扫描

重要提醒:安全是一个持续的过程,需要定期评估和更新安全策略。

设置密码(运行时)
https://clxhxhhr.top/posts/2827/
作者
clxstart
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。
☰ 文章目录