news 2026/8/22 17:21:37

等保测评命令——redis

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
等保测评命令——redis

依据GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级"安全计算环境"条款,结合Redis 6.x/7.x官方安全指南及多家测评机构现场实践,给出可直接落地的测评命令清单

已在Redis 6.2.7 / 7.0.12环境验证通过,支持standalone / sentinel / cluster部署模式。


一、身份鉴别(8.1.4.1)

1.1 访问控制与认证配置

控制项

测评命令

达标判据

密码认证启用

redis-cli CONFIG GET requirepass

返回非空字符串

密码复杂度检查

redis-cli CONFIG GET requirepass

长度≥8位,包含大小写+数字+特殊字符

默认端口修改

redis-cli CONFIG GET port

非6379端口(建议6380+)

绑定地址限制

redis-cli CONFIG GET bind

绑定具体IP,非0.0.0.0

保护模式

redis-cli CONFIG GET protected-mode

yes(默认启用)

Redis配置文件核查:

# 查看Redis配置文件路径 redis-cli CONFIG GET dir redis-cli CONFIG GET logfile # 查看配置文件内容(通常位于/etc/redis/或/etc/redis.conf) cat /etc/redis/redis.conf |grep-E'^(requirepass|bind|port|protected-mode|masterauth)' # 查看是否启用ACL(Redis 6.0+) redis-cli ACL LIST |head-10 # 查看特定用户权限(Redis 6.0+) redis-cli ACL GETUSER default # 查看所有用户列表 redis-cli ACL USERS

1.2 登录失败与会话管理

控制项

测评命令

达标判据

连接数限制

redis-cli CONFIG GET maxclients

根据业务设置,建议≤10000

超时断开

redis-cli CONFIG GET timeout

300-600秒(5-10分钟)

TCP连接保持

redis-cli CONFIG GET tcp-keepalive

60-300秒

Redis特有配置:

# 查看当前连接数 redis-cli INFO clients |grep connected_clients # 查看最大连接数限制 redis-cli CONFIG GET maxclients # 查看客户端连接列表(检查异常连接) redis-cli CLIENT LIST |head-20 # 查看阻塞客户端 redis-cli CLIENT LIST |grep-c"blocked" # 查看连接来源IP分布 redis-cli CLIENT LIST |awk -F'addr=''{print $2}'|awk -F':''{print $1}'|sort|uniq-c|sort-rn|head-10 # 查看慢查询(可能为攻击行为) redis-cli SLOWLOG GET 10

1.3 远程管理安全

# 检查危险命令重命名或禁用 cat /etc/redis/redis.conf |grep-E'^(rename-command|DISABLE)' # 检查是否禁用高危命令 redis-cli CONFIG GET rename-command # 或查看配置文件 grep-E'rename-command (FLUSHALL|FLUSHDB|CONFIG|DEBUG|SHUTDOWN|SAVE|BGSAVE)' /etc/redis/redis.conf # 检查是否启用SSL/TLS(Redis 6.0+) redis-cli CONFIG GET tls-port redis-cli CONFIG GET tls-cert-file # 查看监听端口 ss -tulnp|grep redis-server # 检查是否暴露在外网 curl-s http://ipinfo.io/ip # 获取本机公网IP redis-cli -h<公网IP>-p6379 PING # 应返回错误或未连接

高风险项:Redis未设置密码且绑定0.0.0.0,或高危命令未禁用,直接判定不符合三级要求。

1.4 双因子认证(高风险项)

测评方法:

  • 访谈确认:是否采用"Redis密码+网络层VPN/堡垒机"组合认证

  • 技术核查

# 检查是否通过堡垒机访问 echo$SSH_CONNECTION# 查看SSH来源 last |grep redis # 查看登录记录 # 检查VPN网段访问限制 redis-cli CONFIG GET bind cat /etc/redis/redis.conf |grep-A5-B5'^bind' # 检查iptables/防火墙限制 iptables -L-n|grep6379 firewall-cmd --list-all |grep redis # CentOS/RHEL ufw status |grep6379# Ubuntu # 检查是否使用SSL证书认证(Redis 6.0+) openssl s_client -connect localhost:6379 -tls1_2</dev/null 2>/dev/null | openssl x509 -noout-text|head-20

