因此,我在一段时间没有查看服务器之后检查了服务器,并运行了以下w
命令:
01:10:46 up 11 days, 2:53, 2 users, load average: 0.00, 0.05, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Tue21 2days 0.74s 0.60s -bash
root pts/0 86.x.xxx.xx 22:18 0.00s 0.28s 0.00s w
我应该是服务器上唯一的一个用户,并且不知道这tty1
是什么或正在做什么,所以我跑去ps -aef --forest | grep bash
发现了这个
root 617 1 0 Aug01 tty1 00:00:00 /bin/login -p --
当我运行kill -9 617
并检查w
它已经消失时:
01:11:18 up 11 days, 2:54, 1 user, load average: 0.12, 0.07, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 86.x.xxx.xx 22:18 5.00s 0.29s 0.00s w
那是什么?我在 Google 上搜索了/bin/login -p --
是什么,但只找到了有关 的信息--
。root 是如何登录的?
答案1
一个令人担忧的可能性是,有人以 root 身份登录。我可以在我的机器上重现非常类似的情况。首先,我通过将其添加到以下内容来启用 root ssh 访问/etc/ssh/sshd_config
:
PermitRootLogin yes
然后重新启动sshd
服务:
sudo service sshd restart
并以root身份登录(注意,我已经在这台机器上启用了root账户,您是否也这样做了?):
ssh root@localhost
现在,当我运行时w
,我看到:
$ w
17:06:36 up 3 min, 2 users, load average: 1.98, 0.97, 0.38
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
terdon :0 17:04 ?xdm? 29.31s 0.01s /usr/lib/gdm-x-s
root pts/3 17:06 24.00s 0.00s 0.00s -bash
至少,您不能排除攻击者获得系统访问权限的可能性。在这种情况下,唯一的解决方案是从备份中恢复或从头开始重新安装。如果有人确实获得了 root 访问权限,那么根本无法确定他们没有做坏事。
答案2
在考虑了@Terdons 的回答之后,为了未来的观众,我发现是TTY
它所连接的屏幕,PTS/<number>
在我的情况下,我正在使用我的提供商浏览器 KVM tty1
(无屏幕,保持活动),问题是杀死浏览器并没有杀死服务器内部的 KVM 连接。
如果通过我的 KVM 运行watch w
并重新登录到根服务器(内部访问不需要 RSA 密钥),我看到:
15:51:54 up 12 days, 17:34, 2 users, load average: 0.04, 0.05, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 15:47 4:33 0.20s 0.07s -bash
root pts/0 xxxxxxxxxx 15:38 4:49 0.26s 0.00s watch w
答对了。如果没有FROM
说明地址(-
),则表示是从服务器进行物理登录。
为了杀死它我做了:
$ ps -aef --forest | grep tty1
root 2355734 1 0 Aug13 tty1 00:00:00 /bin/login -p --
root 2687566 2355734 0 15:47 tty1 00:00:00 \_ -bash
root 2688963 2686083 0 15:54 pts/0 00:00:00 \_ grep --color=auto tty1
$ kill -9 2355734
$ w
15:55:00 up 12 days, 17:37, 1 user, load average: 0.03, 0.03, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 xxxxxxxxx 15:38 4.00s 0.08s 0.01s w