Cómo configurar la autenticación de dos factores para SSH en Fedora


Todos los días parece que se han reportado muchas violaciones de seguridad donde nuestros datos están en peligro. A pesar del hecho de que SSH es una forma segura de establecer una conexión remota con un sistema Linux, un usuario desconocido puede obtener acceso a su máquina Linux si roban sus claves SSH, incluso si deshabilita las contraseñas o solo permite conexiones SSH a través Claves públicas y privadas.

En este artículo, explicaremos cómo configurar la autenticación de dos factores ( 2FA ) para SSH en Fedora la distribución de Linux usando Google Authenticator para acceder un sistema Linux remoto de una manera más segura al proporcionar un número TOTP ( La contraseña única basada en el tiempo ) generado aleatoriamente por una aplicación de autenticación en un dispositivo móvil.

Tenga en cuenta que puede usar cualquier aplicación de autenticación bidireccional para su dispositivo móvil que sea compatible con el algoritmo TOTP . Existen numerosas aplicaciones gratuitas disponibles para Android o IOS que admiten TOTP y Google Authenticator , pero este artículo utiliza Google Authenticator como ejemplo.

Instalación de Google Authenticator en Fedora

Primero, instale la aplicación Google Authenticator en su servidor Fedora usando el siguiente comando dnf.

$ sudo dnf install -y google-authenticator

Una vez instalado Google Authenticator , ahora puede ejecutar la aplicación.

$ google-authenticator

La aplicación le pide una serie de preguntas. Los siguientes fragmentos le muestran cómo responder por una configuración razonablemente segura.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

La aplicación le proporciona una clave secreta, un código de verificación y códigos de recuperación. Mantenga estas claves en un lugar seguro y seguro, ya que estas son la única forma de acceder a su servidor si pierde su dispositivo móvil.

Configuración de la autenticación del teléfono móvil

En su teléfono móvil, vaya a la tienda de aplicaciones Google Play o iTunes y busque Google Authenticator e instale la aplicación.

Ahora abra la aplicación Google Authenticator en su teléfono móvil y escanee el código QR que se muestra en la pantalla del terminal de Fedora. Una vez que se complete el escaneo del código QR, la aplicación del autenticador obtendrá un número generado al azar y lo utilizará cada vez que se conecte a su servidor de Fedora de forma remota.

Finalizar la configuración de Google Authenticator

La aplicación Google Authenticator hace más preguntas y el siguiente ejemplo muestra cómo responderlas para configurar una configuración segura.

Ahora necesita configurar SSH para usar la nueva autenticación bidireccional como se explica a continuación.

Configurar SSH para utilizar Google Authenticator

Para configurar SSH para usar la aplicación autenticador , primero debe tener una conexión SSH que funcione con claves SSH públicas, ya que deshabilitaremos las conexiones de contraseña.

Abra el archivo /etc/pam.d/sshd en su servidor.

$ sudo vi /etc/pam.d/sshd

Comente la línea auth subst password password-auth en el archivo.

#auth       substack     password-auth

A continuación, coloque la siguiente línea al final del archivo.

auth sufficient pam_google_authenticator.so

Guarde y cierre el archivo.

A continuación, abra y edite el archivo /etc/ssh/sshd_config .

$ sudo vi /etc/ssh/sshd_config

Busque la línea ChallengeResponseAuthentication y cámbiela a yes .

ChallengeResponseAuthentication yes

Busque la línea PasswordAuthentication y cámbiela a no .

PasswordAuthentication no

A continuación, coloque la siguiente línea al final del archivo.

AuthenticationMethods publickey,password publickey,keyboard-interactive

Guarde y cierre el archivo y luego reinicie SSH.

$ sudo systemctl restart sshd

Prueba de autenticación de dos factores en Fedora

Ahora intente conectarse a su servidor de forma remota, le pedirá que ingrese un código de verificación.

$ ssh [email protected]

Verification code:

El código de verificación se genera aleatoriamente en su teléfono móvil por su aplicación de autenticador. Como el código generado cambia cada pocos segundos, debe ingresarlo rápidamente antes de que cree uno nuevo.

Si ingresa el código de verificación incorrecto, no podrá conectarse al sistema y recibirá un error de permiso denegado.

$ ssh [email protected]

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).

Al implementar esta sencilla autenticación bidireccional, ha agregado una capa adicional de seguridad a su sistema y, por lo tanto, hace más difícil que un usuario desconocido acceda a su servidor.