OpenSSH-server: ¿Existen implicaciones de seguridad y / o valores de / para 'TCPKeepAlive yes'

4

He leído un grado de informes mixtos sobre las implicaciones de seguridad y / o el valor de permitir TCPKeepAlive yes en /etc/ssh/sshd_config (para OpenSSH-server). Cualquier comentario definitivo sobre las mejores prácticas de seguridad con respecto a TCPKeepAlive y / o ClientAliveInterval , etc. será bienvenido.

De lo que deduzco, no parece haber ningún riesgo real o inmediato de tener TCPKeepAlive yes ( fuente ) más allá de la posibilidad de que alguien pueda falsificar un paquete TCP para detener el tiempo de espera de una sesión SSH. Es decir.

  

En la siguiente sección notará que existe un problema de suplantación de identidad   mantener vivo

( fuente - bajo el encabezado "Usuarios de SSH ")

Leí que esto significa que el riesgo de que tenga un impacto de seguridad serio en la sesión de SSH en sí mismo es nulo.

Sin embargo, un usuario de GitHub observa:

  

Tienes toda la razón. Parece que no hay un explotable real   vulnerabilidad con TCPKeepAlive - todavía

¡¿Lo que implica que solo es cuestión de tiempo antes de que pueda explotarse ?!

Otra fuente sugiere que hay poco valor en TCPKeepAlive yes , siempre que se configure ClientAliveInterval apropiadamente.

Una publicación del blog (a partir de 2013) titulada "Endurecimiento de su SSH servidor "(bajo el encabezado" Evitar zombies ") sugiere:

  

Para evitar que las sesiones se cuelguen infinitamente, esto debería dejarse activado.

Aunque como no menciona ClientAliveInterval , supongo que quizás no sea 100% relevante ahora.

Tenga en cuenta que a pesar de mi Google googlear significativo, todas mis fuentes, excepto la publicación del blog de 2013, provienen del hilo de GitHub al que he vinculado. Más allá de esas pocas menciones. No puedo encontrar nada sustancial de una manera u otra. Otras fuentes, especialmente las autorizadas, serán bien recibidas.

    
pregunta Jeremy Davis 29.05.2018 - 05:06
fuente

1 respuesta

5

Hay tres formas principales de mantener viva una sesión de SSH:

  • TCPKeepAlive : periódicamente se envía un ACK vacío, lo que evita que la conexión TCP se cierre naturalmente debido a la inactividad. Esto funciona completamente en el nivel TCP. Solo se puede falsificar con un ataque MITM o un adversario de secuestro de TCP extremadamente avanzado.

  • ServerAliveInterval : se envía un mensaje periódicamente desde el cliente al servidor mediante el protocolo SSH. El principal beneficio de usar esto es que un firewall no puede decir si es un mensaje de actividad o un mensaje legítimo. Un keepalive de TCP, por otro lado, puede estar bloqueado por un firewall.

  • ClientAliveInterval - Idem pero enviado desde el servidor al cliente.

¿Existe algún riesgo para un atacante que obligue a una conexión SSH a permanecer abierta? Realmente no. La clave de sesión efímera se cambia periódicamente para evitar que una sesión SSH de larga duración sea un objetivo más jugoso. Como tal, no puedo pensar en ninguna razón importante por la que el envío de keepalives a través de la capa TCP se considere un problema de seguridad. Sin embargo, todavía no hay razón para usarlo. Puede usar de forma segura ClientAliveInterval o ServerAliveInterval y deshabilitar los keepalives de TCP.

    
respondido por el forest 29.05.2018 - 06:45
fuente

Lea otras preguntas en las etiquetas