Redis安全规范—-check list.

Redis安全规范—-check list.

1.信任的内网运行,尽量避免有公网访问

2.绑定redis监听的网络接口
如果服务器有多个IP,可限定redis server监听的IP,通过redis配置项bind,可同时绑定多个IP

3.禁止root用户启动redis

4.限制redis文件目录访问权限
设置redis的主目录权限为700,如果redis配置文件独立于redis主目录,权限修过为600,因为redis密码明文存储在配置文件中.

5.避免使用熟知的端口,降低被初级扫描的风险

6.开启redis密码认证,并设置高复杂度密码
redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。
redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为攻击者暴破。
requirepass至少长度20位以上,为方便可使用一个特殊串sha256sum命令生成64位的无特殊字符串。

7.禁用或者重命名危险命令
这个漏洞就利用config/save两个命令完成攻击 。 因redis无用户权限限制,建议危险的命令,使用rename配置项进行禁用或重命名,这样外部不了解重命名规则攻击者,就不能执行这类命令。
以下示例:redis.config文件禁用FLUSHDB、FLUSHALL两个命令;重命名CONFIG、SHUTDOWN命令,添加一个特殊的后缀。 这样redis启动后,只能运行CONFIG_b9fc8327c4dee7命令,不能执行CONFIG命令。
rename-command CONFIG CONFIG_b9fc8327c4dee7
rename-command SHUTDOWN SHUTDOWN_b9fc8327c4dee7
rename-command FLUSHDB “”
rename-command FLUSHALL “”

8.禁止redis中存储敏感的明文数据
Redis设计旨在提供高性能的KV服务,至少目前在权限访问控制和数据持久化方面比较弱化。所以禁止在Redis中存储或缓存敏感的明文数据

9.安全监控
建立蜜罐网络,有攻击尝试时,可及时发现
监控redis安全状态,cmdstat_auth cmdstat_flushdb/flushall监控报警

题外话:

redis cluster不支持密码问题
redis 原生cluster模式最新3.2版本都不支持开启密码认证,导致内网使用只能无密码,只能通过前面其他安全设置来保证内网redis cluster的安全性
针对之前redis版本,默认无bind和密码设置存在很大安全风险,redis 3.2版本提出新特性protected mode,如果redis在启动时,未开启bind和密码设置,只能通过本地回环地址本地访问,如果尝试远程访问redis,会提示一下信息:
DENIED Redis is running protected mode because protected mode is enabled,
no bind address was specified, no authentication password is requested to clients.
In this mode connections are only accepted from the loopback interface.
当然也可直接执行CONFIG SET protected mode no关闭保护模式

此条目发表在DB, Redis分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注