Actualizado a Ubuntu 22.04 LTS
Suelo activar el doble factor de autenticación en todas mis cuentas, ya sean redes sociales, servicios, login de wordpress, etc.
Lo tengo activado tanto en la cuenta de cliente de mi proveedor de hosting, como en el acceso al Plesk de mi VPS.
Sin embargo, me quedaba una puerta por securizar, las conexiones SSH.
Para mí es muy cómodo acceder vía SSH a mi servidor, ya sea para actualizar paquetes, reiniciar el servidor si hay algún problema y acceder a configuraciones concretas.
Mi servidor está basado en Ubuntu 22.04 LTS, y existe un paquete para poder configurar el doble factor de autenticación de Google Authenticator en las conexiones SSH. Así que vamos a ello.
Instalar y configurar los paquetes requeridos.
El paquete en se llama: libpam-google-authenticator.
sudo apt install libpam-google-authenticator
Una vez instalado, lo primero que haremos es reiniciar el servicio sshd:
sudo systemctl restart sshd.service
Ahora editamos con nano el archivo /etc/pam.d/sshd
sudo nano /etc/pam.d/sshd
Y añadimos al final del archivo:
auth required pam_google_authenticator.so
Guardamos con Ctrl+O y salimos de nano con Ctrl+X.
El siguiente paso es editar el archivo de configuración /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
Lo único que tenemos que hacer es cambiar el parámetro KbdInteractiveAuthentication de no a yes.
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
KbdInteractiveAuthentication yes # CAMBIAR ESTO A YES
Guardamos con Ctrl+O y salimos de nano con Ctrl+X.
Configurar la autenticación
Para ello lanzamos la configuración de google-authenticator:
sudo google-authenticator
Nos aparecerá un código QR gigante en la terminal, que es el que debemos escanear con nuestra aplicación de móvil, y además tendremos la lista de códigos de emergencia en caso de que perdamos nuestro dispositivo.
Además, nos hará una serie de preguntas. Resumiento, la configuración recomendada sería:
- Make tokens “time-base”: yes
- Update the .google_authenticator file: yes
- Disallow multiple uses: yes
- Increase the original generation time limit: no
- Enable rate-limiting: yes
Importante
Una vez repondido a todo, asegúrate de volver a reiniciar el servicio sshd
sudo systemctl restart sshd.service
De lo contrario, la próxima vez que intentes iniciar sesión vía SSH es posible que te de un error de login y tendrás que reiniciarlo desde Plesk, CPanel o pedirlo a tu proveedor de hosting.
Tras configurar correctamente, la próxima vez que inicies sesión, además de tu contraseña, te pedirá el código de Google Authenticator.
Deja una respuesta