二、访问控制(8.1.4.2)

2.1 账户与权限管理

控制项

测评命令

达标判据

默认账户检查

redis-cli ACL LIST

删除/重命名default用户或限制权限

最小权限原则

redis-cli ACL GETUSER <username>

仅授权必要命令和Key前缀

敏感操作审计

redis-cli ACL LOG

记录越权访问尝试(Redis 6.0+)

Redis 6.0+ ACL(访问控制列表)核查:

# 查看ACL日志(记录权限拒绝事件) redis-cli ACL LOG 10 # 查看所有用户及权限 redis-cli ACL LIST # 检查用户权限示例(应限制危险命令) redis-cli ACL GETUSER app_readonly # 期望输出:-@all +@read ~app:* (仅允许读取app:前缀的key) # 检查管理员用户 redis-cli ACL GETUSER admin # 应启用on >password 权限但限制来源IP # 查看Key空间通知(审计用途) redis-cli CONFIG GET notify-keyspace-events

Redis 5.x及以下版本(无ACL):

# 检查是否使用Redis AUTH密码区分业务 cat /etc/redis/redis.conf |grep-E'^requirepass' # 检查是否使用不同Redis实例隔离业务 ps aux |grep redis-server |grep-vgrep ss -tulnp|grep redis # 检查Key前缀规范(业务隔离) redis-cli KEYS '*'|awk -F':''{print $1}'|sort|uniq-c|sort-rn|head-10

2.2 默认配置清理

# 检查是否修改默认端口 redis-cli CONFIG GET port # 或 cat /etc/redis/redis.conf |grep'^port' # 检查是否禁用危险命令 cat /etc/redis/redis.conf |grep'rename-command' # 标准配置应包含: # rename-command FLUSHALL "" # rename-command FLUSHDB "" # rename-command CONFIG "CONFIG_9f3b2a1e" # rename-command DEBUG "" # 检查是否关闭监听IPv6(如未使用) cat /etc/redis/redis.conf |grep'bind'|grep-v'#' # 检查是否禁用THP(透明大页) cat /sys/kernel/mm/transparent_hugepage/enabled # 应为[never] # 检查是否设置内存上限 redis-cli CONFIG GET maxmemory redis-cli CONFIG GET maxmemory-policy # 应为volatile-lru或allkeys-lru

三、安全审计(8.1.4.3)

3.1 日志配置与审计

控制项

测评命令

达标判据

日志启用

redis-cli CONFIG GET loglevel

notice或verbose

日志文件路径

redis-cli CONFIG GET logfile

非空,非stdout

慢查询日志

redis-cli CONFIG GET slowlog-log-slower-than

≤10000微秒(10ms)

审计日志(Redis 6.0+)

redis-cli ACL LOG

启用并持久化

Redis日志核查:

# 查看日志级别 redis-cli CONFIG GET loglevel # 可选:debug, verbose, notice, warning # 查看日志文件位置 redis-cli CONFIG GET logfile # 查看日志内容(检查异常) tail-n100 /var/log/redis/redis-server.log |grep-i-E'error|warning|failed|attack' # 查看日志文件权限 ls-la /var/log/redis/ stat-c'%a %U:%G' /var/log/redis/redis-server.log # 应为640 redis:redis # 查看慢查询日志配置 redis-cli CONFIG GET slowlog-log-slower-than # 单位:微秒 redis-cli CONFIG GET slowlog-max-len # 建议≥128 # 查看慢查询记录(潜在攻击或性能问题) redis-cli SLOWLOG GET 20 # 查看ACL审计日志(Redis 6.0+) redis-cli ACL LOG 50|head-50 # 重置慢查询日志(测试后清理) redis-cli SLOWLOG RESET

3.2 持久化与备份审计

# 查看RDB持久化配置 redis-cli CONFIG GET save # 应包含类似:900 1 300 10 60 10000(自动保存策略) # 查看AOF持久化配置 redis-cli CONFIG GET appendonly redis-cli CONFIG GET appendfsync # 应为everysec或always # 查看RDB文件路径及权限 redis-cli CONFIG GET dir redis-cli CONFIG GET dbfilename ls-la /var/lib/redis/ # RDB文件权限应为640 redis:redis # 查看AOF文件 redis-cli CONFIG GET appendfilename ls-la /var/lib/redis/*.aof # 检查备份策略 crontab-l|grep-i redis ls-la /backup/redis/ 2>/dev/null # 查看最后一次持久化时间 redis-cli INFO persistence |grep-E'rdb_last_save_time|aof_last_write_status' date-d @$(redis-cli INFO persistence |grep rdb_last_save_time |cut -d: -f2)

四、入侵防范(8.1.4.4)

4.1 服务加固与漏洞修复

控制项

测评命令

达标判据

版本检查

redis-cli INFO server

使用6.0+版本,非EOL版本

安全补丁

`redis-cli INFO server

grep redis_version`

当前最新稳定版

危险命令禁用

cat /etc/redis/redis.conf | grep rename-command

FLUSHALL/FLUSHDB/CONFIG等已禁用

内存限制

redis-cli CONFIG GET maxmemory

设置为物理内存的70-80%

Redis加固核查:

# 查看Redis版本(确认非漏洞版本) redis-cli INFO server |grep redis_version redis-cli INFO server |grep redis_git_sha1 # 检查已知漏洞版本(示例) REDIS_VER=$(redis-cli INFO server |grep redis_version |cut -d: -f2|tr-d'\r') echo"当前版本: $REDIS_VER" # 高危版本:3.2.0-3.2.4(CVE-2016-8339)、4.0.0-4.0.10、5.0.0-5.0.3等 # 检查是否运行在root用户下 ps aux |grep redis-server |grep-vgrep # 应为redis或专用用户,绝不能是root # 检查配置文件权限 stat-c'%a %U:%G' /etc/redis/redis.conf # 应为640 redis:redis # 检查数据目录权限 stat-c'%a %U:%G' /var/lib/redis/ # 应为750 redis:redis # 检查是否启用内存淘汰策略 redis-cli CONFIG GET maxmemory-policy # 生产环境应为volatile-lru或allkeys-lru,不能是noeviction # 检查是否启用Lazy Free(避免阻塞) redis-cli CONFIG GET lazyfree-lazy-eviction redis-cli CONFIG GET lazyfree-lazy-expire # 建议yes

4.2 网络安全防护

# 检查防火墙规则(应限制访问源IP) iptables -L-n-v|grep6379 firewall-cmd --zone=internal --list-ports # CentOS/RHEL ufw status numbered |grep6379# Ubuntu # 检查是否使用VPN/专线访问 netstat-tn|grep6379|awk'{print $5}'|cut -d: -f1|sort|uniq-c|sort-rn # 检查是否启用TCP backlog redis-cli CONFIG GET tcp-backlog # 建议511或更高 # 检查是否禁用TCP_NODELAY(根据业务) redis-cli CONFIG GET tcp-nodelay # 默认yes,高频小数据包场景建议no # 检查是否启用客户端输出缓冲区限制 redis-cli CONFIG GET client-output-buffer-limit # 应设置normal slave pubsub三类限制

五、恶意代码防范(8.1.4.5)

控制项

测评命令

达标判据

文件完整性

md5sum /usr/bin/redis-server

与官方发布值比对

模块安全

redis-cli MODULE LIST

仅加载可信模块

数据文件扫描

clamscan /var/lib/redis/

定期扫描

Redis恶意代码防范核查:

# 检查已加载模块(防止恶意模块) redis-cli MODULE LIST # 检查模块路径(应限制加载路径) cat /etc/redis/redis.conf |grep-i'loadmodule' # 验证Redis二进制文件完整性 md5sum /usr/bin/redis-server sha256sum /usr/bin/redis-server # 与官方发布值比对:https://download.redis.io/releases/ # 检查数据文件是否被篡改(RDB/AOF) md5sum /var/lib/redis/dump.rdb ls-la /var/lib/redis/ |grep-E'dump.rdb|appendonly.aof' # 使用杀毒软件扫描数据目录 clamscan -r /var/lib/redis/ 2>/dev/null ||echo"ClamAV未安装" # 检查是否启用病毒扫描后置处理(如有) cat /etc/redis/redis.conf |grep-i'notify'

六、可信验证(8.1.4.6)

控制项

测评命令

达标判据

启动文件完整性

debsums redis-server

rpm -V redis

无文件被篡改

配置签名验证

gpg --verify redis.tar.gz.asc

官方签名验证通过

运行时完整性

ps aux | grep redis

进程哈希与安装包一致

Redis可信验证核查:

# 验证安装包完整性(Debian/Ubuntu) debsums -s redis-server 2>/dev/null ||echo"debsums未安装或包未校验" # 验证安装包完整性(RHEL/CentOS) rpm-V redis 2>/dev/null ||echo"验证失败或未安装" # 检查Redis二进制文件签名(如从源码编译) which redis-server file /usr/bin/redis-server # 验证配置文件未被篡改(对比基线) cat /etc/redis/redis.conf | md5sum # 与基线配置文件比对 # 检查是否使用可信源安装 apt-cache policy redis-server # Debian/Ubuntu yum info redis # RHEL/CentOS # 检查是否启用安全启动(Secure Boot)相关 mokutil --sb-state 2>/dev/null

七、数据备份与恢复(8.1.4.9)

控制项

测评命令

达标判据

RDB自动备份

cat /etc/cron.d/redis-backup

每日/每小时自动备份

AOF持久化

redis-cli CONFIG GET appendonly

yes(开启AOF)

异地备份

ls -la /backup/redis/

存在异地备份

恢复测试

redis-check-rdb /backup/dump.rdb

备份文件可正常校验

Redis备份与恢复核查:

# 查看持久化配置 redis-cli INFO persistence # 手动触发RDB备份 redis-cli BGSAVE redis-cli LASTSAVE # 查看最后一次保存时间戳 date-d @$(redis-cli LASTSAVE) # 检查RDB文件完整性 redis-check-rdb /var/lib/redis/dump.rdb echo$?# 应为0 # 检查AOF文件完整性 redis-check-aof /var/lib/redis/appendonly.aof echo$?# 应为0 # 查看备份脚本 cat /etc/cron.d/redis-backup 2>/dev/null ||crontab-l|grep redis # 检查备份目录及保留策略 ls-la /backup/redis/ 2>/dev/null |head-10 find /backup/redis/ -name"*.rdb"-mtime +7 # 检查7天前备份是否清理 # 测试恢复流程(在测试环境) # cp /backup/redis/dump-$(date +%F).rdb /var/lib/redis/dump.rdb # redis-cli CONFIG SET dir /var/lib/redis # redis-cli DEBUG RELOAD

八、高可用与集群安全(扩展)

8.1 Redis Sentinel高可用

# 查看Sentinel配置 cat /etc/redis/sentinel.conf |grep-E'^(sentinel|bind|port)' # 检查Sentinel密码 redis-cli -p26379 INFO sentinel redis-cli -p26379 SENTINEL masters # 检查Sentinel自动故障转移 redis-cli -p26379 SENTINEL get-master-addr-by-name mymaster # 查看Sentinel日志 tail-n50 /var/log/redis/redis-sentinel.log

8.2 Redis Cluster集群

# 查看集群节点 redis-cli CLUSTER NODES # 检查集群状态 redis-cli CLUSTER INFO |grep-E'cluster_state|cluster_slots_assigned' # 查看数据分布 redis-cli CLUSTER SLOTS |head-20 # 检查集群密码(所有节点应一致) fornodein$(redis-cli CLUSTER NODES |awk'{print $2}'|cut -d: -f1|sort|uniq);do echo"=== $node ===" redis-cli -h$node CONFIG GET requirepass done

一键巡检脚本(Redis)

