удаление `nullok` из system-auth предотвращает любой пароль root

удаление `nullok` из system-auth предотвращает любой пароль root

[ это продолжение моего поста на ServerFault :https://serverfault.com/questions/661136/root-accepts-any-password-how-to-change-to-a-real-password]

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

Раньше (более 10 лет назад) это не было проблемой, поскольку система работала за модемом с коммутируемой линией и собственной аутентификацией... но с недавних пор к системе можно получить доступ через публичный IP-адрес.

Удивительно, но до прошлой недели никто не озаботился портом SSH.

Кто-то (китайский IP-адрес) вошел в систему как root, изменил некоторые системные настройки и вышел из системы.

Я восстановил систему из резервной копии и изменил порт SSH так, чтобы к ней больше нельзя было получить доступ через модем ADSL, чтобы дать себе время решить эту проблему.

Проблема, по-видимому, в следующем /etc/pam.d/system-auth:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        required      /lib/security/pam_deny.so

account     required      /lib/security/pam_unix.so

password    required      /lib/security/pam_cracklib.so retry=3
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5
password    required      /lib/security/pam_deny.so

session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so

Когда я меняюсь

auth        sufficient    /lib/security/pam_unix.so likeauth nullok

к

auth        sufficient    /lib/security/pam_unix.so likeauth

то учетная запись root больше не принимает никаких случайных паролей, но она также не принимает мой настроенный пароль

Я попробовал следующее:

  • сначала измените пароль root с помощью passwdкоманды. результат: я смог войти с любым паролем
  • затем удалить nullok: я не мог войти ни с каким паролем в новую сессию SSH, даже с паролем, который я только что установил
  • затем я снова изменил пароль root. Результат: я по-прежнему не мог войти ни с каким паролем в новую сессию SSH.
  • затем я вернул nulloksystem-auth: я снова мог войти с любым паролем

Все это время я выполнял редактирование и установку пароля в сеансе SSH, который держал открытым, и проверял результат, открывая новый сеанс SSH.

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

Я был удивлен, что мне не пришлось вводить старый пароль, а можно было просто ввести новый пароль (2 раза).

После смены пароля я получил ответ Password changed, но не смог войти через SSH с новым паролем.

Нужно ли мне устанавливать пароль root где-то еще? Или удаление nullokполностью блокирует учетную запись root через SSH?

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

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