记录一次服务器被入侵的经历
起因
一天,我登上服务器的时候发现cpu一直被占用50%,自己运行的占用cpu的进程还会被kill,使用top命令查看后可以发现有一个叫做-bash的命令在占用大量的cpu资源,而且运行的身份还是root,十分可疑,不过此时我还并不能确定服务器是否被入侵,手动kill掉该进程之后,过一段时间又会重新运行,重启之后仍会重新运行,此时猜测服务器是被人入侵挖矿了。
解决过程
我也是第一次遇到这个问题,一开始走了很多弯路,网上虽然也有其他人介绍服务器被挖矿的解决方案,但是每个挖矿程序的具体情况都不一样,忙了两天也没解决,最后只能借助于Linux的杀毒软件ClamAV。
使用 sudo apt install clamav
安装杀毒软件。
使用 sudo clamav -r -i 目录名
进行扫描,由于全盘扫描非常耗费时间,建议优先扫描关键目录:/bin、 /usr/bin、 /sys
。
通过扫描找到了挖矿程序/sys/sysdrr,然后上网搜索了关键字,发现CSDN的一篇博客和我遇到的问题是一样的,参考链接如下:
按照博客中的方法删除掉挖矿程序和相关的定时脚本,服务器恢复正常。
漏洞排查
删除挖矿程序之后,为了安全起见,我使用clamav对服务器全盘进行了扫描,发现在一个服务器提供服务的docker容器的相关文件里发现了挖矿代码,紧急停止并删除相关的容器和文件,目前推测是容器的密码过于简单,导致容器最先被入侵,进而入侵整个服务器。
总结
- 虽然Linux系统很安全,一般不需要杀毒软件,但是服务器出问题时使用杀毒软件比自己盲目排查要有效很多。
- 使用docker的时候一定要注意安全,因为docker开放的端口是可以绕过防火墙的。
- 服务器的密码要具有一定的复杂性,不能过于简单。
- 为了安全要开启Ubuntu默认关闭的防火墙,ssh服务不要使用默认端口。