Mejora la seguridad de SSH con doble factor de autentificación

llavedeseguridad

SSH es una de las formas mas “seguras” de conectarse remotamente a los servidores, pero aun y cuando apliquemos medidas de aseguramiento, no esta de mas una doble validacion.

La autentificación en la mayoría de los casos se basa en (Usuario + Contraseña) o uso de llaves, pero esta vez Google nos proporciona el software necesario para integrar el modulo de Google Authenticator y darle una capa adicional de seguridad al protocolo SSH.

¿Pero que es Google Authenticator?, es un software generador de códigos de un solo uso, para diferentes plataformas móviles, así como un módulo de autenticación conectable (PAM).

Instalación

Para el proceso de instalación de distribuciones basada en Debian (Ubuntu), podemos encontrar en sus repositorios el paquete libpam-google-authenticator

sudo apt-get install libpam-google-authenticator

Una vez instalado el modulo PAM, es necesario generar la clave secreta que utilizaremos para configurar la apk en nuestro teléfono móvil, con solo ejecutar el comando google-authenticator.

google-authenticator

ssh1

ssh2

Las siguientes son opciones que nos presenta el complemento de seguridad que ofrece el módulo. A las cuales por recomendación debemos responder con (Y)

  • ¿Deshabilitar múltiples usos del mismo token de autenticación? (Y)
  • Por defecto, los tokens duran 30 segundos con el fin de compensar el tiempo posible entre el cliente y el servidor, si experimenta problemas con la sincronización del tiempo , puede aumentar su valor predeterminado de 1:30 minutos a aproximadamente 4 minutos . ¿Quieres hacerlo (Y)
  • Minimizar los intentos de fuerza bruta , de forma predeterminada se limita a un máximo de 3 intentos cada 30 segundos. ¿ Deseas limitar la actividad ? (Y)

Hay dos opciones posibles, escaneamos el código QR con la aplicación (apk) o configuramos manualmente el código (clave blindada).

ssh3a

ssh4

ssh5

Ahora queda realizar un cambio manual,, en dos archivos para poder hacer uso del módulo. Debemos modificar el archivo /etc/pam.d/sshd y agregar la siguiente linea al final.

vim /etc/pam.d/sshd

auth required pam_google_authenticator.so

Al archivo  /etc/ssh/sshd_config le modificamos la variable ChallengeResponseAuthentication

ChallengeResponseAuthentication yes

Reiniciamos el servicio SSH

sudo service ssh restart

Y ahora, a probar el funcionamiento del mismo.

ssh user@servidor

ssh6

8 thoughts on “Mejora la seguridad de SSH con doble factor de autentificación”

  1. tannhausser says:

    Gracias por esta nueva colaboración Anger!

    Cada día nos traes cosas más interesantes 🙂

  2. x-man says:

    Este fin de semana le voy a dedicar un tiempo, SSH es el único protocolo que uso para llegar a mis cacharros desde fuera de mi red interna, y hasta ahora no me a fallado, si bien no es el mas rápido, su seguridad lo compensa, realmente es muy buen aporte, muchas Gracias por compartir. Después de probarlo si me lo permiten, me gustaría compartirlo en el Foro de openSuSE en español.

    Have a lot of Fun!!!!

    1. tannhausser says:

      Claro que si amigo! Gracias por compartir 🙂

    2. Anger Pulido says:

      Que tal x-man, antes de instalar el modulo, seria bueno que te pasaras por este par de post, para mejorar la seguridad de tu servidor ssh.

      http://lamiradadelreplicante.com/2014/11/25/como-mejorar-la-seguridad-ssh-en-tu-servidor/

      http://lamiradadelreplicante.com/2015/01/02/utiliza-tus-llaves-para-conectarse-a-un-servidor-via-ssh/

      1. x-man says:

        @Anger Pulido, gracias por la recomendación y no obstante los volveré a repasar, ya hace algún tiempo que le doy la lata al amigo Tannhausser por estos lares, de hecho muchos temas los tengo pasados a .pdf para consultas off-line, muchas veces e librado consultando este y otros blogs.

        Gracias una vez mas.

  3. yosu says:

    Yo recomendaría usar FreeOTP en el móvil, mejor que la de Google para mi gusto. Disponible en F-Droid 🙂

    1. Anger says:

      Gracias por el dato yosu.

  4. carlosky77 says:

    Gracias por los aportes de Anger y el comentario Yosu.
    Cuando termine de estudiar el Diplomado (a finales de abril) voy a hacer pruebas porque siempre he querido usar una capa adicional de seguridad en las comunicaciones.

Deja un comentario