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配置截图如下:


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


浙公网安备 33010602011771号