Назад | Перейти на главную страницу

Как полностью отключить root-логин

У меня есть сервер в OVH, который внезапно отключился около 12:10.

Судя по моим логам, хакер зашел с root-пользователем. Это означает, что у него, вероятно, был мой пароль. Я уже сменил этот пароль, но мне все еще интересно, как он вошел.

В sshd_config говорится PermitRootLogin no поэтому обычно они не могли войти через SSH. Таким образом, единственный способ войти как root напрямую - через KVM, и я единственный, кто имеет к нему доступ.

Это журнал того времени, когда он упал. Я мог решить это простым перезапуском. Но как я вижу журналы до этого, кто-то несколько раз заходил в рут. И я почти уверен, что это был не я. Также в тех же журналах говорится, что кто-то входит как root.

Jun 11 12:10:01 vps115965 systemd: Starting Session c3450 of user root.
Jun 11 12:10:01 vps115965 systemd: Started Session c3450 of user root.
Jun 11 21:31:02 vps115965 xinetd[2703]: START: gopher pid=22775 from=::ffff:46.182.107.117

Мой вопрос. Как я могу полностью отключить root-логин. Под этим я подразумеваю только физический логин. cronjobs, запущенные от имени root и sudo (а также sudo -i), должны работать.

На моем сервере работает CentOS 7 (обновления устанавливаются через cronjobs)

Спасибо заранее

Jeroen

РЕДАКТИРОВАТЬ:

Я обнаружил, что вход в систему root осуществляется каждые 10 минут, и я думал, что это должно быть запланировано. Итак, я заглянул в crontab, и похоже, что это делает spamassassin. Поскольку я этим больше не пользуюсь (я использую Norton IS для фильтрации спама), я решил удалить его.

Поскольку у меня нет никаких доказательств того, что меня взломали, я просто думаю о невезении (возможно, Kernel Panic).

Однако я все еще хочу знать свой вопрос о том, как отключить физический rootlogin.

ты можешь использовать passwd -l root из man passwd вы можете увидеть описание этого.

   -l     This  option  is used to lock the specified account and it is available to root only. The locking is performed by rendering the encrypted pass-
          word into an invalid string (by prefixing the encrypted string with an !).

Вход в систему на физической консоли контролируется через /etc/securetty файл. Чтобы предотвратить вход пользователя root с помощью любой консоли, используйте что-то вроде echo > /etc/securetty чтобы очистить файл (вы можете сначала создать резервную копию).

Если вы хотите закрыть только определенные пути, например, логины с помощью последовательной консоли просто удалите их из /etc/securetty файл.

После того, как вы это сделаете, вы все равно можете войти, используя ssh и обычную учетную запись пользователя, а затем используйте судо стать root.

У вас есть 2 варианта:

  1. Решите проблему с помощью файла / etc / securetty, как упоминалось в предыдущем ответе.

  2. Удалите пароль root из / etc / shadow - таким образом никто не сможет войти в систему как root, в то время как cron jobs и sudo будут работать.

Второй вариант используется в конфигурации Ubuntu по умолчанию, так как он не нарушает совместимость со старым программным обеспечением из возраста KDE 1/2, которое использовало вспомогательные диалоги для получения пароля root и получения привилегий root.