Cómo asegurar SSH con la autenticación de dos factores de Google Authenticator
¿Quiere proteger su servidor SSH con una autenticación de dos factores fácil de usar? Google proporciona el software necesario para integrar el sistema de contraseña de un solo uso (TOTP) basado en el tiempo de Google Authenticator con su servidor SSH. Tendrá que introducir el código de su teléfono cuando se conecte.
Google Authenticator no "llama a casa" a Google: todo el trabajo sucede en su servidor SSH y en su teléfono. De hecho, Google Authenticator es completamente de código abierto, por lo que incluso puede examinar su código fuente..
Instalar Google Authenticator
Para implementar la autenticación multifactor con Google Authenticator, necesitaremos el módulo PAM de Google Authenticator de código abierto. PAM significa "módulo de autenticación conectable": es una forma de conectar fácilmente diferentes formas de autenticación en un sistema Linux.
Los repositorios de software de Ubuntu contienen un paquete fácil de instalar para el módulo PAM de Google Authenticator. Si su distribución de Linux no contiene un paquete para esto, deberá descargarlo de la página de descargas de Google Authenticator en Google Code y compilarlo usted mismo..
Para instalar el paquete en Ubuntu, ejecute el siguiente comando:
sudo apt-get install libpam-google-authenticator
(Esto solo instalará el módulo PAM en nuestro sistema; tendremos que activarlo manualmente para los inicios de sesión de SSH).
Crear una clave de autenticación
Inicie sesión como el usuario con el que iniciará la sesión de forma remota y ejecute el autenticador de google comando para crear una clave secreta para ese usuario.
Permita que el comando actualice su archivo de Google Authenticator escribiendo y. Luego se le harán varias preguntas que le permitirán restringir los usos del mismo token de seguridad temporal, aumentar la ventana de tiempo para la que se pueden usar los tokens y limitar los intentos de acceso permitido para impedir los intentos de craqueo de fuerza bruta. Todas estas opciones intercambian algo de seguridad por algo de facilidad de uso.
Google Authenticator le presentará una clave secreta y varios "códigos de rasguño de emergencia". Anote los códigos de rasguño de emergencia en algún lugar seguro: solo se pueden usar una vez cada uno, y están diseñados para usarse si pierde el teléfono..
Ingrese la clave secreta en la aplicación Google Authenticator en su teléfono (las aplicaciones oficiales están disponibles para Android, iOS y Blackberry). También puede usar la función de código de barras de escaneo: vaya a la URL ubicada cerca de la parte superior de la salida del comando y puede escanear un código QR con la cámara de su teléfono.
Ahora tendrás un código de verificación que cambia constantemente en tu teléfono.
Si desea iniciar sesión de forma remota como varios usuarios, ejecute este comando para cada usuario. Cada usuario tendrá su propia clave secreta y sus propios códigos..
Activar Google Authenticator
A continuación, deberá solicitar Google Authenticator para los inicios de sesión de SSH. Para ello, abre el /etc/pam.d/sshd archivo en su sistema (por ejemplo, con el sudo nano /etc/pam.d/sshd comando) y agregue la siguiente línea al archivo:
se requiere autenticación pam_google_authenticator.so
A continuación, abra la / etc / ssh / sshd_config archivo, localice el ChallengeResponseAuthentication línea, y cambiarlo para que lea como sigue:
ChallengeResponseAuthentication yes
(Si el ChallengeResponseAuthentication la línea aún no existe, agregue la línea anterior al archivo.)
Finalmente, reinicie el servidor SSH para que sus cambios surtan efecto:
sudo service ssh restart
Se le pedirá tanto su contraseña como el código de Google Authenticator cuando intente iniciar sesión a través de SSH.