生产环境扫描出安全漏洞Redis 未授权访问漏洞【原理扫描】
.
redis bind ip陷阱
1.默认配置
默认不配置, 表示所有地址都能访问到redis
# bind 127.0.0.1
2.仅本机可以访问
bind 127.0.0.1
3.多个ip
bind 127.0.0.1 192.1.17.61
配置多个地址表示为,这个地址可以被其他应用访问到, 而不是应用服务的地址,
这个说起来比较拗口,下面举个例子来说明。
比如说有:
应用A,B,C,D,.....
部署在内网环境,他们需要使用redis服务
(应用服务和redis服务在一个内网)
redis服务启动时,就要将自身服务器所在内网地址暴露
出来。
应用A,B,C,D… 就可以是用访问到redis服务了,如果未配置,则会给出异常Could not connect to Redis at 192.1.17.61:6379: Connection refused
使用客户端连接程序时,./redisCli.sh -h 1921.17.61 -p 6379
,也会爆出同样错误:
这样设置以后,就可以控制住 只有内网的机器能够访问到redis服务了。
但是,若内网的其他任何一台机器被入侵后,redis服务器也是不安全的。
这样我们就要配合给redis服务器添加一段password
requirepass 设置口令
修改redis.conf,重启机器
### 添加如下配置,设置口令
requirepass trump
修改redis配置之后,必须重启后才能生效
redisCli设置口令参数
当redis服务器设置了口令之后,所有的连接程序必须都要添加口令参数,否则就会出现如下的问题:只能连接,但是无权限查看数据
.
需要-a
来添加口令:./redis-cli -h 192.1.17.61 -p 6379 -a trump
java应用添加password
以spring-boot为例,很简单,在配置文件中添加·spring.redis.password`配置信息即可: