Ir al contenido principal

Recientemente ha habido informes de problemas para conseguir que los nuevos usuarios registrados se conecten al usar SSH. El SysAdmin registra a Alice y luego hace que Alice intente iniciar sesión a través de SSH. Alice informa de un error de autenticación.

Los mensajes del syserr_log parecen indicar que Alice no está registrada.

05:04:02 Proceso 1111812D, root.root (sshd), creado. 
05:04:02 root (sshd) : [AUTH] [INFO] sshd [PID=0x1111812D]: Alice, usuario inválido 
+ de 127.0.0.1 
05:04:02 root (sshd) : [AUTH] [INFO] sshd [PID=0x1111812D]: input_userauth_req 
+Huésped: usuario inválido alice 
05:04:02 root (sshd) : [AUTH] [INFO] sshd [PID=0x1111812D]: No se ha fallado ninguno para en 
+valid user alice from 127.0.0.1 port 54869 ssh2 
05:04:06 root (sshd) : [AUTH] [ERR] sshd [PID=0x1111812D]: error: No se pudo ge 
+Información de la sombra para el NOUSER 
05:04:06 root (sshd) : [AUTH] [INFO] sshd [PID=0x1111812D]: Contraseña fallida para 
+r usuario inválido alice de 127.0.0.1 puerto 54869 ssh2

 

Pero si Alice usa un cliente de Telnet en lugar de un cliente de SSH puede acceder sin problemas.

05:04:23 Proceso 1111812E, Sistema de Pre-entrada (pre-entrada), creado. 
05:04:38 Proceso 1111812E cambió a alice.CAC (login).

 

Además, si en lugar de intentar iniciar la sesión inmediatamente después de registrarse, Alice espera unos minutos para poder iniciar la sesión sin problemas.

05:12:51 Proceso 11118130, root.root (sshd), creado. 
05:12:55 root (sshd) : [AUTH] [INFO] sshd [PID=0x11118130]: Contraseña aceptada 
+para Alice desde el puerto 127.0.0.1 54909 ssh2 
05:12:55 Proceso 11118131, root.root (sshd), creado. 
05:12:55 Proceso 11118131 Cambié a Alice. CAC (login).

 

Lo realmente frustrante es que a veces el primer usuario recién registrado no tiene problemas para autenticarse con SSH pero el segundo sí.

Entonces, ¿qué está pasando?

Hay ciertos problemas para que los programas POSIX como SSH hagan referencia a la base de datos de registro directamente. En cambio, sus llamadas de autenticación son atendidas por el proceso posix_regdb_server. El proceso posix_regdb_server mantiene una copia de la base de datos de registro a la que hace referencia para determinar si un usuario es válido. Cada vez que el posix_regdb_server busca una identificación de usuario, compara la hora actual con la última vez que leyó la base de datos de registro y si ese tiempo es superior a 5 minutos en el pasado vuelve a leer la base de datos. Así que es posible que un usuario recién registrado tenga que esperar hasta 5 minutos antes de poder ingresar usando SSH.

Para el escenario en el que el primer usuario recién registrado no tiene problemas pero el segundo hace lo que sucede es que el SysAdmin registra a Bob y hace que Bob intente iniciar sesión. Como han pasado más de 5 minutos desde la última solicitud de autenticación el posix_regdb_server refresca su copia de la base de datos, ve a Bob como un usuario válido y Bob puede iniciar sesión. Ahora el SysAdmin registra a Alice y hace que Alice intente iniciar sesión. Sin embargo, como sólo han pasado uno o dos minutos desde que Bob se registró en el posix_regdb_service no refresca su copia de la base de datos y Alice no se encuentra, por lo que no se le permite iniciar sesión.

No hay forma de cambiar la ventana de 5 minutos. Si detienes el proceso posix_regdb_server refrescará su copia de la base de datos de registro cuando se reinicie. Típicamente, se reiniciará automáticamente en un minuto, pero puede tomar hasta 2 minutos, así que mientras puedas acelerar las cosas no puedes acelerarlas mucho.

Una mejor estrategia es registrar a todos los nuevos usuarios al mismo tiempo, antes de probar cualquiera de ellos. También registrarlos en un momento en el que nadie esté tratando de ingresar a través de SSH, de esa manera cuando el primer usuario nuevo trate de ingresar el posix_regdb_server refrescará su base de datos y obtendrá todos los nuevos usuarios al mismo tiempo.

Por supuesto, encontrar un momento en el que nadie intente acceder a través de SSH puede ser difícil, así que la mejor estrategia es registrar a todos los nuevos usuarios al mismo tiempo y luego ir a tomar una taza de café antes de decirles que pueden acceder.