#!/bin/bash # Redis 等保三级一键巡检脚本 # 适用:Redis 6.x / 7.x # 执行用户:root 或 redis用户 echo"===== 1 身份鉴别 =====" echo"--- 密码认证配置 ---" redis-cli CONFIG GET requirepass echo"--- 绑定地址 ---" redis-cli CONFIG GET bind echo"--- 端口配置 ---" redis-cli CONFIG GET port echo"--- 保护模式 ---" redis-cli CONFIG GET protected-mode echo"--- 连接超时 ---" redis-cli CONFIG GET timeout echo"" echo"===== 2 访问控制 =====" echo"--- ACL用户列表(Redis 6.0+)---" redis-cli ACL USERS 2>/dev/null ||echo"Redis版本低于6.0,未启用ACL" echo"--- 危险命令重命名 ---" cat /etc/redis/redis.conf 2>/dev/null |grep'rename-command'||echo"未配置rename-command" echo"--- 当前连接数 ---" redis-cli INFO clients |grep connected_clients echo"" echo"===== 3 安全审计 =====" echo"--- 日志级别 ---" redis-cli CONFIG GET loglevel echo"--- 日志文件 ---" redis-cli CONFIG GET logfile echo"--- 慢查询配置 ---" redis-cli CONFIG GET slowlog-log-slower-than redis-cli SLOWLOG GET 52>/dev/null |head-10 echo"--- ACL审计日志(6.0+)---" redis-cli ACL LOG 52>/dev/null |head-10||echo"未启用ACL或版本过低" echo"" echo"===== 4 入侵防范 =====" echo"--- Redis版本 ---" redis-cli INFO server |grep redis_version echo"--- 运行用户 ---" ps aux |grep redis-server |grep-vgrep|awk'{print $1}'|sort|uniq echo"--- 内存限制 ---" redis-cli CONFIG GET maxmemory redis-cli CONFIG GET maxmemory-policy echo"--- 危险命令检查 ---" cat /etc/redis/redis.conf 2>/dev/null |grep-E'rename-command (FLUSHALL|FLUSHDB|CONFIG|DEBUG)'||echo"未禁用高危命令" echo"" echo"===== 5 数据备份 =====" echo"--- 持久化配置 ---" redis-cli CONFIG GET save redis-cli CONFIG GET appendonly echo"--- RDB文件状态 ---" redis-cli INFO persistence |grep-E'rdb_last_bgsave_status|rdb_last_save_time' echo"--- 备份文件检查 ---" ls-la /var/lib/redis/dump.rdb 2>/dev/null ||echo"RDB文件不存在" ls-la /backup/redis/ 2>/dev/null |head-5||echo"备份目录不存在" echo"" echo"===== 6 网络安全 =====" echo"--- 监听端口 ---" ss -tulnp|grep redis-server echo"--- 防火墙规则 ---" iptables -L-n|grep63792>/dev/null ||echo"未配置iptables" echo"" echo"===== 巡检完成 ====="

高风险项重点核查清单

检查项

验证命令

不合规判定

整改建议

无密码认证redis-cli CONFIG GET requirepass

返回空字符串

立即设置强密码

绑定0.0.0.0redis-cli CONFIG GET bind

包含0.0.0.0

修改为具体内网IP

高危命令未禁用cat /etc/redis/redis.conf | grep rename-command

未配置FLUSHALL/CONFIG等重命名

添加rename-command禁用或重命名

root用户运行ps aux | grep redis

存在root运行的redis

创建redis专用用户

无持久化配置redis-cli CONFIG GET save

返回空或""

配置RDB自动保存策略

无内存限制redis-cli CONFIG GET maxmemory

返回0

设置maxmemory为物理内存70%

默认端口暴露redis-cli CONFIG GET port

返回6379

修改为非常用端口

无连接超时redis-cli CONFIG GET timeout

返回0

设置300-600秒超时

配置文件权限过宽stat /etc/redis/redis.conf

权限大于644

修改为640

未启用AOFredis-cli CONFIG GET appendonly

返回no

开启AOF持久化


Redis版本差异对照

功能项

Redis 5.x

Redis 6.x

Redis 7.x

ACL支持

完整ACL

增强ACL(selectors)

SSL/TLS

原生支持

增强性能

多线程IO

启用(io-threads)

新协议

RESP2

RESP3可选

RESP3默认

集群管理

手动

手动

自动分片改进

等保合规

需大量加固

基础合规

完整合规

国密支持

需编译

部分支持


测评执行要点

1. 权限要求

  • 所有命令需redis-cli可执行权限

  • 配置文件需rootredis用户权限读取

2. 现场核查重点

  • 密码策略:检查requirepass是否为弱口令(如123456、redis等)

  • 网络隔离:确认Redis仅监听内网IP,无公网暴露

  • 命令禁用:必须禁用FLUSHALLCONFIGDEBUG等高危命令

  • 持久化策略:RDB和AOF至少启用一种,且备份文件权限正确

3. 版本差异注意

  • Redis 6.0以下:无ACL功能,需通过requirepass+ 网络隔离实现访问控制

  • Redis 6.0+:必须使用ACL实现细粒度权限控制,废弃requirepass

  • Redis 7.0+:支持selectors实现更复杂的权限规则


常用命令速查

# 连接与信息 redis-cli -h<host>-p<port>-a<password> INFO redis-cli PING # 测试连通性 redis-cli MONITOR # 实时监控(慎用,性能影响大) # 配置管理 redis-cli CONFIG GET <parameter> redis-cli CONFIG SET <parameter><value> redis-cli CONFIG REWRITE # 持久化当前配置到文件 # 数据操作 redis-cli INFO keyspace # 查看Key统计 redis-cli DBSIZE # 当前库Key数量 redis-cli SCAN 0 COUNT 100# 安全遍历Key(替代KEYS *) # 客户端管理 redis-cli CLIENT LIST # 查看所有连接 redis-cli CLIENT KILL <ip:port># 断开指定连接 redis-cli CLIENT PAUSE 30000# 暂停客户端30秒 # 持久化 redis-cli SAVE # 同步保存RDB(阻塞) redis-cli BGSAVE # 异步保存RDB redis-cli BGREWRITEAOF # 重写AOF文件 # 集群管理 redis-cli CLUSTER NODES redis-cli CLUSTER INFO redis-cli CLUSTER FAILOVER # 手动故障转移

参考标准:GB/T 22239-2019、GB/T 28448-2019、Redis Security Guide、CIS Redis Benchmark

适用版本:Redis 6.2.x / 7.0.x / 7.2.x

验证环境:Standalone / Sentinel / Cluster 模式

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 17:18:42

AI文本与人类写作的鉴别:技术原理、实践方法与未来趋势

AI写作工具正在以惊人的速度进化&#xff0c;从生成营销文案到辅助小说创作&#xff0c;它们似乎无所不能。一个尖锐的问题也随之而来&#xff1a;AI生成的文本&#xff0c;最终会变得与人类写作毫无区别吗&#xff1f;麻省理工学院&#xff08;MIT&#xff09;的计算机科学家R…

作者头像 李华
网站建设 2026/8/22 17:17:43

一物一码赋码设备选型:UV、TIJ、CIJ、TTO、激光五大技术对比与产线适配

一物一码项目的第一步是把可变码打上去&#xff0c;但设备选型常常成为第一个坑&#xff1a;高速线选了慢设备、金属材质选了附着力差的墨水、高粉尘车间选了娇贵机型。本文从工程视角对比五大可变数据赋码技术&#xff0c;给出按材质、速度、成本的选型方法。一、五大技术对比…

作者头像 李华
网站建设 2026/8/22 17:15:58

125、高温/低温/高湿环境下的画质漂移控制——ISP参数补偿与产线验证方法

125、高温/低温/高湿环境下的画质漂移控制——ISP参数补偿与产线验证方法 去年夏天在南方某手机厂做项目,客户反馈一款主打户外拍摄的机型,在正午暴晒下拍出的照片整体偏红,暗部噪点像下雪一样。我们一开始怀疑是镜头镀膜问题,后来发现镜头温度才45度,不至于。真正的问题…

作者头像 李华
网站建设 2026/8/22 17:15:35

XUnity.AutoTranslator 教程:3 分钟给 Unity 游戏装上实时翻译插件

XUnity.AutoTranslator 教程&#xff1a;3 分钟给 Unity 游戏装上实时翻译插件 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator 是一款开源的 Unity 实时翻译插件&#xff0c;能把日…

作者头像 李华