eliminar `nullok` de la autenticación del sistema evita cualquier contraseña de root

eliminar `nullok` de la autenticación del sistema evita cualquier contraseña de root

[este es un seguimiento de mi publicación en ServerFault:https://serverfault.com/questions/661136/root-accepts-any-password-how-to-change-to-a-real-password]

En un sistema antiguo, la cuenta raíz acepta cualquier contraseña, siempre que no esté vacía. Cualquier contraseña fue aceptada como correcta, por lo que cualquiera podía iniciar sesión.

En el pasado (hace más de 10 años) esto no era un problema ya que el sistema estaba detrás de un módem de acceso telefónico con su propia autenticación... pero desde hace unos años se puede acceder al sistema a través de una dirección IP pública.

Milagrosamente, nadie se molestó nunca en su puerto SSH, hasta la semana pasada.

Alguien (dirección IP china) inició sesión como root, cambió algunas configuraciones del sistema y cerró la sesión.

Restauré el sistema desde una copia de seguridad y cambié el puerto SSH para que ya no se pueda acceder a él a través del módem ADSL para darme algo de tiempo para resolver este problema.

El problema parece estar en /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

cuando cambio

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

a

auth        sufficient    /lib/security/pam_unix.so likeauth

entonces la cuenta raíz ya no acepta ninguna contraseña aleatoria, pero tampoco acepta mi contraseña configurada

Intenté lo siguiente:

  • Primero cambie la contraseña de root mediante el passwdcomando. resultado: puedo iniciar sesión con cualquier contraseña
  • luego elimine nullok: no pude iniciar sesión con ninguna contraseña en una nueva sesión SSH, ni siquiera con la contraseña que acabo de configurar
  • luego cambié la contraseña de root nuevamente. resultado: todavía no puedo iniciar sesión con ninguna contraseña en una nueva sesión SSH.
  • luego volví nulloka configurar system-auth: podía iniciar sesión con cualquier contraseña nuevamente

Todo el tiempo hice la edición y la configuración de la contraseña en una sesión SSH que mantuve abierta y probé el resultado abriendo una nueva sesión SSH.

No me atreví a cerrar mi sesión principal de SSH por miedo a no poder volver a entrar. Además, no reinicié el sistema porque es un sistema en ejecución para semáforos.

Me sorprendió no tener que ingresar una contraseña anterior, sino que simplemente podía ingresar la nueva contraseña (2 veces).

Después de cambiar la contraseña obtuve la respuesta Password changedpero no pude iniciar sesión a través de SSH con la nueva contraseña.

¿Tengo que configurar la contraseña de root en otro lugar? ¿O la eliminación nullokbloquea completamente la cuenta raíz a través de SSH?

Quiero que el rootúnico pueda iniciar sesión con 1 contraseña específica y negar el acceso a cualquier otra contraseña.

información relacionada