FeaturedNOTICIAS

Cómo habilitar dos factores para inicios de sesión SSH – CloudSavvy IT


Hombre con smartphone.
Shutterstock / TATSIANAMA

Si realmente desea bloquear su servidor en la nube, puede habilitar la autenticación de dos factores para SSH de la misma manera que lo agregaría a su cuenta de Gmail, evitando que alguien inicie sesión si roba su clave privada SSH.

¿Es realmente necesario?

En comparación con tener dos factores en una cuenta de correo electrónico o basada en la web, dos factores en SSH no son tan útiles. Para algo como el correo electrónico, el punto de falla suele ser los esquemas de restablecimiento de contraseña, contraseñas fáciles de descifrar o violaciones de datos. De hecho, todo lo relacionado con contraseñas incorrectas o mala gestión de contraseñas.

Para SSH, esto no es gran cosa. SSH utiliza un cifrado excelente para las claves públicas y privadas que utiliza para realizar conexiones. Si su servidor SSH está bloqueado y no permite el acceso a la contraseña, nadie ingresará a menos que tenga el dispositivo físico en el que está la clave, y no es muy probable que alguien pueda descifrar su clave SSH en cualquier momento. en el tiempo, este siglo. Entonces, de alguna manera, es casi como si ya tuviera dos factores, porque su clave permanecerá en su computadora portátil.

Pero, en algunos casos marginales, dos factores pueden ser una buena elección. Si un hacker loco decide robar su computadora portátil con la intención de robar sus claves SSH junto con ella (y no solo venderla en Craigslist cuando no pueden descifrar la contraseña de su dispositivo), tener dos factores lo haría dar un paso. sobre.

Sin embargo, un problema más real involucra el reenvío de agentes SSH; Con el reenvío de agentes habilitado, las solicitudes de claves para acceder a servidores adicionales se reenvían a su dispositivo. Esto le permite usar SSH a un servidor público y, desde ese servidor público, volver a SSH a otro servidor privado en la misma red, lo que le brinda un acceso similar al que funcionaría una VPN.

El problema, sin embargo, es que si el servidor público está comprometido, si tiene habilitado el reenvío de agentes, un atacante puede actuar como usted mientras está conectado al servidor público. Esta es una posible escalada de privilegios, dependiendo de cómo haya configurado su red. SSH de dos factores resolvería este problema.

Nuevamente, esta es una solución muy limitada y probablemente causará más problemas de los que previene, pero si se toma en serio el bloqueo de todo, le mostraremos cómo hacerlo.

Cómo habilitar dos factores para SSH

Para manejar solicitudes de dos factores, usaremos el Módulo de autenticación conectable (PAM) de Google, que funciona con Authy y Google Authenticator. Instálelo desde el administrador de paquetes de su distribución:

sudo apt-get install libpam-google-authenticator

Luego, ejecute este comando de inicialización:

google-authenticator

Responda sí a la primera pregunta sobre cómo tener tokens de autenticación basados ​​en el tiempo. Esto es más seguro. Su terminal se inundará con un código QR gigante, y probablemente tendrá que alejarse un poco.

Código QR gigantesco.

Abra su aplicación de autenticación y escanee su código (no la captura de pantalla). Su aplicación debería sincronizarse y comenzar a emitir códigos de seis dígitos que cambian cada 30 segundos.

También deberá tomar nota de toda la salida adicional, incluida la clave secreta y los códigos de emergencia. Estos se utilizan para recuperar el acceso a su servidor si está bloqueado por cualquier motivo, aunque se le debe advertir que cualquier problema relacionado con una configuración incorrecta puede dejarlo bloqueado permanentemente. Habilite dos factores opcionalmente para realizar pruebas antes de que sea obligatorio.

Para preguntas posteriores, responda lo siguiente:

  • Responda sí cuando actualice su configuración; de lo contrario, nada funcionará.
  • Responda sí para no permitir usos múltiples de cada token. Deben caducar una vez utilizados.
  • Responda no a la extensión de la ventana de código válida, ya que no tiene ningún sentido.
  • Responda sí para permitir la limitación de velocidad, que bloqueará a los atacantes después de tres intentos. Tus últimos tres códigos serán válidos durante un minuto y medio, por lo que no tienes que preocuparte por quedarte fuera por ser demasiado lento.

Toda su configuración se guarda en ~/.google-authenticator. Puede copiar este archivo a un servidor adicional para aplicar la misma configuración; no vuelva a ejecutar la herramienta de inicialización o tendrá que conectar dos dispositivos separados.

Configurar SSH para que funcione con Google PAM

Abra el archivo de configuración de PAM en /etc/pam.d/sshd en su editor de texto favorito y agregue la siguiente línea en la parte inferior:

auth required pam_google_authenticator.so nullok

los nullok directiva significa que esto es temporal, por lo que dos factores serán opcionales hasta que lo cambie. Déjelo así para probar. También necesitará encontrar la línea que contiene @include common-authy comentarlo con un #:

# Standard Un*x authentication.
#@include common-auth

Esto deshabilita la autenticación basada en contraseña, que no desea.

Luego, abra la configuración de SSH en /etc/ssh/sshd_config. Encuentra el ChallengeResponseAuthentication opción y activarla:

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes

Esto habilita 2FA, sin embargo, las claves SSH anulan 2FA de forma predeterminada, por lo que deberá solucionarlo agregando la siguiente línea al final de sshd_config:

AuthenticationMethods publickey,keyboard-interactive

Esto requiere una clave pública y un «teclado interactivo», que es el mensaje que le solicita el código de dos factores.

SSH ahora está configurado, por lo que puede reiniciar sshd para activarlo en estas nuevas configuraciones:

sudo systemctl restart sshd.service

Esto no cerrará su conexión abierta, por lo que debe ejecutar cualquier prueba de conexión en una placa de terminales separada. Abra una nueva pestaña e intente conectarse a su servidor. Debería ver un mensaje solicitando un código de verificación. Inserte uno de su teléfono y si todo está conectado correctamente, debería funcionar. De lo contrario, debería poder iniciar sesión en la cuenta dejándola en blanco.

Si todo funciona bien y comprobó que no hay problemas para iniciar sesión, puede eliminar el «nullok«Directiva en /etc/pam.d/sshd para que la 2FA sea obligatoria.

Si pierde el acceso, aún puede iniciar sesión con los códigos de emergencia que se le proporcionaron cuando configuró PAM, y la clave secreta debería permitirle volver a conectar una aplicación TOTP si la suya está desconectada por cualquier motivo.

Agregar acceso para cuentas de servicio

Si tiene una cuenta de servicio que necesita acceso a su servidor (por ejemplo, rsync), debe deshabilitar 2FA para esa cuenta. Esto es bastante fácil de hacer; Primero, nos gustaría crear un nuevo grupo para agregar cuentas de servicio a:

sudo groupadd service

Luego agregue el usuario a ese grupo:

sudo useradd <username>
sudo usermod -a -G service <username>

Luego, abra la configuración de PAM en /etc/pam.d/sshdy agregue la siguiente línea:

auth [success=done default=ignore] pam_succeed_if.so user ingroup service

Tenga en cuenta que esto permite el acceso a su servidor sin 2FA, pero si el usuario no es root, puede que no sea un gran problema.

TE INTERESA>>  ¿Quién salió con Common? Explorando la historia de las relaciones cuando la rapera y Tiffany Haddish se separaron oficialmente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba