Image

Base de conocimientos → Configurar la autenticación de dos factores en SSH usando Google Authenticator en Centos 7

[Servidores virtuales]
Fecha de publicación: 29.11.2022

El servicio SSH representa la mayor cantidad de ataques de adivinación de contraseñas, acaba de iniciar su servidor y después de unas horas en los registros puede ver intentos de conexión desde direcciones IP desconocidas. Para reducir el número de intentos, recomendamos cambiar inmediatamente el número de puerto en la configuración de sshd. Por supuesto, debe especificar una contraseña de buena complejidad utilizando letras, símbolos y números, con distinción entre mayúsculas y minúsculas. Para los servidores Linux, como regla, deberá recordar 2 contraseñas, 1 para un usuario normal, la segunda para root. Si hay varios servidores, generalmente recurren a varias aplicaciones que almacenarán la configuración de la sesión (host, inicio de sesión y contraseña), lo cual es bastante normal hasta que un atacante obtenga acceso a su estación de trabajo. En cualquier caso, hay sitios infectados, software, etc. Resulta que no puede estar completamente seguro de que estos datos estén seguros y disponibles solo para usted. Hay una solución para este caso.

Autorización de dos factores: se agrega una aplicación en su teléfono al inicio de sesión y la contraseña que, según el tiempo y una clave única, genera una pregunta y una respuesta a la pregunta en forma de números. Después de ingresar su nombre de usuario y contraseña, se le pedirá que ingrese un código de verificación, al que se puede acceder en la aplicación Google Authenticator.

Instalar los paquetes necesarios

yum install pam pam-devel google-authenticator 

Instalar aplicación móvil

 

Configuración

De forma predeterminada, es mejor deshabilitar el inicio de sesión del usuario en la configuración de sshd, por lo que si acaba de comenzar a configurar un nuevo servidor, cree un usuario. establezca una contraseña para ello e inicie sesión con el comando:

adduser username
passwd username
su username


Ejecute el comando debajo del usuario para el que está configurando la autenticación de dos factores:

google-authenticator

Presione "y" en el primer mensaje, donde se le preguntará si desea actualizar el archivo ./google_authenticator. Cuando se le solicite evitar el uso múltiple, presione "y" nuevamente para evitar que otro usuario use su código. Para el resto de las opciones, presione 'y' ya que todas mejoran el rendimiento de este software.

Asegúrese de haber copiado la clave secreta y los códigos de recuperación de emergencia en una hoja de papel. Mantenga esta información fuera de línea, porque incluso si alguien encuentra esta información, aún necesita averiguar el host, el nombre de usuario y la contraseña para ingresar.

Ahora configuremos PAM para aplicar todas nuestras configuraciones al servicio SSH, estas acciones ya deben ser realizadas desde el usuario root

vi /etc/pam.d/sshd

Agregue líneas al principio del archivo para que se vea así:

#%PAM-1.0
auth required pam_unix.so no_warn try_first_pass 
auth required pam_google_authenticator.so

Las líneas restantes que estaban en el archivo se dejan, van a continuación sin cambios. Guardemos el archivo y pasemos a configurar el servicio SSH.

vi /etc/ssh/sshd_config

Busque el parámetro "ChallengeResponseAuthentication no" y cambie "no" por "yes". Guarde los cambios y reinicie el servicio.

service sshd restart

Ahora configure la aplicación en su dispositivo móvil. Busque la opción "ingresar manualmente la clave" y haga clic en ella. Ingrese la clave secreta que anotó anteriormente y guárdela. Ahora aparecerá un código que deberá ingresar en el campo Código de verificación después de ingresar la contraseña.

Modificaciones:

  • Cambiar la secuencia de entrada:

Establecemos específicamente la secuencia de inicio de sesión - contraseña y luego el código de verificación. Si desea ingresar primero el código de la aplicación y luego la contraseña, simplemente elimine la primera línea para que el archivo quede así:

#%PAM-1.0
auth required pam_google_authenticator.so
  • Autenticación de dos factores cuando se inicia sesión como root

Por ejemplo, desea iniciar sesión en el servidor como un usuario normal con un nombre de usuario y una contraseña, y al ingresar el comando su, ingrese la contraseña raíz y el código de la aplicación. Ejecute la aplicación ./google_authenticator como root como lo hizo antes. Configure la aplicación móvil con el nuevo código y agréguelo al archivo:

vi /etc/pam.d/su

hasta el principio de la línea:

#%PAM-1.0
auth required pam_unix.so no_warn try_first_pass 
auth required pam_google_authenticator.so


Listo, no es necesario reiniciar el servicio. Ahora, cuando intente iniciar sesión como root, el comando requerirá un código de verificación de la aplicación.


PD Le recomendamos que verifique en otra sesión de ssh para evitar errores, tendrá la oportunidad de regresar y corregirlo.





Sin comentarios aún