Redis设置密码认证(安全扫描提示Redis未授权访问漏洞)

问题

被安全扫描出Redis未授权访问漏洞。

原因:

Redis当前没有设置密码(password为空)

[redis_conf]  
host = 127.0.0.1  
port = 6379  
db = 0  
password =  # 这里需要设置一个强密码  

解决办法:

在redis配置文件(redis.conf)中修改设置:

1.设置密码认证(与应用配置文件中的密码保持一致)

2.限制监听地址(确保监听本地127.0.0.1)

限制监听127.0.0.1本地地址的原因:

①防止外部直接访问:如果Redis监听0.0.0.0,意味着它会接受来自任何IP地址的连接请求,这样会使redis服务暴露在公网上,成为黑客攻击的目标,未授权访问可能导致数据泄露、数据被篡改或删除。

② 最小权限原则:

如果应用程序和redis在同一台服务器上允许,只需要本地访问,不需要对外提供服务,就不应该开放外部访问,这符合安全的“最小权限原则”。

 

3.我这里的情况是:

宿主机IP是192.168.0.43,主应用程序在宿主机上,主程序需要用到的算法服务使用的是Docker容器(docker容器在宿主机上运行着),它也需要访问宿主机的Redis。所以这种架构,在redis.conf中的bind配置应该再加上宿主机IP。

bind 127.0.0.1 192.168.0.43  

原因如下:

127.0.0.1供宿主机上的主应用程序访问;

192.168.0.43供docker容器访问宿主机redis服务。

在docker容器中连接redis时,需要使用宿主机IP(192.168.0.43),而不是127.0.0.1,因为在容器内127.0.0.1指向的是容器自己。

--------------------------------分割线-----------------------------------

需要修改的完整配置如下:

1./etc/redis/redis.conf:

# 同时监听本地和特定IP  
bind 127.0.0.1 192.168.0.43  

# 必须启用密码保护
requirepass StrongPassword(任何字符串可作为密码,推荐MD5产生的32位字符串,不容易被暴力破解)

# 保持保护模式开启
protected-mode yes  


修改后保存配置文件,再重启 Redis 服务使配置生效:
sudo systemctl restart redis  

2.宿主机上主应用程序的配置(可以使用任意一个地址)

[redis_conf]
host = 127.0.0.1  # 或者用192.168.0.43都可以
port = 6379
db = 0
password = 32e9c64597c305b211be15

3.AI模型检测服务的配置:

[redis_conf]
host = 192.168.0.43
port = 6379
db = 0
password = 32e9c64597c305b211be15

------------------------------------------------分割线------------------------------------------------

redis配置截图如下:

 

 

前面安全信息提示图如下:

 

posted @ 2025-03-04 16:35  Tutu007  阅读(291)  评论(0)    收藏  举报