servicio de pam (sshd) ignorando reintentos máximos

32

Tengo vps que utilizo para ejecutar un servidor web, actualmente ejecuta ubuntu server 12.04. Desde hace unas semanas sigo recibiendo muchos errores en mi consola ssh.

2014 Apr 11 08:41:18 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:21 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:24 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:25 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:26 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring max retries; 6 > 3

¿Podría alguien decirme qué significan estos errores? O al menos dime cómo deshabilitar estos errores. Es realmente molesto cuando estoy trabajando sobre ssh y estos errores siguen apareciendo en toda mi pantalla.

Jerodev
fuente

Respuestas:

40

PAMle dice que está configurado con "retry = 3" e ignorará cualquier otra solicitud de autenticación de sshd dentro de la misma sesión. SSHsin embargo, continuará intentándolo hasta agotar la configuración de MaxAuthTries (que por defecto es 6).

Probablemente debería establecer ambos (SSH y PAM) en el mismo valor para reintentos máximos de autenticación.

Actualizado

Para cambiar este comportamiento:

Para sshdeditar /etc/ssh/sshd_configy configurar MaxAuthTries 3. También reinicie el servidor SSH para que la configuración surta efecto.

Para PAM, debe buscar la configuración en el /etc/pam.ddirectorio (creo que es un common-passwordarchivo en Ubuntu), debe cambiar el retry=valor.

Nota: Recomiendo encarecidamente que verifique también la respuesta de Peter Hommel con respecto al motivo de estas solicitudes, ya que es posible que su SSH esté siendo forzado.

phoops
fuente
Gracias, el problema se solucionó agregando la MaxAuthTries 3configuración ssh y luego reiniciando el servidor.
Jerodev
41

Si bien las otras respuestas son correctas al eliminar el mensaje de error que recibió, considere que este mensaje de error puede ser solo un síntoma de otro problema subyacente.

Obtiene estos mensajes porque hay muchos intentos fallidos de inicio de sesión a través de ssh en su sistema. Puede haber alguien tratando de introducir fuerza bruta en su caja (fue el caso cuando recibí los mismos mensajes en mi sistema). Lea su var/log/auth.logpara la investigación ...

Si este es el caso, debe considerar instalar una herramienta como 'fail2ban' ( sudo apt-get install fail2banen Ubuntu). Lee automáticamente los archivos de registro de su sistema, busca múltiples intentos fallidos de inicio de sesión y bloquea a los clientes maliciosos durante un tiempo configurable a través de iptables ...

Peter Hommel
fuente
44
Este es un comentario muy agradable, he actualizado mi respuesta con una nota para leer su respuesta también para cualquiera que pueda encontrar esto.
phoops
5

Parece que el análisis anterior no es completamente correcto. No parece haber una opción retry = para la autenticación de pam (encontré una para pam_cracklib, pero eso solo se refiere al cambio de contraseña en la sección "contraseña", no a la autenticación en la sección "auth" de pam). En cambio, pam_unix contiene un número máximo de reintentos incorporado de 3. Después de 3 reintentos, pam devuelve el código de error PAM_MAXRETRIES para informar a sshd de esto.

sshd realmente debería dejar de intentarlo en este caso, independientemente de su propio MaxAuthTries. No lo hace, lo que creo que es un error (que acabo de informar con openssh ).

Hasta que se solucione el error, parece que establecer MaxAuthTries en <= 3 es la única forma de evitar que aparezca este mensaje.

Matthijs Kooijman
fuente
el error parece reparado con la versión 7.3p1
Dennis Nolte
3

El cliente ssh puede intentar autenticarse con una o más claves. Cualquier clave que no esté en la lista de claves autorizadas fallará, consumiendo uno de los reintentos de sshd. El cliente probará todas las claves ssh que tenga hasta que una tenga éxito o todas fallen, por lo que es bueno que sshd le permita probar varias.

Si no coinciden las claves, sshd puede permitirle probar una contraseña. Cada uno de estos intentos también consume uno de los reintentos permitidos de sshd. Pero también consume uno de los reintentos permitidos de PAM.

