2013-04-17

Doble Autenticación para SSH

Hace bastante leí un articulo de seguridad de hackplayers que me pareció muy interesante sobre como usar una aplicación de Google, llamada Google-Authenticator, que es un Only Time Password (OTP) o contraseña por tiempo, lo cual es muy usado en bancos y otras cosas para que la autenticación no solo sea la contraseña sino un numero variable.

Como siempre me gusta probar lo que encuentro y aunque ha pasado bastante tiempo no había tenido la oportunidad de hacerlo sino hasta ahora, entonces empece a configurar y me encontré con el primer problema, en KaliLinux el comando add-apt-repository no existe y no se puede descargar, por loque necesitaba modificar los repositorios manualmente. Tras leer de donde se encontraba el paquete libpam-google-authenticator encontré que estaba en un repositorio oficial de Debian Whezzy (Base del KaliLinux) de Alemania, por lo que adicione a la lista de repositorios el siguiente

root@localhost::~# echo "deb http://ftp.de.debian.org/debian wheezy main" >> /etc/apt/sources.list

Y realice la actualización de los paquetes y la instalación del paquete que necesitaba de la siguiente manera

root@localhost::~# apt-get clean
root@localhost::~# apt-get update
root@localhost::~# apt-get install libpam-google-authenticator

Ya con este instalado entonces en mi celular instale el Google-Authenticator y lo abrí para estar preparado, en ese momento ejecuto en el sistema el comando google-autheticator y nos muestra un QR-Code como se ve a continuación.


Mientras tanto en el Celular se inicia la ayuda de configuración y seleccionas Escanear un Barcode (Scan a barcode), como se ve a continuación


Y una vez el escanea ya inicia a a generar un código como el que se ve a continuación


Nota: Si vas a adicionar otro dispositivo con el mismo generador, debes usar el secret key que esta debajo del QR-Code, en la linea (de la imagen) "Your new secret key is: UZ4SFOMAI3BTOYGZ" 

Bueno ya tenemos la primera fase terminada, ahora debemos configurar el SSH para que pueda usar la doble autenticación. Para esto ingresamos al archivo /etc/pam.d/sshd y en la primera linea adicionas la siguiente linea

auth    required    pam_google_authenticator.so

Debe ser en la primera linea por que el primero que este activo es el que el sistema usa, entonces queda así


Una vez haces esto entras al archivo de configuración de SSH y modificas la linea 

ChallengeResponseAuthentication no

por

ChallengeResponseAuthentication yes

Y reinicias el servicio de SSH y pruebas con el generador de código en mano y te debe salir así


Espero que les sirva.