Configuración del servidor SSH en Linux

Luego de haber instalado el servidor SSH como lo explicamos en el post anterior, es conveniente habilitar ciertas opciones en su configuración (o modificar otras existentes) para aumentar la seguridad y prevenir hasta donde nos sea posible los accesos externos no autorizados. Por tal motivo, en esta oportunidad hablaremos sobre cómo realizar la configuración del servidor SSH que instalamos con anterioridad.

Configuración del servidor SSH para mantener la seguridad en nuestras comunicaciones
Configuración del servidor SSH para mantener la seguridad en nuestras comunicaciones

Configuración del servidor SSH

Las opciones de configuración del servidor SSH se encuentran en el archivo /etc/ssh/sshd_config. Para editarlo, tendremos en cuenta los siguientes puntos:

  • Si las siguientes directivas no se encuentran en el mismo, deberemos agregarlas con el valor indicado.
  • Si se encuentran pero el valor es diferente, debemos modificar este último.
  • Si se encuentran deshabilitadas (comentadas con un # al comienzo de la línea), deberemos habilitarlas borrando el signo #.

Cambiar el puerto

Por defecto, el servidor de SSH «escucha» en el puerto TCP 22. Este es un dato ampliamente conocido por atacantes maliciosos, por lo que es conveniente cambiarlo a un puerto «alto» (digamos en el rango de 2000 a 3000) para desalentar posibles escaneos de puertos (que generalmente no tienen en cuenta puertos por encima de 1024). Obviamente, el nuevo puerto elegido para el servidor SSH (2990 en el siguiente ejemplo) no debe estar siendo usado por otro servicio.

Port 2990

Permitir solamente la versión 2 del protocolo

Entre las dos versiones del protocolo SSH existentes hasta el momento (1 y 2), la primera no es utilizada generalmente por una falla de seguridad. Aunque es posible configurar el servidor para que utilice la versión 1, nunca lo he visto traducido en la práctica en ningún equipo. Para indicar al servidor que utilice únicamente la versión 2, utilizaremos la siguiente directiva:

Protocol 2

Definir usuarios autorizados y tiempo de gracia para el inicio de sesión

Los atacantes maliciosos intentarán ingresar al equipo utilizando las cuentas de usuario más usuales en un sistema Linux (entre las que se encuentra la de root). Por eso es conveniente deshabilitar el acceso a root mediante SSH y especificar una lista definida de usuarios que sí pueden hacerlo (los cuales pueden figurar en el archivo /etc/sudoers como autorizados para realizar tareas administrativas en el sistema).

Las siguientes dos directivas impedirán que root acceda al sistema mediante SSH y solamente permitirá que los usuarios gacanepa y alumno lo hagan.

PermitRootLogin no
AllowUsers gacanepa alumno

Además, podemos especificar el tiempo en que se forzará la desconexión con el servidor SSH si el usuario no se ha autenticado, cosa que también podemos hacer si se intentó ingresar una cierta cantidad de veces sin éxito. Las siguientes directivas indican que la conexión con el servidor SSH debe cerrarse si han pasado más de dos minutos sin que el usuario se haya autenticado, o si intentó hacerlo 5 veces y falló en todas:

LoginGraceTime 2m
MaxAuthTries 5

Queda un aspecto más que tratar en la configuración pero por su importancia le dedicaremos un post aparte. ¡No se lo pierdan!