DevOps

Configuración de SSH: Evitar Desconexiones Automáticas

Para evitar que SSH desconecte sesiones de forma automática, es posible ajustar la configuración del servidor SSH. Esto se logra modificando el archivo de configuración sshd_config. Este archivo generalmente se encuentra en el directorio /etc/ssh/ en sistemas basados en Unix y Linux. Antes de realizar cualquier modificación, es recomendable realizar una copia de seguridad del archivo de configuración original para evitar problemas en caso de cometer errores.

Una vez ubicado el archivo sshd_config, se puede editar utilizando un editor de texto como nano, vi o cualquier otro de tu preferencia. Es posible que se requieran permisos de superusuario para editar este archivo, por lo que puedes utilizar el comando sudo si es necesario.

Dentro del archivo sshd_config, se encontrarán varias directivas de configuración. Para evitar la desconexión automática de sesiones SSH, se puede modificar la directiva ClientAliveInterval y ClientAliveCountMax.

La directiva ClientAliveInterval especifica el intervalo en segundos en el que el servidor SSH enviará un mensaje al cliente para verificar si la conexión está aún activa. Para desactivar esta función, se puede establecer un valor de 0 (cero) o comentar la línea asociada, lo que hará que el servidor no envíe mensajes de verificación.

Por otro lado, la directiva ClientAliveCountMax establece el número máximo de mensajes de verificación que pueden enviarse sin recibir respuesta antes de que el servidor desconecte la sesión. Para evitar la desconexión automática, se puede establecer un valor lo suficientemente alto, como 99999, o comentar la línea asociada, lo que permitirá que las sesiones permanezcan abiertas indefinidamente sin ser desconectadas por inactividad.

Una vez realizadas las modificaciones necesarias en el archivo sshd_config, es importante guardar los cambios y reiniciar el servicio SSH para que las nuevas configuraciones surtan efecto. Esto se puede hacer ejecutando el comando adecuado para reiniciar el servicio SSH en tu sistema operativo específico. Por ejemplo, en sistemas basados en Debian y Ubuntu, se puede utilizar el siguiente comando:

sudo systemctl restart ssh

O en sistemas basados en Red Hat y CentOS:

sudo systemctl restart sshd

Es importante tener en cuenta que modificar la configuración de SSH para evitar la desconexión automática puede tener implicaciones de seguridad, ya que las sesiones inactivas permanecerán abiertas durante períodos prolongados, lo que podría aumentar el riesgo de acceso no autorizado si el dispositivo está desatendido. Por lo tanto, se recomienda evaluar cuidadosamente los riesgos y considerar implementar otras medidas de seguridad, como la configuración de cortafuegos o el uso de herramientas de monitoreo de sesiones para detectar actividad sospechosa.

Más Informaciones

Además de ajustar las directivas ClientAliveInterval y ClientAliveCountMax en el archivo de configuración sshd_config, existen otras opciones que pueden influir en el comportamiento de las sesiones SSH y en cómo se maneja la inactividad de la conexión.

  1. TCPKeepAlive: Esta directiva, cuando se establece en yes, mantiene la conexión SSH activa enviando paquetes keep-alive TCP al cliente y esperando una respuesta. Esto puede ayudar a mantener la conexión viva incluso si hay cortes intermitentes en la conectividad de red. Sin embargo, a nivel de aplicación, el servidor SSH puede seguir desconectando sesiones por inactividad si no se ajustan las directivas mencionadas anteriormente.

  2. LoginGraceTime: Esta opción determina cuánto tiempo (en segundos) el servidor SSH espera para que un usuario complete el proceso de inicio de sesión antes de desconectar la conexión. Si este valor es demasiado bajo, los usuarios pueden tener dificultades para iniciar sesión, especialmente en conexiones lentas. Si es demasiado alto, puede permitir que conexiones no deseadas permanezcan abiertas durante períodos prolongados. Ajustar este valor adecuadamente puede ayudar a equilibrar la seguridad y la facilidad de uso.

  3. IdleTimeout: Algunos servidores SSH permiten establecer un tiempo máximo de inactividad antes de desconectar automáticamente una sesión. Esta opción es diferente de ClientAliveInterval, ya que se aplica a nivel de sesión en lugar de enviar paquetes de verificación a intervalos regulares. No todos los servidores SSH admiten esta opción, y su nombre exacto puede variar según la implementación del servidor.

  4. KeepAlive: A nivel del cliente SSH, también se puede configurar la opción KeepAlive para enviar paquetes keep-alive al servidor para mantener la conexión activa. Esto puede ser útil si el servidor SSH tiene políticas de desconexión por inactividad y el cliente necesita mantener la conexión viva durante largos períodos de tiempo sin interacción.

  5. Herramientas de monitoreo de sesiones: Para gestionar mejor las sesiones SSH y detectar actividad inusual o potencialmente maliciosa, se pueden utilizar herramientas de monitoreo de sesiones SSH. Estas herramientas pueden rastrear la actividad de inicio de sesión, el tiempo de actividad de la sesión, los comandos ejecutados y otros datos relevantes para identificar y responder a posibles amenazas de seguridad.

Al considerar la configuración de SSH para evitar la desconexión automática de sesiones, es importante encontrar un equilibrio entre la seguridad y la conveniencia. Mantener sesiones SSH abiertas indefinidamente puede aumentar el riesgo de acceso no autorizado, especialmente en entornos compartidos o en sistemas con acceso a Internet. Por lo tanto, es fundamental evaluar los riesgos específicos y aplicar medidas de seguridad adicionales según sea necesario.

Botón volver arriba

¡Este contenido está protegido contra copia! Para compartirlo, utilice los botones de compartir rápido o copie el enlace.