Redis 4.0.9自动生成密钥清空数据,持久化配置修改无效求助
你的Redis遭遇了恶意攻击,不是自动创建键!
首先明确:那些Backup1、Backup2、Backup3键不是Redis自动生成的,这是典型的针对未正确配置的Redis的恶意攻击——攻击者通过未授权访问入侵你的Redis实例,清空数据并植入了恶意定时任务脚本(从Backup1的值就能看出来,它是一个crontab任务,会下载并执行恶意脚本)。
紧急处理步骤
- 立刻停止Redis服务:避免攻击者继续操作你的实例,执行命令:
redis-cli shutdown(如果设置了密码,需要先认证)。 - 清理服务器上的恶意脚本:根据
Backup1里的命令,攻击者会在当前目录生成.cmd文件,找到并删除它;同时用top、ps aux命令排查服务器上的可疑进程(比如挖矿进程),发现后直接终止。 - 排查攻击入口:
- 检查你的Redis是否绑定了
0.0.0.0(允许所有IP访问)且没有设置密码,或者密码过于简单; - 确认
protected-mode是否关闭(Redis默认开启,关闭后会暴露在公网); - 查看服务器防火墙,是否对外开放了Redis默认的6379端口。
- 检查你的Redis是否绑定了
修复Redis并恢复安全
- 重新配置Redis的安全参数(修改
redis.conf文件,确保重启后生效):- 设置
bind 127.0.0.1(仅允许本地访问,如果需要远程连接,指定可信IP,比如bind 127.0.0.1 192.168.1.100); - 启用保护模式:
protected-mode yes; - 设置强密码:
requirepass 你的复杂密码(包含大小写、数字、特殊字符); - 如果你不需要持久化,
save ""和appendonly no是正确的,但要确保修改配置后重启Redis,动态修改的配置在重启后会失效,而且攻击者可能已经篡改了你的运行时配置。
- 设置
- 恢复数据:如果之前有干净的Redis持久化备份(RDB/AOF文件),可以用备份恢复;如果没有备份,被清空的数据大概率无法找回。
- 升级Redis版本:你使用的4.0.9是比较旧的版本,存在一些已知漏洞,建议升级到最新的稳定版(比如6.x或7.x系列),修复安全隐患。
为什么设置持久化无效?
你设置save ""和appendonly no是关闭数据持久化,但攻击者是通过实时的未授权Redis命令直接清空数据、写入恶意键,这个操作和持久化无关——持久化只是控制数据是否保存到磁盘,阻止不了攻击者在线操作你的Redis实例。
后续防护建议
- 不要将Redis端口(默认6379)暴露在公网,必须远程连接时,使用SSH隧道、VPN或者防火墙限制仅可信IP访问;
- 不要用root用户运行Redis,创建一个低权限的专用用户;
- 定期查看Redis日志(默认是
/var/log/redis/redis-server.log),监控异常操作; - 启用Redis的日志审计功能,记录所有命令操作,方便后续排查。
内容的提问来源于stack exchange,提问作者Thanh Thai Nguyen
相关产品推荐
相关产品推荐

