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
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).
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
Gracias por esta nueva colaboración Anger!
Cada día nos traes cosas más interesantes 🙂
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!!!!
Claro que si amigo! Gracias por compartir 🙂
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.
https://lamiradadelreplicante.com/2014/11/25/como-mejorar-la-seguridad-ssh-en-tu-servidor/
https://lamiradadelreplicante.com/2015/01/02/utiliza-tus-llaves-para-conectarse-a-un-servidor-via-ssh/
@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.
Yo recomendaría usar FreeOTP en el móvil, mejor que la de Google para mi gusto. Disponible en F-Droid 🙂
Gracias por el dato yosu.
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.