Búsqueda de sitios web

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


Cada día parece que se informan de muchas violaciones de seguridad en las que nuestros datos corren peligro. A pesar de que SSH es una forma segura de establecer una conexión remota a un sistema Linux, un usuario desconocido puede obtener acceso a su máquina Linux si roba sus claves SSH, incluso si desactiva las contraseñas o solo permite conexiones SSH a través de claves públicas y privadas.

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

Lea también: Cómo configurar la autenticación de dos factores para inicios de sesión SSH en CentOS y Debian

Tenga en cuenta que puede utilizar 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 plantea una serie de preguntas. Los siguientes fragmentos le muestran cómo responder para 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. Guarde estas claves en un lugar seguro, ya que son la única forma de acceder a su servidor si pierde su dispositivo móvil.

Configurar la autenticación del teléfono móvil

En su teléfono móvil, vaya a la tienda de aplicaciones Google Play o iTunes, 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 Fedora. Una vez que se complete el escaneo del código QR, la aplicación de autenticación obtendrá un número generado aleatoriamente y utilizará este número cada vez que se conecte a su servidor Fedora de forma remota.

Finalizar la configuración del Autenticador de Google

La aplicación Google Authenticator genera 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 usar Google Authenticator

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

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

sudo vi /etc/pam.d/sshd

Comente la línea auth substack 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 intenta conectarte a tu servidor de forma remota, te pedirá que ingreses un código de verificación.

ssh [email 

Verification code:

El código de verificación se genera aleatoriamente en su teléfono móvil mediante su aplicación de autenticación. Dado que 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 obtendrá el siguiente error de permiso denegado.

ssh [email 

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
Conclusión

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