忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 3415 | 回复: 0

服务器Redis未授权访问漏洞说明 [复制链接]

论坛徽章:
0
发表于 2018-03-06 16:41 |显示全部楼层
QQ图片20180306163956.png
一、漏洞情况:
部分服务器上的Redis 绑定在0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),且已root身份运行,该端口可以通过公网直接访问,如果没有采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,将会导致 Redis 服务直接暴露在公网上,可能造成其他用户可以直接在非授权情况 下直接访问Redis服务并进行相关操作。

二、漏洞主要危害:
1、获取数据库敏感信息、篡改、删除数据;
2、写入ssh公钥,获取操作系统权限
3、写入反弹shell、webshell、挖矿程序等

三、修复方案:
1、 禁止一些高危命令(重启redis才能生效)
修改 redis.conf 文件,禁用远程修改 DB 文件地址
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
或者通过修改redis.conf文件,改变这些高危命令的名称
rename-command FLUSHALL "name1"
rename-command CONFIG "name2"
rename-command EVAL "name3"

2、以低权限运行 Redis 服务(重启redis才能生效)
为 Redis 服务创建单独的用户和家目录,并且配置禁止登陆

groupadd -r redis && useradd -r -g redis redis

3、为 Redis 添加密码验证(重启redis才能生效)
修改 redis.conf 文件,添加

requirepass mypassword
(注意redis不要用-a参数,明文输入密码,连接后使用auth认证)

4、禁止外网访问 Redis(重启redis才能生效)
修改 redis.conf 文件,添加或修改,使得 Redis 服务只在当前主机可用

bind 127.0.0.1
在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错

5、修改默认端口
修改配置文件redis.conf

Port 6379
默认端口是6379,可以改变成其他端口(不要冲突就好)

6、保证 authorized_keys 文件的安全
为了保证安全,您应该阻止其他用户添加新的公钥。

将 authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限:
chmod 400 ~/.ssh/authorized_keys
为保证 authorized_keys 的权限不会被改掉,您还需要设置该文件的 immutable 位权限:
chattr +i ~/.ssh/authorized_keys
然而,用户还可以重命名 ~/.ssh,然后新建新的 ~/.ssh 目录和 authorized_keys 文件。要避免这种情况,需要设置 ~./ssh 的 immutable 权限:
chattr +i ~/.ssh

7、设置防火墙策略  
如果正常业务中Redis服务需要被其他服务器来访问,可以设置iptables策略仅允许指定的IP来访问Redis服务。

8、如何选用安全性比较高的服务器,可以参考下(www.deshengidc.cn)佛山德胜数据中心可以推荐

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP