阿里云安全基线之Redis

本文记录阿里云 Redis 安全基线配置。

禁止使用root用户启动

描述

使用 root 权限去运行网络服务是比较有风险的(nginx 和 apache 都是有独立的 work 用户,而 redis 没有)。redis crackit 漏洞就是利用 root 用户的权限来替换或者增加 authorized_keys,来获取 root 登录权限的

加固建议

使用 root 切换到 redis 用户启动服务:

useradd -s /sbin/nolog -M redis 
sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf 

操作时建议做好记录或备份

补充

使用非 root 用户,需要解决权限问题,配置文件中指定的 dir /rbddir 需要 redis 用户有读写权限。另外 pidfile 也需要读写权限。

限制redis 配置文件访问权限

描述

因为 redis 密码明文存储在配置文件中,禁止不相关的用户访问改配置文件是必要的,设置 redis 配置文件权限为 600,

加固建议

执行以下命令修改配置文件权限:

chmod 600 /<filepath>/redis.conf

操作时建议做好记录或备份

补充

需要注意 redis 启动用户能够读取 redis.conf

修改默认6379端口

描述

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

加固建议

编辑文件 redis 的配置文件 redis.conf,找到包含 port 的行,将默认的 6379 修改为自定义的端口号,然后重启 redis

操作时建议做好记录或备份

禁用或者重命名危险命令

描述

Redis 中线上使用 keys * 命令,也是非常危险的。因此线上的 Redis 必须考虑禁用一些危险的命令,或者尽量避免谁都可以使用这些命令,Redis 没有完整的管理系统,但是也提供了一些方案。

加固建议

修改 redis.conf 文件,添加

rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command EVAL ""

然后重启 redis。 重命名为 "" 代表禁用命令,如想保留命令,可以重命名为不可猜测的字符串,如: rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC

操作时建议做好记录或备份

禁止监听在公网

描述

Redis 监听在 0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵。

加固建议

在 redis 的配置文件 redis.conf 中配置如下: bind 127.0.0.1 或者内网 IP,然后重启 redis

操作时建议做好记录或备份

打开保护模式

描述

redis 默认开启保护模式。要是配置里没有指定 bind 和密码,开启该参数后,redis 只能本地访问,拒绝外部访问。

加固建议

redis.conf 安全设置:

# 打开保护模式 
protected-mode yes

操作时建议做好记录或备份

发表回复

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