Está en la página 1de 5

SAD 2 ASIR

PRÁCTICA 3 UNIDAD 2: Autenticación de doble factor

Agrupamiento: Individual Duración: 2 sesiones

Objetivos: Valorar la importancia de la autenticación 2FA para reforzar los sistemas


clásicos de usuario/contraseña

Introducción

El objetivo de esta práctica es que el alumno valore la importancia de la autenticación de

doble factor (2FA) para reforzar los sistemas clásicos de usuario/contraseña que son

débiles y propensos a ataques, añadiendo una capa de seguridad adicional. Para ello

usaremos Google Authenticator, el sistema de Google ampliamente implantado y con

soporte en muchas plataformas y dispositivos móviles.

Google Authenticator utiliza contraseñas de un solo uso basadas en tiempo (TOTP)

aunque también soporta contraseñas de un solo uso basadas en contador (HOTP)

aunque desde el punto de vista de la seguridad, son mejores las TOTP debido a que

tienes una validez de una ventana temporal que suele ser unos 30 segundos o un minuto

(depende del sistema). Nosotros usaremos el sistema TOTP.

Debes entregar una memoria con capturas y/o explicación de los pasos realizados.

Instalación de google authenticator en Fedora y en móvil

1. En una máquina virtual (importante: no uses el sistema anfitrión del aula pues por error

podrías dejar dañado el sistema de acceso al mismo), instala el paquete google-

authenticator (como root o con sudo):

# dnf install -y google-authenticator

Después instala la APP Google Authenticator en tu móvil Android o IOS.

1/5
SAD 2 ASIR
2. Una vez instalado google authenticator en Fedora, desde la línea de comandos y con el

usuario que quieras usar la autenticación 2FA, ejecuta la utilidad google-authenticator

alumno@pc:~$ google-authenticator

La aplicación te hace una serie de preguntas y se recomienda que contestes a lo

siguiente:

Do you want authentication tokens to be time-based (y/n)

La aplicación genera un secret key (clave secreta) y un QR. Abre la app Google

Authenticator y escanea el QR (o también meter a mano la clave secreta).

Automáticamente te aparecerá en la APP el usuario y equipo para el que has activado la

autenticación OTP y con la clave cambiando cada 30 segundos:

3. A partir de aquí debes seguir respondiendo a más preguntas que te hace desde consola

de Fedora:

Enter code from app (-1 to skip): -1

Do you want me to update your "/home/alumno/.google_authenticator" file? (y/n)

2/5
SAD 2 ASIR
Do you want to disallow multiple uses of the same authentication

token? This restricts you to one login about every 30s, but it increases

your chances to notice or even prevent man-in-the-middle attacks (y/n)

By default, a new token is generated every 30 seconds by the mobile app ...

(texto omitido)…

Do you want to do so? (y/n)

If the computer that you are logging into isn't hardened against brute-force

login attempts, you can enable rate-limiting for the authentication module.

By default, this limits attackers to no more than 3 login attempts every 30s.

Do you want to enable rate-limiting? (y/n)

A partir de aquí ya tienes creado en tu home el fichero .google_authenticator que si tienes

interés puedes visualizar con un editor de textos o con cat.

4. A continuación configuraremos la autenticación PAM (Pluggable Authentication Module)

en ssh para que use google_authenticator.

PAM es un mecanismo de autenticación flexible que permite independizar las

aplicaciones y servicios de un sistema GNU/Linux del proceso de identificación. Permite

configurar distintos sistemas de autenticación, sesión y cambio de contraseñas y

conectarlos a los servicios que queramos, como por ejemplo el servicio login (que permite

acceder al sistema desde una consola), el servicio sshd (que permite acceder via red

mediante SSH) o el servicio web de apache, por citar sólo unos pocos ejemplos.

Como root, edita el fichero /etc/pam.d/sshd y comenta la linea auth substack password-

auth:

#auth substack password-auth

3/5
SAD 2 ASIR
Después de esa línea añade las dos líneas:

auth requisite pam_unix.so nullok

auth requisite pam_google_authenticator.so

De tal manera que quede tal que así:

#auth substack password-auth

auth requisite pam_unix.so nullok

auth requisite pam_google_authenticator.so

En la ayuda (man pam_unix) puedes ver el significado del parámetro nullok que se le

pasa al módulo pam_unix

5. Edita el fichero /etc/ssh/sshd_config y cambia esta línea:

ChallengeResponseAuthentication yes

y reinicia el servicio con

# systemctl restart sshd

6. Desactiva SELinux en caso de estar activo. Puedes consultar si está activo con el

comando getenforce. Si devuelve Enforcing es que está activo. Desactivalo con el

comando:

# setenforce Permissive

Para que quede deactivado para siempre (aunque no es lo recomendable) es editar el

fichero etcselinux/config y configurar:

SELINUX=enforcing

7. Comprueba ahora que desde un terminal desde otro equipo (por ejemplo desde el propio

anfitrión) puedes hacer ssh al usuario y máquina fedora y te pide primero el password de

la cuenta y después el código temporal de Google Authenticator:

$ ssh alumno@192.168.100.124

4/5
SAD 2 ASIR
Password: ***** 

Verification code:******

8. Ahora intenta modificar el acceso por entorno gráfico (SDDM) para que sólo te pida el

pin de Google (KDE no soporta autenticación de dos factores, por eso debes hacerlo así).

Pista: para ellos debes editar el fichero /etc/pam.d/sddm

5/5

También podría gustarte