Por lo tanto, la combinación de 6 intentos de autenticación ssh y 3 intentos de autenticación pam es algo bueno: significa que ssh permitirá un total de 6 intentos de autenticación (clave o contraseña) pero solo 3 intentos de contraseña.

Como otros han dicho, si a menudo los ve en sus registros, alguien está tratando de ingresar a su sistema por fuerza bruta. Considere el uso de fail2ban para bloquear completamente los paquetes de las direcciones IP desde donde se originan estos intentos.

Cuenta
fuente
1

Después de actualizar de Debian 6 a Debian 7, me encontré con los mismos problemas. De repente, aparecieron estos errores sshd en mi consola.

2014 Oct 15 13:50:12 vps456 PAM service(sshd) ignoring max retries; 6 > 3
2014 Oct 15 13:50:17 vps456 PAM service(sshd) ignoring max retries; 6 > 3
2014 Oct 15 13:50:18 vps456 PAM service(sshd) ignoring max retries; 6 > 3

En mi caso, el problema era que rsyslogya no estaba instalado después de la actualización de Debian.

Después de instalar rsyslog, estos errores desaparecieron de mi consola: apt-get install rsyslog

tomputer
fuente
3
Esto solo los hace aparecer en otro lugar en lugar de la consola. Mi respuesta corrige la causa del error debido a la configuración incorrecta de SSH / PAM después de la actualización.
phoops
-1

Ciertamente, recibir esos avisos en su consola podría ser molesto, pero cuando veo en mis archivos de registro que ayer tuve 987 intentos fallidos de inicio de sesión de raíz provenientes de una dirección IP en China, o 2670 de algún servicio en la nube en California, o ... muchos otros, no me preocupo. El usuario root no puede iniciar sesión en mi máquina. No importa cuántos intentos.

Si comenzaran a probar nombres de usuario que puedan iniciar sesión, sería un asunto diferente, pero si uno tiene buenas contraseñas, tampoco veo un riesgo allí. Las contraseñas de inicio de sesión (a diferencia de las claves de cifrado) solo se pueden probar tan rápido.

Usar algo como fail2ban parece una complejidad innecesaria que no compra nada (si tiene buenas contraseñas) y la complejidad es mala para la seguridad. Estrangulamiento de intentos es algo que sshd debe poner en práctica, no es algo que se debe requerir algún complemento ... y sshd hace intentos de estrangulación. Bueno.

-kb, el Kent que solo usa buenas contraseñas y nunca recicla entre diferentes sitios.

Kent Borg
fuente
2
Usar claves ssh y deshabilitar contraseñas es aún mejor para prevenir ataques exitosos de fuerza bruta.
HBruijn
Sí, pero luego el problema pasa a proteger sus claves ssh. ¿Dónde están? ¿Están encriptados? ¿Qué tan buena una llave los protege? Si una contraseña no se puede descifrar en X años de intentarlo, entonces no se puede descifrar en X años de intentar, ¿para qué necesita "mejor"? Dedico mucho tiempo a administrar mis contraseñas y puedo escribirlas, muchas de las cuales recuerdo. ¿Pero un montón de claves ssh? Necesito un lugar seguro para guardarlos.
Kent Borg
2
Forzar de forma bruta una contraseña (generalmente de menos de 20 caracteres de longitud y con demasiada frecuencia mal elegida) es mucho más simple que forzar una clave privada de 1024 bits (simplificado el equivalente de una contraseña de 128 caracteres) para obtener acceso a través de SSH. Sigamos comparando manzanas con manzanas. - - A menos que sea un completo idiota (por ejemplo, almacenar su clave privada en su github público), es difícil acceder a su clave ssh privada, ya que no necesita abandonar su estación de trabajo. Una vez que su clave privada se ve comprometida, ya no estamos en los ataques aleatorios, sino entrando en el ámbito de los ataques dirigidos ...
HBruijn
@ ¿Sabía que puede proteger con contraseña sus claves SSH? Además, usted dice que fail2ban es innecesario pero continúa sugiriendo que SSH debería implementar esta característica en sí misma. Además, si no bloquea las solicitudes, simplemente pueden hacer DDoS su sistema mucho más fácil.
phoops