Как полностью отключить root-вход

Как полностью отключить root-вход

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

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

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

Это журнал на момент его падения. Я мог бы решить это простым перезапуском. Но как я вижу в журналах до этого, кто-то несколько раз входил как root. И я почти уверен, что это был не я. Также те же журналы говорят, что продолжается, что кто-то входит как 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-login. Я имею в виду только физический вход. cronjobs, запущенные от имени root и sudo (а также sudo -i), должны работать.

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

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

Йерун

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

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

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

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

решение1

вы можете использовать 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 !).

решение2

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

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

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

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

решение3

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

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

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

Связанный контент