redis 安全整改
高危
空口令或弱口令
- 安全风险:简单的redis的密码极容易为攻击者暴破
- 加固建议:打开 redis.conf,找到requirepass并配置高强度的密码,然后重启redis
[root@localhost ~]# cat /data/redis_7100/redis_7100.conf | grep requirepass
requirepass RbY9k2_NBf1QWy8I
禁止监听在公网
- 安全风险:Redis 默认监听在 0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵
- 加固建议:在redis的配置文件redis.conf中配置如下: bind 127.0.0.1 或者 内网IP,然后重启redis
[root@localhost ~]# cat /data/redis_7100/redis_7100.conf | grep bind
#bind 0.0.0.0
bind 192.168.20
禁止使用root用户启动
- 安全风险:使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。redis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的
- 加固建议:使用root以redis用户启动服务,然后重启redis
useradd -s /sbin/nologin -M redis
chown -R redis:redis /data/redis_7100
sudo -u redis /usr/local/bin/redis-server /data/redis_7100/redis_7100.conf
限制配置文件访问权限
- 安全风险:因为redis密码明文存储在配置文件中,禁止不相关的用户访问改配置文件是必要的,设置redis配置文件权限为600
- 加固建议:执行以下命令修改配置文件权限
chmod 600 /data/redis_7100/redis_7100.conf
禁用或者重命名危险命令
- 安全风险:Redis 中线上使用 keys * 命令是非常危险的,应该禁用或者限制使用这些危险的命令,可降低Redis写入文件漏洞的入侵风险
- 加固建议:修改 redis.conf 文件,通过 rename-command 将危险命令重命名,然后重启redis
- 备注:如果的确要用到某个危险命令,可以用一个随机字符串代替,示例用 94b4cf3d836045a1862dc6e7a2c2897f 代替 keys 命令
[root@localhost ~]# cat /data/redis_7100/redis_7100.conf | grep rename
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS "94b4cf3d836045a1862dc6e7a2c2897f"
#rename-command SHUTDOWN ""
#rename-command DEL ""
rename-command EVAL ""
打开保护模式
- 安全风险:redis默认开启保护模式。要是配置里没有指定bind和密码,开启该参数后,redis只能本地访问,拒绝外部访问。
- 加固建议:修改 redis.conf 文件,通过 protected-mode yes 打开保护模式,然后重启redis
[root@localhost ~]# cat /data/redis_7100/redis_7100.conf | grep mode
protected-mode yes
中危
修改默认6379端口
- 安全风险:避免使用熟知的端口,降低被初级扫描的风险
- 加固建议:修改 redis.conf 文件,找到包含port的行,将默认的6379修改为自定义的端口号,然后重启redis
[root@localhost ~]# cat /data/redis_7100/redis_7100.conf | grep port
port 7100