大战在即
有一段时间没有登录服务器了, 发现服务器特别卡,发现有蠕虫病毒,需要自己手动进行处理.
开战
开始向蠕虫病毒宣战.
1, 使用ssh登录服务器ECS, 一卡一卡的;
2,使用top命令查看cpu占用, 如下图, 你看到cpu基本没有空闲, 单cpu的load也达到了2.47, 但是下面的列表中进程列表最大的占用才0.7, 那是哪个进程占用了cpu呢?
3,带着疑问执行了如下命令: ps -aux --sort=-pcpu|head -10, 想查看下占用CPU前10的进程, 但都是正常的进程, 并未发现异常.
4,通过搜索引擎的帮助,得出如下可能的原因: 有进程快速的启动停止, top/ps命令没有捕捉到.
5,开始了使用神器execsnoop捕捉罪犯, 如下图, 很快就定位了. PPID标识启动的进程, PID标识被创建的进程; 然后kill掉调用的进程和被调用的进程即可;
敌人都是狡猾的
好日子没过几天, 服务器又变卡了, 看来除恶务尽. 这次敌人很嚣张, 直接就top出来了.
6,kdevtmpfsi就是挖矿程序.
7, kill-9后安宁了一会儿, kdevtmpfsi又出现了. 猜测存在后台进程一直在拉起kdevtmpfsi. 根据晚上的提示找到kinsing后也kill掉了. 并且把/etc/kinsing, /var/tmp/kinsing, /tmp/kdevtmpfsi都删除了, top终于安稳了;
8,事实证明敌人是狡猾的, 重启ECS后, 又出现了这个情景. 猜测有开机启动项存在. execsnoop也印证了我的猜想. 进程(systemd)不停的在拉起/etc/kinsing, 而/etc/kinsing已经被我删掉了, 所以在不停的重试.
9,定位这个问题以后, 查询资料, 发现systemd会根据几个配置文件来进行开机启动动:
/run/systemd/system/, /etc/systemd/system, /usr/lib/systemd/system; 通过grep终于找到了kinsing的启动文件, 删掉对应的文件.
10,重启,一切都安静了
后续
通过这次实践, 总结了如下几点:
对于redis, mysql等开发端口的时候, 尽量限制ip的使用, 避免被黑;
不能太依赖服务提供商, 还是得理解问题并对症下药;
-
探索出真知;
参考
https://blog.csdn.net/u011410999/article/details/99481853
http://www.brendangregg.com/blog/2014-07-28/execsnoop-for-linux.html
https://blog.csdn.net/wo18237095579/article/details/89376857
留言评论
暂无留言