首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Reids安全加固

一.简介

Redis 因配置不当存在未授权访问漏洞,可以被攻击者恶意利用。

在特定条件下,如果Redis以root身份运行,黑客可以给root账号写入SSH公钥文件,直接通过 SSH 登录受害服务器,从而获取服务器权限和数据。一旦入侵成功,攻击者可直接添加账号用于 SSH 远程登录控制服务器,给用户的Redis运行环境以及Linux主机带来安全风险,如删除、泄露或加密重要数据,引发勒索事件等。

在 Redis 客户端,测试Redis是否设置密码:

  1. [root@linkops ~]# redis-cli -h 10.16.10.2
  2. redis 10.16.10.2:6379> keys *
  3. 1) "1"`

从登录结果可以看出,该 Redis 服务对公网开放,且未启用认证

二.加固方案

1.禁止监听在公网 指定 Redis 服务使用的网卡

默认情况下,Redis监听127.0.0.1。如果仅仅是本地通信,请确保监听在本地。

这种方式可以在一定程度上缓解 Redis 未授权访问的风险(例外情况下,如果 Redis 以 root 用户运行,攻击者借助已有的 webshell,就可以利用该Redis来反弹shell以实现提权)。

代码语言:javascript
复制
[root@linkops ~]# vim redis.confbind 192.168.1.100 10.0.0.1

每次修改配置文件,都要重启redis才会加载最新配置。

2.修改默认6379端口

代码语言:javascript
复制
[root@linkops ~]#port 6377

3.设置防火墙策略 如果正常业务中 Redis 服务需要被其他服务器来访问,可以通过iptables策略,仅允许指定的IP来访问Redis服务。 iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT

4.账号与认证 在 redis.conf 中找到 requirepass 字段,去掉其注释,并在后面填上需要的密码。Redis 客户端也需要使用此密码来访问 Redis 服务。

代码语言:javascript
复制
[root@linkops ~]# vim redis.confrequirepass www.dgstack.cn12332@@#$%@!%

5.服务运行权限最小化,使用root切换到redis用户启动服务

代码语言:javascript
复制
[root@linkops ~]# useradd -s /sbin/nolog -M redis[root@linkops ~]# su redis[root@linkops ~]# sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf

6.禁用或者重命名危险命令 Redis无权限分离,其管理员账号和普通账号无明显区分。攻击者登录后可执行任意操作,因此需要隐藏以下重要命令: FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL

另外,在Redis 2.8.1及Redis 3.x(低于 3.0.2)版本下存在EVAL 沙箱逃逸漏洞,攻击者可通过该漏洞执行任意Lua代码。

xiug修改配置将设置为空,即禁用该命令;也可设置为一些复杂的、难以猜测的名字。

代码语言:javascript
复制
[root@linkops ~]# vim config/flushdb/flushallrename-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

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

代码语言:javascript
复制
[root@linkops ~]# vim redis.confprotected-mode yes

8.安全补丁 定期关注最新软件版本,并及时升级Redis到最新版,防止新漏洞被恶意利用。

下一篇
举报
领券