Redis未授权访问事故记录

文章详细记录了一次游戏服务器Redis数据丢失的问题排查过程,并最终发现是由于Redis配置错误导致背景保存进程异常,进而导致数据丢失,同时揭示了入侵者通过修改Redis配置文件进行攻击的行为。通过分析日志和历史备份文件,确认问题始于4月1日,并成功定位问题原因及入侵手段,最终修复并恢复正常服务。

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

很久之前还分享了一篇Redis 未授权访问配合 SSH key 文件利用分析给运维同事,不想今天居然遇上了,特此记录。

发现问题:公司游戏的韩国版本今天停服更新之后,公会信息都丢失了,一开始以为是公会数量太多,特定数量的下发包也超过了网络层的包大小限制。

跟踪问题:

1.到现网机器上看redis数据,居然查不到公会数据,不过发现redis居然还是绑定的*,不是内网ip(不过介于运维同事说是这一块做了防火墙设置就没有细究)

2.查看gamesvr发现一堆“MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.”,直接查看redis源码,产生这个问题的原因就是background save进程没有正常终止

3.这个问题细分情况:

1)无法fork快照进程

2)磁盘已满,快照进程无法完成写操作

3)快照进程被终止,比如kill

4.查看每一小时的rdb备份文件,发现几天内备份的rdb文件都是4月1日的最后更新时间,推断此问题应该是从4月1号开始就是存在的,扫描日志果然如此,由于小平台的redis报警被屏蔽了,问题存在了几天才被偶然发现

5.redis命令行config get *,查看发现dir变成了‘/root/.ssh’, dbfilename变成了'authorized_keys',还是下一身冷汗,这是被入侵了

解决问题:

1.凑巧的是运维同事在4月1号下午的时候统一更换了ssh key,而后面这位不速之客也没有再重新生成ssh key,应该是以为肉鸡已经捕获

2.修改redis配置,将dir和dbfilename指向真正的数据文件,停服重启gamesvr,公会数据加载正常

3.分析日志生成补偿指令,修正玩家数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值