服务器由于redis漏洞导致被挖矿怎么办?

最近在使用阿里云的云服务器时,经常会收到下面这种信息。

云盾态势感知系统检测到您的服务器:x.x.x.x出现了紧急安全事件:Redis蠕虫对外发起网络扫描 ,建议您立即登录云盾-态势感知控制台查看详情和处理。

您的云服务器(x.x.x.x)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(TCP:6379)的访问,阻断预计将在2018-08-06 16:01:23时间内结束,请及时进行安全自查。

于是登录查看了监控,明明没起什么服务,但是cpu使用率却飙到%90多,网络消耗也一直有。查看了cpu的使用情况:

可以看到有两个进程占用了几乎全部的cpu,我们把它kill掉,然后把tmp下的两个文件也rm掉,cpu使用率马上就下降了,但是不一会cpu使用率又上了,Xsheel又卡了。。。看了一下这两个进程居然还在这。

我们先看一下服务器上运行了哪些定时任务:

/etc/crontab

/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本,进入后发现除了有redis aof的数据恢复命令以外,还有两行代码,问题的根源就在这两行上,它会从一个美国的地址下载文件。我们需要把它删了。

 

/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。进入root用户的任务发现有以下任务,果然就是它。

关于定时任务可以查看这篇博文:https://www.cnblogs.com/MrSong97/p/12626284.html

 

现在已经知道问题了,因为redis没有设置密码或密码太过简单缘故,导致被写入密钥,在cron的文件里被写入了命令。

解决方法:

1,redis设置复杂一点的密码,更改默认的端口。

2,服务器设置防火墙,禁用ip

3,清除掉被写入的脚本,或直接停掉cron服务

posted @ 2020-04-03 14:22  小宝先生  阅读(714)  评论(0编辑  收藏  举报