云服务器在部署Hadoop后便被黑了,查看进程发现了kthreaddi占满了CPU。
kill掉这个进程后还会自己重启,猜测是设置了定时启动任务。
查看定时器,查看定时器中的文件,发现文件不存在。再次查看定时任务,发现定时任务中的文件变了。关闭定时任务后还会出现新的定时任务,每次都是不同的目录。
解决方案:
1.执行以下命令,可以看见一个奇怪的进程在监听53421端口,
netstat -ltnp
先把这个进程kill掉。没多久它又会复活,再次kill掉。
kill -9 14714
2.用 du -b [定时任务中的一个文件] 获取到文件的大小。
crontab -l
du -b /usr/local/hadoop/bin/ougglpn
3.查找并删除文件,<find ./ -size 2867172c -type f>用来查找文件, 2867172换成文件实际大小。
find ./ -size 2867172c -type f -exec rm {} ;
4.crontab -l 查看定时任务,如果还有定时任务 crontab -r删除定时任务。
crontab -l
crontab -r
5.kill掉kthreaddi进程。
ps -aux | grep kthreaddi
kill -9 11138
6.如果kthreaddi继续重启,反复执行1,2,3,4即可。
在我删了两三次后,这个kthreaddi依然重启。我便尝试把Hadoop给关掉,再执行一次1,2,3,4步骤,这时用netstat -ltnp查看没有看到奇怪的进程了。我就再执行一次2,3,4步骤,直接重启机器。这时进程中就没有kthreaddi了。
中毒的可能的原因:
- 暴露了常见服务的默认端口,8088(hadoop)
- 带有访问界面的服务地址端口,没有配置密码,安全性极低