SSH es un "protocolo de shell seguro" que se utiliza para conectar y administrar sistemas Linux remotos de forma segura a través de una red no segura. Es muy útil para que los administradores de sistemas realicen las tareas del día a día en el servidor remoto. Por lo tanto, asegurar un servidor SSH es una parte esencial de cualquier administrador de sistemas.
De forma predeterminada, puede conectarse a SSH con una contraseña o usando la clave privada. Eso significa que es solo una autenticación de un solo factor. Por lo tanto, es una buena idea implementar la autenticación multifactor en el servidor SSH para agregar una capa adicional de seguridad. En la autenticación multifactor, deberá proporcionar su contraseña de usuario del sistema y otra contraseña generada en un dispositivo móvil. Esto mejorará significativamente la seguridad de su servidor.
En este tutorial, le mostraremos cómo configurar la autenticación multifactor para SSH en Ubuntu 20.04 VPS.
Requisitos
- Un Ubuntu 20.04 VPS (usaremos nuestro plan SSD 2 VPS)
- Acceso a la cuenta de usuario root (o acceso a una cuenta de administrador con privilegios de root)
Paso 1:Inicie sesión en el servidor y actualice los paquetes del sistema operativo del servidor
Primero, inicie sesión en su servidor Ubuntu 20.04 a través de SSH como usuario raíz:
ssh root@IP_Address -p Port_number
Deberá reemplazar 'IP_Address' y 'Port_number' con la dirección IP y el número de puerto SSH respectivos de su servidor. Además, reemplace "root" con el nombre de usuario de la cuenta de administrador si es necesario.
Antes de comenzar, debe asegurarse de que todos los paquetes del sistema operativo Ubuntu instalados en el servidor estén actualizados. Puede hacerlo ejecutando los siguientes comandos:
apt-get update -y apt-get upgrade -y
Paso 2:Instalar Google Authenticator
Usaremos Google Authenticator para la autenticación multifactor. Por lo tanto, deberá instalar el módulo PAM de Google Authenticator en su sistema. Puede instalarlo ejecutando el siguiente comando:
apt-get install libpam-google-authenticator -y
Una vez que se haya instalado el paquete, ejecute Google Authenticator usando el siguiente comando:
google-authenticator
Durante la instalación, se le hará la siguiente pregunta:
Do you want authentication tokens to be time-based (y/n) y Warning: pasting the following URL into your browser exposes the OTP secret to Google: https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@ubuntu2004%3Fsecret%3D4XXQ2QA6FRV72SDM2JWSZTQJE4%26issuer%3D
Presiona y y pulsa Intro continuar. Debería ver un código QR en la siguiente pantalla:
Responda todas las preguntas y pulse Intro para finalizar el proceso como se muestra a continuación:
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, a new token is generated every 30 seconds by the mobile app. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server. Do you want to do so? (y/n) y If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting? (y/n) If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting? (y/n) y
Paso 3:Instale la aplicación Google Authenticator
A continuación, deberá instalar la aplicación Google Authenticator en su teléfono inteligente. Una vez instalado, abre Google Authenticator en tu móvil y escanea el código QR anterior. Una vez que se escanee el código QR, debería ver una contraseña de un solo uso de seis dígitos en su teléfono, como se muestra a continuación:
Esta contraseña caducará en 30 segundos, por lo que deberá abrir la aplicación Google Authenticator y ver una nueva contraseña para iniciar sesión en el servidor de Ubuntu a través de SSH.
También puede ver la clave secreta, el código de verificación y el código de emergencia en el resultado anterior. Se recomienda guardarlo en un lugar seguro para su uso posterior.
Your new secret key is: 4XXQ2QA6FRV72SDM2JWSZTQJE4 Your verification code is 423832 Your emergency scratch codes are: 96469497 84504151 61871048 79931657 71052210
Paso 4:Configure SSH para usar Google Authenticator
A continuación, también deberá configurar SSH para usar Google Authenticator. Puede configurarlo editando el archivo /etc/ssh/sshd_config:
nano /etc/ssh/sshd_config
Cambie las siguientes líneas:
UsePAM yes ChallengeResponseAuthentication yes
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio SSH para aplicar la configuración:
systemctl restart sshd
A continuación, deberá editar el archivo /etc/pam.d/sshd y definir las reglas PAM para el servicio SSH:
nano /etc/pam.d/sshd
Agregue la siguiente línea después de @include common-auth :
auth required pam_google_authenticator.so
Guarde y cierre el archivo.
Paso:5 Probar autenticación de dos factores
En este punto, su servidor SSH ahora está configurado con autenticación de múltiples factores. Es hora de conectarlo y probarlo.
En el sistema remoto, abra su terminal e inicie sesión en su servidor a través de SSH como se muestra a continuación:
ssh root@ssh-server-ip
Se le pedirá que proporcione la contraseña de su sistema y el código de verificación generado por Google Authenticator. Proporcione la contraseña de su sistema que se muestra en la aplicación Google Authenticator y presione Enter para iniciar sesión en el servidor como se muestra a continuación:
¡Felicidades! su servidor SSH ahora está protegido con autenticación multifactor.
Por supuesto, no tiene que configurar la autenticación multifactor para SSH en Ubuntu VPS si utiliza uno de nuestros servicios de Hosting gestionado, en cuyo caso simplemente puede solicitar a nuestros administradores expertos de Linux que configuren la autenticación multifactor para SSH. en Ubuntu, para ti. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD. Si le gustó esta publicación sobre cómo configurar la autenticación multifactor para SSH en Ubuntu, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.