kswapd0进程在CentOS下CPU占用率过高

kswapd0进程在CentOS下CPU占用率过高

  • 问题并不是内存不够那么简单
    • 我自己解决问题的过程记录

问题并不是内存不够那么简单

今早到公司,开晨会,发现华为云上的测试环境应用访问不到了.晨会开完后,就连上了测试环境进行问题排查.发现了一个名为 kswapd0 的进程,CPU占用率300%多…
kswapd0进程在CentOS下CPU占用率过高_第1张图片
其实这个问题前些天也出现过,当时在CSDN中找答案,发现都说是内存不够用了的问题. 当时有过怀疑是木马或者病毒,但没有深究. 因为那段时间,服务器密码也不知道是被谁改了,出过一些问题…

但这次又是这个进程在作妖,我就意识到了问题肯定就不是内存不够杀掉进程那么简单了. 毕竟这台服务器4核心还有16G的内存,平时占用5G都到不了,即使CPU300%多,内存也还是足够的! 于是就准备根据这个 kswapd0 进程开始深挖,在CSDN上找了N多资料…最终在一个评论下根据连接找到了一些线索.

这里贴上链接:https://blog.csdn.net/jzz601264258/article/details/105850816 (这是我找到的第一个关于这个进程是木马的一些描述和解决方案)
后面还有
https://blog.csdn.net/adsszl_no_one/article/details/105344467
以及腾讯电脑管家的文章:
https://www.freebuf.com/articles/network/205384.html

我自己解决问题的过程记录

因为当时测试小姐姐需要开始今天的测试工作,所以我上来就先把 kswapd0 进程干掉了(不干掉的话,应用虽然能起来,但是访问直接报500).然后重启完应用后,再查的上面那些资料

这里建议先找到木马所在的位置然后再干掉进程
(命令里面的括号都只是做一个补充说明,并不是需要输入的命令)

0. top
当时top命令查看到的信息
kswapd0进程在CentOS下CPU占用率过高_第2张图片

1. ps -ef|grep kswapd0
执行完后可以看到进程的pid,由于我这上来就直接把进程给干掉了…所以没有截图,我用rsync的代替吧,道理一样的
这里可以看到pid 19637,以及程序所在的目录信息 /tmp/.X25-unix
这里可以看到rsync 的 pid 为 19637,以及程序所在的目录信为 /tmp/.X25-unix

2. cd /tmp/.X25-unix
kswapd0进程在CentOS下CPU占用率过高_第3张图片
找到位置后就好办了,开始一个个的关掉进程

3. kill -9 9939(kswapd0的PID)
结束 kswapd0 程序运行,这里可以参考第一步中 top 命令查看到的PID

4. kill -9 19637(rsync的PID)
通过上面链接可以知道rsync这个工具也是被挖矿程序所利用的,所以也直接kill

进程关掉后,CPU占用率就下来了.

5. rm -rf /tmp/.X25-unix
接下来再来删除挖矿程序所在的 .X25-unix 这个文件夹
(rm -rf 命令使用的时候一定小心! 按回车前,心里默念三遍Hello world,每念一遍就确认一遍,千万别把这命令给整错了!!)

6. crontab -l
因为前些天这个进程我关掉过,然后这次又冒出来了,当时我猜测应该是有定时任务的,参考上面资料也确实有定时任务,使用 crontab -l 查看定时任务
kswapd0进程在CentOS下CPU占用率过高_第4张图片
7. cd /root/.configrc
可以看到定时任务除了 /tmp/.X25-unix 目录外,还有一个地方目录很醒目,那就是 /root/.configrc
kswapd0进程在CentOS下CPU占用率过高_第5张图片
kswapd0进程在CentOS下CPU占用率过高_第6张图片
看到这个时间… 以及 a 目录下的kswapd0 毫不犹豫直接rm -rf干掉整个**.configrc**目录

8. rm -rf /root/.configrc
删掉**/root/.configrc** 目录,再次提醒!!!(rm -rf 命令使用的时候一定小心! 按回车前,心里默念三遍Hello world,每念一遍就确认一遍,千万别把这命令给整错了!!)

9. find / -name kswapd0
查找,看哪里还有kswapd0的文件,发现 /dev/shm/ 下还有,截图…当时没截…

10. rm -rf /dev/shm/*
删掉 /dev/shm/ 目录下的所有文件

11. corntab -e
程序感觉都找到了并清理干净了,现在就再来处理定时任务吧.
corntab -e编辑 定时任务,输入完回车后,按 i 键,跟vim编辑类似,删掉里面全部内容后, 按 Esc 键,再输入 wd 保存并退出.

12. vi /root/.ssh/authorized_keys
这块找了一些资料说会修改公钥,发现自己文件内容和别人的一模一样,所以,清空里面所有内容后wq保存并退出
参考别人写的一些分析

到这里感觉应该服务器就没什么问题了,但是看腾讯电脑管家那篇文章说的,应该是利用弱口令进行暴力破解控制的服务器.

13.所以最后一步,修改服务器密码,越难越好!

14.关于为什么服务器会被植入木马的一些猜测
第一点就是密码被弱口令暴力破解
但是其实我们这有几台服务器密码都一样的,不应该只有这台被入侵了… 感觉有些不合理.

第二点猜测是redis的原因.
几台服务器密码都是一样的,其他服务器没事,就这台出了问题. 并且从木马执行的命令来看,它关了nginx,tomcat之类的进程,然后重启后启动了redis…
我重启tomcat应用的时候才注意到,redis服务一直是开着的. 所以很有可能跟我redis没设置密码,以及可以被任何公网IP访问到有关.
参考redis bind的误区
去掉 bind 前面的 # 号,启用 bind 127.0.0.1 配置,然后kill掉redis进程,并重启redis服务.

我这里这台测试服务器是华为云上的,实施小伙伴之前在第一次发现密码被改了之后就给22端口加上了一些安全策略,比如22端口只能特定的IP地址才能连接.

这个截图是我自己的账号截的,反正大概就是这个意思,限制能够通过22端口来进行远程控制的IP地址.
kswapd0进程在CentOS下CPU占用率过高_第7张图片
第一篇博客文章,主要用来记录一下自己处理 kswapd0 挖矿程序的一次经历.

你可能感兴趣的:(Linux,linux,centos,服务器,运维)