Asegurar SSH en nuestro servidor
Uno de los métodos más comunes para acceder a nuestro servidor (sea dedicado o un servidor VPS) es mediante una conexión SSH (Secure Shell) por lo que en mi opinión es necesario asegurar SSH en nuestro servidor para evitar problemas de seguridad.
La mayor parte de las compañías de hosting facilitan acceso SSH para sus servidores dedicados y VPS ya que permite manejar el servidor por completo mediante comandos. SSH tiene la ventaja de que emplea técnicas de cifrado para establecer la comunicación entre cliente y servidor evitando así que terceras personas puedan conseguir datos confidenciales como pueden ser nuestro nombre de usuario, contraseña, fotos personales, archivos con información importante, etc…
Es de sobra conocido por los hackers que SSH es el método más empleado para acceder a un servidor y por ello es uno de sus principales objetivos a la hora de auditar la seguridad de un servidor. Por este motivo debemos asegurar el acceso SSH a nuestro servidor, cosa que conseguiremos siguiendo los diferentes consejos básicos de este artículo y así evitar que nuestra conexión SSH se vea comprometida.
Uno de los grandes problemas de seguridad que afectan a SSH y a otros muchos programas de conexión remota, es mantener los valores por defecto. Por norma general los valores por defecto son seguros, pero si los cambiamos conseguiremos una mejora considerable de la seguridad.
El el artículo todos los comandos han sido probados bajo Ubuntu y Debian, en otras distribuciones puede que tengas que buscar comandos equivalentes pero los conceptos para asegurar SSH son los mismos para cualquier distribución.
Como asegurar SSH en servidor VPS o dedicado
Para poner en práctica los consejos para asegurar SSH, lo primero es localizar el archivo de configuración del servidor SSH que normalmente podemos encontrar en la ruta: /etc/ssh/sshd_config
Cambiar el puerto SSH de acceso.
Esta medida la deberíamos poner en practica en todo servidor, ya que sino saben el puerto SSH difícilmente podrán establecer una conexión con el servidor (aunque hay métodos para descubrir puertos abiertos de nuestro servidor).
Normalmente para acceder a SSH a través de un cliente empleamos el puerto 22
, que es el que viene configurado por defecto. Para cambiar el puerto SSH por defecto ejecutamos como root el siguiente comando:
nano /etc/ssh/sshd_config
Veremos que en las primeras líneas se nos muestra la opción “Port 22”, tenemos que editar el número de puerto y cambiarlo por otro, por ejemplo el 10321
, de forma que la linea quede “Port 10321” y guardamos los cambios con la combinación de teclas CTRL+O
. A la hora de establecer el nuevo puerto debemos asegurarnos que no lo use otra aplicación (generalmente puertos mayores a 10000 suelen estar libres).
Sólo nos queda reiniciar el servidor SSH con el comando:
/etc/init.d/ssh restart
Con estos sencillos pasos ya conseguimos cambiar el puerto SSH.
Verificar que sólo está habilitado el protocolo 2.
Existen dos versiones del protocolo SSH, una versión obsoleta conocida como versión 1 y una actual conocida como versión 2. Debemos verificar en el archivo de configuración SSH que sólo está habilitado el protocolo 2. Esto lo conseguimos comprobando que existe la opción:
Protocol 2
Limitar usuarios con acceso y direcciones IP.
Podemos limitar el acceso SSH parea que sólo ciertos usuarios tengan acceso o ciertas IP. Esto de restringir la IP puede ser un problema si nuestro proveedor de internet nos asigna IP dinámica, ya que la IP cambiará y podemos perder acceso SSH, así que cuidado a la hora de restringir IP.
Como siempre tenemos que editar el archivo de configuración y usar la opción “AllowUsers” de la siguiente forma:
- Permitir acceso a usuario especifico: en este ejemplo vamos a permitir el acceso SSH al usuario de nombre Juan.
AllowUsers Juan
- Permitir acceso a usuario asiciándolo a IP: en este ejemplo veremos como permitir el acceso al usuario Juan únicamente desde la IP 78.49.50.20
AllowUsers Juan@78.49.50.20
- Cuando definimos la IP podemos usar wildcards, por ejemplo:
AllowUsers Juan@78.49.50.*
Limitar el número de reintentos de acceso.
Editando el archivo de configuración podemos limitar el número máximo de reintentos que tendrá un usuario para acceder vía SSH. Para conseguir esto emplearemos la opción “Max AuthTries”. En el siguiente ejemplo limitamos a 3 reintentos:
MaxAuthTries 3
Limitar el número de sesiones de login desde una misma IP
Con la opción “MaxStartups” conseguimos limitar el número de sesiones abiertas desde una misma IP. Por ejemplo si queremos limitar a 3 sesiones por IP emplearemos la siguiente linea de configuración:
MaxStartups 3
Siguiendo estos cinco sencillos consejos conseguiremos incrementar la seguridad se nuestro servidor SSH. Insisto en que al menos seguir el primer paso y cambiar el puerto SSH es uno de los pasos básicos que siempre deberíamos hacer para asegurar SSH.