Autenticación de dos pasos Para Login y SSH en LINUX

publicado a la‎(s)‎ 27 feb. 2015 18:15 por Juan Jose Ramirez Lama

Hace ya tiempo Google sacó un sistema novedoso, la autenticación en 2 pasos. Para aquellos que no lo conozcan, no es más que un extra se seguridad basado en un código temporal en base al que genera un código aleatorio que te permite acceder a tu cuenta de Gmail. Puesto que el código es aleatorio y se cambia cada ~30 segundos, es prácticamente imposible que alguien que esté a la escucha (ataque made in the middle) pueda capturar la contraseña.

Para dar más seguridad a nuestro equipo, lo instalaremos para que nos pida el codigo al momento de iniciar sesión y además también lo añadiremos para que lo solicite cuando iniciemos por ssh.

En este post vamos a ver cómo configurar este nuevo software con nuestro servidor SSH y cómo poder enlazarlo en nuestro celular (Android, iPhone o Blackberry).

Primero como siempre abrir una terminal y teclear:
  • # apt-get install libqrencode3

Descargar la aplicación Google Authenticator

Está disponible en las appstore de sus sistemas bajo el nombre de "Google Authenticator".

Instalar el software necesario en el sistema GNU/Linux

Si estás empleando Ubuntu, puedes añadir directamente el repositorio,
  • # add-apt-repository ppa:failshell/stable
  • # apt-get update
  • # apt-get install libpam-google-authenticator

Si estas en Debian 7 puedes descargar lo aquí

En caso de emplear otra distro, podrás descargarte el código desde aquí y compilarlo.

Para configurar SSH

Una vez tengas el software instalado, sólo quedará por realizar los pequeños cambios en los archivos de configuración oportunos.

Debemos editar el archivo /etc/pam.d/sshd
  •  # nano /etc/pam.d/sshd
y añadir en el archivo la linea
auth required pam_google_authenticator.so
Luego editar el archivo /etc/ssh/sshd_config

  • # nano /etc/ssh/sshd_config 

y buscar la linea
ChallengeResponseAuthentication no
y cambiarla por
ChallengeResponseAuthentication yes
Luego reiniciar el servidor ssh

  • # service ssh restart

Para Login


Debemos editar el archivo /etc/pam.d/gdm3
  •  # nano /etc/pam.d/gdm3
y añadir en el archivo la linea
auth required pam_google_authenticator.so

Para Login y/o SSH: Generar la clave para el usuario

Ahora que ya el administrador hizo todo su trabajo, sólo queda generar una nueva clave. Para ello habrá que ejecutar el comando 'google-authenticator' como usuario, lo que generará un código QR que será el que tengamos que leer con nuestro teléfono. A mayores, nos ofrece un 5 códigos de emergencia, los cuales debería de ser guardados en un lugar seguro y también una clave secreta, por si no tienes un lector de códigos QR, poder crear la nueva cuenta en la aplicación móvil.
  • $ google-authenticator #ejecurar comando como usuario
Y aparecera algo como lo siguiente en nuestra terminal (recuerda como usuario, no como rut):
[IMAGEN QR]
Your new secret key is: GSDRTXXXXMEHZ5545
Your verification code is 111xx
Your emergency scratch codes are:
  622945xx
  676497xx
  805598xx
  170280xx
  576423xx
Do you want me to update your "~/.google_authenticator" file (y/n) y
...
...


Ahora abres la aplicación en tu celular, presionas el signo + y seleccionas escanear código QR, enfocas el código de la terminal y listo, ya tienes enlazado tu celular al equipo.

para finalizar, en la terminal te pregunta una serie de opciones, dependiendo de tus gustos pones yes o no, yo puse a todo que si.

Sin duda es una forma muy útil de tener un extra se seguridad a muy bajo precio y aparte del software aquí comentado, lo único que se necesita es que ambos equipos (celular y equipo) estén con la hora sincronizada (NTP), para que la clave generada - clave esperada coincidan.
Comments