Anteriormente vimos como realizar una configuración básica para securizar nuestros servidores GNU/Linux (Hardening básico en GNU/Linux), y Hardening – Securizando contraseñas con PAM en GNU/Linux este caso vamos a implementar el factor de autenticación en dos pasos
¿Que es 2FA?
2FA son las siglas de 2 factor authentication (que en español se conoce como verificación de dos pasos), que forma parte de algo más grande, llamado MFA o multi-factor authentication (verificación de múltiples pasos). MFA se refiere a una forma de autentificar la identidad de un usuario usando múltiples factores independientes (o pasos), mismos que son validados para verificar la identidad de una persona. Para que en el caso de 2FA son dos factores (dos pasos) los que se deben presentar.
En primer lugar tenemos que instalar Google Authenticator:
Debian y derivados:
apt-get install libpam-google-authenticator
Redhat y derivados:
yum install google-authenticator
Configuración de Google Authenticator:
Nos indica si queremos habilitar la autentifación en dos pasos y le indicamos que si.
rokitoh@server01:~# google-authenticator
Do you want authentication tokens to be time-based (y/n)
A continuación nos muestra un código QRcode que mediante la aplicación Google Authenticator podemos leer
Guarda los codigos de respaldo, te servirá para recuperar el acceso si pierdes el móvil :
Your new secret key is: PV3LC4NBIQMFETYY
Your verification code is 515221
Your emergency scratch codes are:
69275409
63803502
76609089
74938014
83076044
Dejamos por defecto las opciones de configuración de Google Authenticator
Do you want me to update your «/root/.google_authenticator» file (y/n) y
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) yBy default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) yIf 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) y
Una vez configurado Google Authenticator tenemos que realizar la configuración en el PAM y sshd
Hacemos un backup antes de tocar cualquier fichero de configuración:
cp /etc/pam.d/sshd /etc/pam.d/sshd.bck
Añadimos al final del fichero la siguiente linea:
auth required pam_google_authenticator.so
Del mismo modo hacemos una copia de seguridad de la configuración del servicio ssh
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bck
Accedemos al archivo sshd_config y buscamos ChallengeResponseAuthentication, este linea tiene que estar configurada como:
ChallengeResponseAuthentication yes
Riniciamos el servicio de ssh
sudo service ssh restart
Ya tenemos todo preparado para acceder, nos conectamos al servidor y tiene que pedirnos la contraseña y después el código de verificación el cual tenemos que ver desde nuestro teléfono móvil mediante la aplicación Google Authenticator
rokitoh@lusy:~$ ssh rokitoh@192.168.1.18
Password:
Verification code:The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
:wq!
Una respuesta a “Hardening – configurar la autenticación de dos pasos”