
У меня есть сервер в 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 варианта:
Решите проблему с файлом /etc/securetty, как указано в предыдущем ответе.
Удалите пароль root из /etc/shadow — таким образом никто не сможет войти в систему как root, в то время как задания cron и sudo будут работать.
Второй вариант используется в конфигурации Ubuntu по умолчанию, так как он не нарушает совместимость со старым программным обеспечением из KDE 1/2 age, которое использовало вспомогательные диалоги для получения пароля root и получения привилегий root.
решение3
Вход в физическую консоль контролируется через /etc/securetty
файл. Чтобы запретить пользователю root входить в систему с помощью любой консоли, используйте что-то вроде echo > /etc/securetty
очистки файла (возможно, сначала вам захочется создать резервную копию).
Если вы хотите закрыть только определенные пути, например, входы с использованием последовательной консоли, просто удалите их из файла /etc/securetty
.
После того, как вы это сделаете, вы все равно сможете войти в систему, используясши учетную запись обычного пользователя, а затем использоватьсудочтобы стать пользователем root.