Cómo mejorar la seguridad de las conexiones SSH

Escrito por Rubén Velasco
Redes
2

Las conexiones SSH son útiles para conectarnos de forma remota a nuestro ordenador o a un servidor, sin embargo, es posible que usuarios no autorizados o piratas informáticos intenten también acceder a ellos sin nuestro permiso ya que todo lo que está conectado a la red tiene unos riesgos que no debemos olvidar.

Aunque una capa de seguridad 100% nunca es posible, podemos configurar nuestro servidor SSH con una serie de parámetros adicionales de manera que sí se proteja en gran medida el acceso no autorizado a los mismos evitando que piratas informáticos o usuarios no autorizados puedan conectarse a la fuerza a nuestros servidores sin nuestro permiso.

Para esto es recomendable llevar a cabo una serie de ajustes adicionales en la configuración del servidor que permitan protegernos lo mejor posible de las amenazas de la red. Estos ajustes se deben realizar en el fichero de configuración del servidor que, por ejemplo, en Linux se encuentra en /etc/ssh/sshd_config.

SSH_cambiar_puerto_foto_2

Cambiar el puerto por defecto del servidor SSH

Por defecto los servidores SSH utilizan el puerto 22 para las conexiones. Cuando un pirata informático intente buscar la forma de conectarse a nuestro servidor SSH este probará en primer lugar con este puerto y, de estar abierto, comenzará el ataque.

Si cambiamos el puerto por defecto por otro de nuestra elección evitaremos que utilicen el puerto 22 para establecer las conexiones, sin embargo, es fácil descubrir si este tipo de protocolos utilizan otros puertos adicionales para las conexiones.

Bloquear el acceso root en las conexiones remotas

Es recomendable crear un único usuario para conectarse al servidor con una contraseña lo más fuerte posible de manera que no pueda ser explotada fácilmente, sin embargo, por defecto el usuario Root también puede conectarse al servidor SSH de forma remota evitando a un atacante el tener que adivinar el usuario y facilitándose el trabajo.

Desactivando los permisos de Root para conectarse al servidor SSH complicaremos notablemente la tarea de explotación por fuerza bruta del servidor al tener que adivinar también el usuario establecido para permitir la conexión.

El valor por defecto en el archivo de configuración que permite las conexiones de root es:

  • PermitRootLogin yes

Debemos cambiarlo por:

  • PermitRootLogin no

De esta manera las conexiones root quedarán bloqueadas evitando que usuarios no autorizados puedan realizar ataques de fuerza bruta contra nuestro servidor SSH para adivinar los credenciales del usuario Root.

Configuraciones de seguridad adicionales

Existen otras configuraciones recomendadas para evitar las conexiones no deseadas a nuestro servidor SSH. Estas conexiones son:

  • LoginGraceTime: Estableceremos el tiempo necesario para introducir la contraseña, evitando que el atacante tenga que “pensar mucho”.
  • MaxAuthTries: Número de errores permitidos al introducir la contraseña antes de desconectarnos.
  • MaxStartups: Número de logins simultáneos desde una IP, para evitar que se pueda utilizar la fuerza bruta con varias sesiones a la vez.
  • AllowUsers: Este parámetro nos permite configurar los usuarios que podrán conectarse y desde la IP que lo podrán hacer. Una medida muy restrictiva pero a la vez muy segura ya que bloqueará todas las conexiones que no cumplan los dos parámetros.

Reiniciar el servidor para aplicar los nuevos ajustes

Una vez realizados los ajustes debemos reiniciar el servidor para que se apliquen correctamente. Para ello teclearemos:

  • sudo service ssh reload

En pocos segundos el servidor volverá a arrancar con la nueva configuración aplicada y mucho más seguro que antes.

¿Qué más consejos de seguridad recomendáis para proteger al máximo las conexiones SSH?

Fuente: La mirada del replicante


Continúa leyendo
  • juanmi

    Para mi lo más importante es no permitir el uso de contraseñas al hacer login, solo usar la clave privada del usuario en cuestión.

  • Gaspar

    Hola, hoy he publicado en mi blog una recopilación de medidas para aumentar la seguridad de OpenSSH en nuestro servidor. Recoge éstas y unas cuántas cosas más.

    http://totaki.com/poesiabinaria/2016/01/consejor-endurecer-servidor-ssh-hacerlo-seguro/

    Como dice Juanmi, estoy de acuerdo en que lo primero es no permitir el uso de contraseñas en login.