Google-Authenticator: doble validación para tus cajas Linux

google-authenticator Cuando accedemos a nuestros servidores Linux mediante login (consola) o secure shell (SSH remoto) nos validamos como forma normal de dar seguridad al acceso. Estos mecanismos pueden ser mejorados en los niveles de seguridad mediante configuraciones en /etc/security (login) o ajustes y certificados en SSH; pero la validación en dos pasos, con clave (“lo que se“) y también con código de un-solo-uso (“lo que tengo”) vuelve el proceso de validación mucho más seguro.

En este artículo se describe cómo instalar en el servidor Linux la validación en dos pasos de Google para pedir el código único de acceso inmediatamente luego de validar la clave. Los pasos descriptos son para CentOS 7, pero conceptualmente son equivalentes a los que requiere Debian, donde también lo he instalado; así que vamos:

Requisitos previos

Se requieren los paquetes para compilar el módulo de PAM correspondiente. Una primer opción es instalar todo el ambiente de desarrollo:

yum group install "Development Tools"

O si, solo quieres lo mínimo necesario, deberían ser suficiente estos paquetes:

yum install git autoconf make gcc pam-devel

Fuentes de google-authenticator

Clonamos el repositorio git con la última versión del código:

git clone https://github.com/google/google-authenticator.git

Los fuentes también incluyen las aplicaciones para móviles, pero a nosotros no nos interesan ahora.

Compilación e instalación

Seguimos el documento de instalación dado por los desarrolladores, indicando solamente dónde queremos el módulo, para que lo tome automáticamente CentOS:

cd google-authenticator/libpam/
./bootstrap.sh
./configure --exec-prefix=/usr/lib64
make
make install

(solo ‘make install’ requiere privilegios de root, por lo que debería precederse de ‘sudo’, si corresponde)

Instalación en login

Agregar módulo PAM en archivo /etc/pam.d/login inmediatamente debajo de la linea del módulo ‘system-auth’, o como último módulo del tipo ‘auth’:

auth required pam_google_authenticator.so

Instalación en SSH

El módulo tiene que ser agregado en el archivo /etc/pam.d/sshd, también como último módulo del tipo ‘auth’:

auth required pam_google_authenticator.so

Además en el archivo de configuración del servidor SSH /etc/ssh/sshd_config habilitar:

ChallengeResponseAuthentication yes

para que siga el procedimiento de autenticación de PAM.

Reiniciar servidor sshd

systemctrl restart sshd

Configuración de usuarios

Cada usuario debe inicializar el sistema de códigos de un único uso y sincronizarlo con la aplicación de su celular y no es mi objetivo profunzar mucho en esto, pero el usuario ejecuta:

$ google-autenticator

y el sistema le hará unas preguntas de configuraciones de seguridad y generará un archivo .google_authenticator en el home del usuario. En ese archivo se incluyen también algunos códigos de emergencia y el código para iniciar la aplicación del móvil a calcular códigos.

Resultado

Y ya queda activo para ese usuario; aqui con login:

linuxbox login: rodolfo
Password:
Verification code:

Aquí con ssh:

$ ssh rodolfo@linuxbox
Password:
Verification code:
Last login: Wed May 6 17:10:16 CDT 2015 from r167-anteldata.net.uy on ssh:notty
Last login: Wed May 6 17:09:04 2015 from 167.60.140.132
[rodolfo@linuxbox ~]$

El sitio de XModulo tiene un buen conjunto de tutoriales sobre la instalación y configuración de google-authenticator y más información también está disponible buscando un poco.

Leave a Reply

  

  

  

Anti-Spam by WP-SpamShield