目录
如何发现
如何排查
1、查看redis内存info memory
2、查看redis命令调用统计情况 info commandstats
3、查看redisAOF操作日志文件。
后果
如何解决
最近在做项目时,不知不觉地发现,redis中的数据怎么总是无缘无故消失,key的过期时间都还没到,就没了。如同一直被flushall的感觉。。。于是,我就开始排查,找出原因,首先就发现了其中的一个redis数据库中,多了4个我没设置添加过的键值,一开始我还以为是redis自己生成的一些自带的键值,就没理它。
docker exec -it redis redis-cli 进入redis客户端,info memory命令查看redis内存使用情况。
其中used_memory表示已使用的内存,used_memory_human表示人性化的数据,这里表示使用了1.28M,所以看不出来是内存不足的问题。
在redis客户端调用info commandstats命令查看redis的命令调用情况。
其中就发现几项让我震惊的数据,红色框内的数据都是非常异常的,就如flushall就调用了28次,而我在使用中一次都没有调用过;以及del、append、sadd等命令的调用次数都是非常可疑的,因此我就开始怀疑我的redis是被人恶意攻击了。
确认被别人攻击了服务器redis,写入了四个脚本,不断调用redis操作命令,包括添加数据和flushall命令。
最直接的后果就是redis的中的数据被全部删除,其次,不断地向redis发起命令,频繁操作数据,容易redis最后扛不住,导致崩溃。
将脚本文件彻底删除,并且为redis设置上访问时权限,必须要通过密码才能访问操作redis。
修改f配置文件,配置上 “requirepass xxxx” 设置密码,保存后需要重启redis服务,之后访问操作redis都需要密码认证了。
本文发布于:2024-01-29 15:10:31,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170651223316160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |