问题并不是内存不够那么简单
今早到公司,开晨会,发现华为云上的测试环境应用访问不到了.晨会开完后,就连上了测试环境进行问题排查.发现了一个名为 kswapd0 的进程,CPU占用率300%多…
这里贴上链接: (这是我找到的第一个关于这个进程是木马的一些描述和解决方案)
后面还有
以及腾讯电脑管家的文章:
我自己解决问题的过程记录
因为当时测试小姐姐需要开始今天的测试工作,所以我上来就先把 kswapd0 进程干掉了(不干掉的话,应用虽然能起来,但是访问直接报500).然后重启完应用后,再查的上面那些资料
这里建议先找到木马所在的位置然后再干掉进程
(命令里面的括号都只是做一个补充说明,并不是需要输入的命令)
0. top
当时top命令查看到的信息
1. ps -ef|grep kswapd0
执行完后可以看到进程的pid,由于我这上来就直接把进程给干掉了…所以没有截图,我用rsync的代替吧,道理一样的
2. cd /tmp/.X25-unix
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 查看定时任务
9. find / -name kswapd0
查找,看哪里还有kswapd0的文件,发现 /dev/shm/ 下还有,截图…当时没截…
11. crontab -e
程序感觉都找到了并清理干净了,现在就再来处理定时任务吧.
crontab -e编辑 定时任务,输入完回车后,按 i 键,跟vim编辑类似,删掉里面全部内容后, 按 Esc 键,再输入 wd 保存并退出.
12. vi /root/.ssh/authorized_keys
这块找了一些资料说会修改公钥,发现自己文件内容和别人的一模一样,所以,清空里面所有内容后wq保存并退出
到这里感觉应该服务器就没什么问题了,但是看腾讯电脑管家那篇文章说的,应该是利用弱口令进行暴力破解控制的服务器.
13.所以最后一步,修改服务器密码,越难越好!
14.关于为什么服务器会被植入木马的一些猜测
第一点就是密码被弱口令暴力破解
但是其实我们这有几台服务器密码都一样的,不应该只有这台被入侵了… 感觉有些不合理.
第二点猜测是redis的原因.
几台服务器密码都是一样的,其他服务器没事,就这台出了问题. 并且从木马执行的命令来看,它关了nginx,tomcat之类的进程,然后重启后启动了redis…
我重启tomcat应用的时候才注意到,redis服务一直是开着的. 所以很有可能跟我redis没设置密码,以及可以被任何公网IP访问到有关.
参考
去掉 bind 前面的 # 号,启用 bind 127.0.0.1 配置,然后kill掉redis进程,并重启redis服务.