Итак, я проверил сервер через некоторое время, не глядя на него, и запустил 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
Что это? Я погуглил, что такое / bin / login -p -
, но получил информацию только о -
. Как корень вошел в систему?
Одна тревожная возможность заключается в том, что кто-то вошел в систему как 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-доступ, просто невозможно быть уверенным, что он не сделал что-то плохое в противном случае.
После обдумывания ответа @Terdons и для будущих зрителей, я обнаружил, что TTY
- это экран, к которому он прикреплен в PTS/<номер>
и в моем случае, Я использовал KVM браузера провайдера, который является tty1
(нет экрана, остаётся живым), и проблема была в том, что убийство браузера не убивало KVM соединение внутри сервера.
Если запустить watch w
и снова войти на корневой сервер через мой KVM (внутренний доступ не требует 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