jueves, 20 de octubre de 2016

Algo de seguridad para mi SSH

Imagina que tienes abierto al exterior el ssh para poder conectarte remotamente a tu PC, para pasarle cosas por sftp, controlarlo o incluso usarlo de terminal remoto con X2Go.

Imagina que “los malos” se dedican a hacer un ataque por fuerza bruta para colarse por tu ssh y conseguir las fotos de tu abuelita que candorosamente has escaneado.

¿Hay alguna forma fácil de protegernos?


Si. Se llama contraseña segura. Pero como tengo cabeza de pez, las olvido y termino con contraseñas cortitas y que no suelen cambiar. Así que ese ataque de fuerza bruta puede ser exitoso a menos que…

A menos que tengas instalado fail2ban, una aplicación que añade un tiempo de exclusión a las conexiones, por ejemplo ssh, cuando se producen un determinado número de intentos fallidos desde una misma ip en poco tiempo. Es decir, en caso de ataque, si tu atacante falla 3 veces en menos de 1 minuto, tendrá que esperar 10 minutos para volver a intentarlo. Lo cual hace que nuestra débil contraseña sea un poquito más segura.

Instalar fail2ban es sencillísimo, solo tenemos que pasarnos por nuestro fiel Synaptic e instalarla.

Evidentemente tendremos que configurarla. Pero basta con crear un fichero llamado /etc/fail2ban/jail.local, con un contenido similar a este:
[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
findtime = 60
bantime  = 600
Aunque se pueden controlar otros servicios, yo lo voy a utilizar para ssh, de ahí el [ssh].

Evidentemente habilitamos el filtrado, y el puerto es el ssh,
  • maxretry indica cuantos intentos fallidos desencadenan el bloqueo.
  • Findtime indica el tiempo en que deben ocurrir los intentos fallidos para desencadenar el bloqueo
  • bantime es el tiempo de bloqueo

Con este fichero lo que hacemos es que si en un minuto alguien trata de logarse 3 veces mal, tendrá un retardo antes de poder volver a intentarlo de 10 minutos.

Solo nos queda reiniciar el servicio fail2ban para que tome estos nuevos servicios con un
  • sudo service fail2ban restart
Es evidente que puedes jugar con los valores para permitir más intentos o poner un baneo mayor. Pero eso ya es algo que tendras que hacer según tu criterio.

Y de esta forma tan sencilla, mi ssh es un poquito menos vulnerable.

3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Tengo un VPS al que me conecto por SSH. Voy a ponerle esta medida de seguridad. ¡Gracias!

    ResponderEliminar
    Respuestas
    1. Ya nos contarás si te da buenos resultados.

      Eliminar

prekes sodui