Cómo habilitar SSH 2FA en Ubuntu Server 22.04
Cuando enciende un servidor Linux para el inicio de sesión SSH, siempre existe la posibilidad de que alguien ingrese al servidor y haga cosas malas. Una forma de evitar esto es habilitar la autenticación de dos factores en el servidor. Una vez habilitado, solo las personas con un código 2FA generado correctamente (junto con sus credenciales regulares) pueden obtener acceso. Aprenda a configurar SSH 2FA en su servidor Ubuntu.
VER: más de 40 términos de código abierto y Linux que necesita saber (Tecnopedia Premium)
que necesitas
- Una instancia en ejecución de Ubuntu Server 22.04.
- Un usuario con privilegios sudo.
Cómo instalar el software necesario
Lo primero que debe hacer es instalar un paquete: Google Authenticator. Esta es una herramienta de línea de comandos que puede agregar autenticación 2FA en su servidor.
Inicie sesión en su instancia de Ubuntu y emita el comando:
sudo apt-get install libpam-google-authenticator -y
Luego debe ejecutar el comando para crear la clave. El comando es:
google-authenticator
Se le preguntará si desea que el token de autenticación se base en el tiempo, que es lo que desea.escribe y
Luego presione Entrar en el teclado. Luego verá un código QR que su aplicación 2FA puede escanear.
Hay un problema con esto: si inicia sesión directamente en la terminal de la máquina física relevante, es posible que no pueda ver el código completo. Su mejor apuesta es iniciar sesión a través de SSH, para que pueda cambiar el tamaño de la terminal para ver el código QR completo (Figura A).
Figura A
Escanee el código QR con su aplicación 2FA (como Authy), o escriba la clave si el código es demasiado grande para que la aplicación lo escanee y presione Entrar. Luego se le pedirá que ingrese un código de la aplicación para confirmar la cuenta. Una vez confirmado, verá el código de emergencia para 2FA.Asegúrese de copiarlos y guardarlos en un lugar seguro como un administrador de contraseñas, luego escriba y
Cuando se le solicite actualizar el archivo ~/.google_authenticator. A continuación, se le pedirá que no permita varios usos del mismo token de autenticación.sigue escribiendo y
Acepte esto, ya que ayuda a prevenir ataques de intermediarios.Cuando se le solicite, escriba y
Para la última pregunta, permita hasta 30 segundos de diferencia de tiempo entre el servidor de autenticación y el cliente.
También debe habilitar la limitación de velocidad cuando ingrese el indicador y, que limita al atacante a no más de 3 intentos de inicio de sesión cada 30 segundos.
Cómo configurar el demonio SSH para 2FA
Ahora que 2FA está instalado y configurado, también debemos configurar el demonio SSH para usarlo. Abra el archivo de configuración del demonio SSH con el siguiente comando:
sudo nano /etc/ssh/sshd_config
Primero, busque la siguiente línea y asegúrese de que esté configurada en sí:
UsePAM yes
A continuación, busque la siguiente línea y cambie no por sí:
KbdInteractiveAuthentication no
Guarde y cierre el archivo.
Nota: En las versiones de Ubuntu anteriores a la 22.04, la línea anterior sería:
ChallengeResponseAuthentication yes
A continuación, abra el archivo de configuración de PAM con el siguiente comando:
sudo nano /etc/pam.d/sshd
Debajo de la línea @include common-auth, agregue la siguiente línea:
auth required pam_google_authenticator.so
Guarde y cierre el archivo.
Reinicie el demonio SSH con el siguiente comando:
sudo systemctl restart sshd
A continuación, abra una nueva ventana de terminal e intente iniciar sesión en la máquina remota. Primero se le pedirá su contraseña de usuario, luego se le pedirá un código 2FA. Después de ingresar con éxito el código 2FA, debería poder acceder al servidor.
Cómo habilitar 2FA con autenticación de clave SSH
Si usa la autenticación de clave SSH (y debería), debe tomar medidas adicionales. En el servidor, abra el archivo de configuración del demonio SSH con el siguiente comando:
sudo nano /etc/ssh/sshd_config
En la parte inferior del archivo, agregue las siguientes líneas:
AuthenticationMethods publickey,keyboard-interactive
Guarde y cierre el archivo.
Reinicie SSH con el siguiente comando:
sudo systemctl restart sshd
Después de verificar que la autenticación de clave SSH funciona, puede deshabilitar la autenticación de contraseña abriendo la configuración de SSH con el siguiente comando:
sudo nano /etc/ssh/sshd_config
Encuentra la siguiente línea:
PasswordAuthentication yes
cambiarlo a:
PasswordAuthentication no
Reinicie SSH con el siguiente comando:
sudo systemctl restart sshd
Felicitaciones, acaba de configurar un proceso de inicio de sesión SSH más seguro para Ubuntu Server 22.04. Solo asegúrese de estar probando a través de una segunda ventana de terminal al hacer esto, de modo que si algo sale mal, puede permanecer conectado a la ventana original (y puede restablecer la configuración). Disfrute de una capa extra de seguridad.
Más información sobre Ubuntu Dominar el kit de desarrollo de Linux De la Academia Tecnopedia.
Suscríbete a Tecnopedia Cómo hacer que la tecnología funcione en YouTube Obtenga los últimos consejos técnicos para profesionales de negocios de Jack Wallen.