Redis 未授权访问漏洞,Redis设置认证密码

本文介绍如何通过修改绑定IP、设置访问密码及使用普通用户启动等措施,增强Redis服务的安全性,防止未授权用户直接访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加固建议

防止这个漏洞需要修复以下三处问题 第一: 修改redis绑定的IP 如果只在本机使用redis服务那么只要绑定127.0.0.1 如果其他主机需要访问redis服务那么只绑定客户主机所在网络的接口 最好不要绑定0.0.0.0 另外需要通过主机内置的防火墙如iptables,或者其他外置防火墙禁止非业务主机访问redis服务 第二: 设置访问密码 在 redis.conf 中找到“requirepass”字段,取消注释并在后面填上你需要的密码。 注:修改redis的配置需要重启redis才能生效。 第三: 使用普通用户启动redis,并且禁止该用户启动shell,禁止使用root用户启动redis。

漏洞描述

redis端口对外开放并且没有配置认证选项,并且以root权限运行,未授权用户可直接覆盖/root/.ssh/authorized_keys 上传公钥直接用root账号登陆ssh服务器。

漏洞修复解决:redis 设置认证密码

为redis设置密码:设置客户端连接后进行任何其他指定前需要实用的密码。警告:因为redis速度非常快,所以在一台较好的服务器下,一个外部用户可以在一秒钟进行150k次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。

方法一:

修改密码的方法:

1、只需要在redis的配置文件redis.conf中开启requirepass就可以了。

cd /home/hgaop/test/redis-2.8.19/

vim redis.conf --找到下面这行,把注释去掉,requirepass后面填写需要修改的密码

requirepass mypassword

 

2、重启redis

ps -ef |grep redis --查看redis进程

kill -9 13224 --杀死redis进程

ps -ef |grep redis --确认杀死

./redis-server ../redis.conf --重启redis,指定配置文件

ps -ef |grep redis

root 9309 1 0 15:22 ? 00:00:00 ./redis-server *:6379

root 9727 8627 0 15:28 pts/1 00:00:00 grep redis

/redis-cli -h 127.0.0.1 -p 6379 --不用密码登录测试

127.0.0.1:6379> keys *

(error) NOAUTH Authentication required. --拒绝操作

./redis-cli -h 127.0.0.1 -p 6379 -a aop_redis@68 --加-a用密码登录

127.0.0.1:6379> select 1

OK --修复成功

 

 

方法二:

redis安装过后默认是没有密码的,可以通过配置文件来设置密码。设置密码过后客户端连接服务端就需要密码验证,安全性提高。

可以通过以下命令查看是否设置了密码:

上图返回结果表示密码为空,可以通过以下命令来修改改参数:

设置密码后,需要验证正确密码才能使用客户端,否则会报“ERR operation not permitted”错,无法执行命令。

通过auth命令验证密码。基本语法:

127.0.0.1:6379> AUTH password

实例:

OK,密码设置验证成功。

 

### Redis 未授权访问漏洞解决方案与预防方法 #### 检测 Redis 未授权访问漏洞 为了有效检测 Redis 实例是否存在未授权访问漏洞,可以采取以下措施: - **网络扫描工具**:使用 Nmap 或其他类似的网络安全扫描工具来识别开放的 Redis 端口,默认情况下为 6379。如果此端口对外网可见,则可能存在风险[^1]。 - **尝试连接测试**:通过命令行客户端或其他编程接口直接向目标 IP 地址发送请求并接收响应数据包;若能成功获取到服务器返回的信息而无需身份验证,则说明存在安全隐患。 ```bash redis-cli -h <target_ip> ``` #### 利用 Redis 未授权访问漏洞的风险评估 一旦确认了 Redis 存在一个可被外部访问且不需要认证就能操作的情况,攻击者可能会执行如下恶意行为: - 获取敏感信息:读取配置文件、数据库备份等重要资料; - 修改键值对内容:篡改业务逻辑所需的数据存储结构; - 执行任意代码:当启用了 Lua 脚本支持功能时,可能允许远程执行系统级指令; - 进一步渗透内网环境:作为跳板机进一步探索内部资源和服务。 这些潜在威胁严重违反了信息安全原则中的保密性和完整性要求,并可能导致严重的经济损失和社会影响。 #### 解决方案与防护策略 针对上述提到的安全隐患,建议实施以下改进措施以增强系统的安全性: - **设置密码保护机制**:修改 `requirepass` 参数指定一个强健复杂的字符串作为登录凭证,在每次发起请求之前都需要提供正确的凭据才能继续交互过程。 ```conf requirepass your_strong_password_here ``` - **绑定本地地址监听**:除非确实有必要让公网能够触及到 Redis 服务实例,否则应当将其限定于仅限局域网内的特定主机之间通信,即把 bind 配置项设为空白或 localhost 即可实现这一目的。 ```conf bind 127.0.0.1 ::1 ``` - **启用防火墙规则控制流量进出方向**:借助 iptables/AWS Security Groups 等手段严格限制哪些源IP范围才具备合法权限去接触Redis进程所占用的那个TCP端口号上的套接字对象。 - **定期审查日志记录情况**:开启慢查询日志以及常规的操作历史追踪特性有助于及时发现异常活动迹象以便快速做出反应处理。 - **更新至最新稳定版软件发行版本**:官方团队会持续不断地修复已知缺陷和优化性能表现,因此保持应用程序处于最新的状态对于维护整体架构稳健至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值