Cómo configurar la autenticación de dos factores en una Raspberry Pi

La Raspberry Pi está en todas partes ahora, por eso ha llamado la atención de los actores de amenazas y los ciberdelincuentes. Le mostraremos cómo proteger su Pi con autenticación de dos factores.

La asombrosa Raspberry Pi

los Frambuesa pi es una computadora de placa única. Se lanzó en el Reino Unido en 2012 con la intención de que los niños jugaran, crearan y aprendan código. El factor de forma original era una placa del tamaño de una tarjeta de crédito, alimentada por un cargador de teléfono.

Proporciona salida HDMI, puertos USB, conectividad de red y ejecuta Linux. Las adiciones posteriores a la línea incluyeron versiones aún más pequeñas diseñadas para ser incorporadas en productos o funcionar como sistemas sin cabeza. Los precios van desde $ 5 para los minimalistas. Pi cero, a $ 75 por el Pi 4 B / 8 GB.

Su éxito ha sido increíble; más de 30 millones de estas pequeñas computadoras se han vendido en todo el mundo. Los aficionados han hecho cosas increíbles e inspiradoras con ellos, incluyendo flotando uno al borde del espacio y de regreso en un globo.

Por desgracia, una vez que una plataforma informática se generaliza lo suficiente, inevitablemente atrae la atención de los ciberdelincuentes. Es terrible pensar en cuántas Pi están usando la cuenta de usuario y la contraseña predeterminadas. Si su Pi está orientada al público y se puede acceder a ella desde Internet mediante Cubierta segura (SSH), debe ser seguro.

Incluso si no tiene datos o software valiosos en su Pi, necesita protegerlo porque su Pi no es el objetivo real, es solo una forma de ingresar a su red. Una vez que un actor de amenazas tiene un punto de apoyo en una red, cambiará a los otros dispositivos en los que realmente esté interesado.

Autenticación de dos factores

La autenticación, o el acceso a un sistema, requiere uno o más factores. Los factores se clasifican de la siguiente manera:

Algo que sepa: como una contraseña o una frase.
Algo que tienes: como un teléfono celular, una ficha física o un dongle.
Algo que eres: una lectura biométrica, como una huella digital o un escaneo de retina.

La autenticación multifactor (MFA) requiere una contraseña y uno o más elementos de las otras categorías. Para nuestro ejemplo, usaremos una contraseña y un teléfono celular. El teléfono celular ejecutará una aplicación de autenticación de Google y el Pi ejecutará un módulo de autenticación de Google.

Una aplicación de teléfono celular está vinculada a su Pi escaneando un código QR. Esto pasa cierta información inicial a su teléfono celular desde el Pi, asegurando que sus algoritmos de generación de números produzcan los mismos códigos simultáneamente. Los códigos se denominan contraseñas de un solo uso basadas en el tiempo (TOTP).

Cuando recibe una solicitud de conexión, su Pi genera un código. Utiliza la aplicación de autenticación en su teléfono para ver el código actual, y luego su Pi le pedirá su contraseña y código de autenticación. Tanto su contraseña como el TOTP deben ser correctos antes de que se le permita conectarse.

Configurando el Pi

Si normalmente usa SSH en su Pi, es probable que sea un sistema sin cabeza, por lo que lo configuraremos a través de una conexión SSH.

Es más seguro hacer dos conexiones SSH: una para configurar y probar, y otra para actuar como red de seguridad. De esta manera, si se bloquea fuera de su Pi, aún tendrá activa la segunda conexión SSH activa. Cambiar la configuración de SSH no afectará una conexión en progreso, por lo que puede usar la segunda para revertir cualquier cambio y remediar la situación.

Si sucede lo peor y está completamente bloqueado a través de SSH, aún podrá conectar su Pi a un monitor, teclado y mouse, y luego iniciar sesión en una sesión regular. Es decir, aún puede iniciar sesión, siempre que su Pi pueda manejar un monitor. Sin embargo, si no puede, realmente necesita mantener abierta la conexión SSH de la red de seguridad hasta que haya verificado que la autenticación de dos factores está funcionando.

La última sanción, por supuesto, es volver a actualizar el sistema operativo en la tarjeta micro SD de Pi, pero tratemos de evitar eso.

Primero, necesitamos hacer nuestras dos conexiones al Pi. Ambos comandos tienen la siguiente forma:

ssh [email protected]

ssh pi@watchdog.local en una ventana de terminal.

El nombre de este Pi es «perro guardián», pero en su lugar escribirás el tuyo. Si ha cambiado el nombre de usuario predeterminado, utilícelo también; el nuestro es «pi».

Recuerde, por seguridad, escriba este comando dos veces en diferentes ventanas de terminal para que tenga dos conexiones a su Pi. Luego, minimice uno de ellos para que no estorbe y no se cierre accidentalmente.

Después de conectarse, verá el mensaje de saludo. El mensaje mostrará el nombre de usuario (en este caso, «pi») y el nombre de la Pi (en este caso, «perro guardián»).

Una conexión SSH a una Raspberry Pi en una ventana de terminal.

Necesita editar el archivo «sshd_config». Lo haremos en el editor de texto nano:

sudo nano /etc/ssh/sshd_config

sudo nano / etc / ssh / sshd_config en una ventana de terminal.

Desplácese por el archivo hasta que vea la siguiente línea:

ChallengeResponseAuthentication no

Reemplace el «no» por «sí».

sshd_config abierto en el editor nano con la línea ChallengeResponseAuthentication resaltada, en una ventana de terminal.

Presione Ctrl + O para guardar sus cambios en nano, y luego presione Ctrl + X para cerrar el archivo. Utilice el siguiente comando para reiniciar el demonio SSH:

sudo systemctl restart ssh

sudo systemctl restart ssh en una ventana de terminal.

Debe instalar el autenticador de Google, que es un Módulo de autenticación conectable (PAM) biblioteca. La aplicación (SSH) llamará a la interfaz PAM de Linux y la interfaz encuentra el módulo PAM apropiado para dar servicio al tipo de autenticación que se solicita.

Escriba lo siguiente:

sudo apt-get install libpam-google-authenticator

sudo apt-get install libpam-google-authenticator en una ventana de terminal.

Instalación de la aplicación

La aplicación Google Authenticator está disponible para iPhone y Androide, tan solo instale la versión apropiada para su teléfono celular. También puede utilizar Authy y otras aplicaciones que admitan este tipo de código de autenticación.

Icono de la aplicación Google Authenticator en un teléfono celular Android.

Configuración de la autenticación de dos factores

En la cuenta que usará cuando se conecte a la Pi a través de SSH, ejecute el siguiente comando (no incluya el prefijo sudo):

google-authenticator

Se le preguntará si desea que los tokens de autenticación se basen en el tiempo; presione Y, y luego presione Enter.

UN Respuesta rápida Se genera un código (QR), pero está codificado porque es más ancho que la ventana de terminal de 80 columnas. Arrastre la ventana más amplia para ver el código.

También verá algunos códigos de seguridad debajo del código QR. Estos se escriben en un archivo llamado «.google_authenticator», pero es posible que desee hacer una copia ahora. Si alguna vez pierde la capacidad de obtener un TOTP (si pierde su teléfono celular, por ejemplo), puede usar estos códigos para autenticarse.

Debes responder cuatro preguntas, la primera de las cuales es:

Do you want me to update your "/home/pi/.google_authenticator" file? (y/n)

Presione Y y luego presione Enter.

¿Quieres que actualice tu

La siguiente pregunta es si desea evitar múltiples usos del mismo código en una ventana de 30 segundos.

Presione Y y luego presione Enter.

¿Quiere no permitir múltiples usos del mismo token de autenticación?  (y / n) en una ventana de terminal.

La tercera pregunta es si desea ampliar la ventana de aceptación de los tokens TOTP.

Presione N en respuesta a esto, y luego presione Entrar.

¿Quieres hacerlo?  (y / n) en una ventana de terminal.

La última pregunta es: «¿Desea habilitar la limitación de velocidad?»

Escribe Y y luego presiona Enter.

¿Quieres habilitar la limitación de velocidad?  (y / n) en una ventana de terminal.

Regresará al símbolo del sistema. Si es necesario, arrastre la ventana de la terminal más amplia y / o desplácese hacia arriba en la ventana de la terminal para que pueda ver el código QR completo.

En su teléfono celular, abra la aplicación de autenticación y luego presione el signo más (+) en la parte inferior derecha de la pantalla. Seleccione «Escanear un código QR» y luego escanee el código QR en la ventana del terminal.

Aparecerá una nueva entrada en la aplicación de autenticación con el nombre del nombre de host del Pi, y un código TOTP de seis dígitos aparecerá debajo. Se muestra como dos grupos de tres dígitos para facilitar la lectura, pero debe escribirlo como un número de uno y seis dígitos.

Un círculo animado al lado del código indica cuánto tiempo más será válido el código: un círculo completo significa 30 segundos, un semicírculo significa 15 segundos, y así sucesivamente.

Vincularlo todo junto

Tenemos un archivo más para editar. Tenemos que decirle a SSH qué módulo de autenticación PAM usar:

sudo nano /etc/pam.d/sshd

sudo nano /etc/pam.d/sshd en una ventana de terminal.

Escriba las siguientes líneas cerca de la parte superior del archivo:

#2FA

auth required pam_google_authenticator.so

auth requiere pam_google_authenticator.so agregado al archivo sshd en un editor, en una ventana de terminal.

También puede elegir cuándo desea que se le solicite el TOTP:

Después de haber ingresado su contraseña: Escriba las líneas anteriores debajo de “@include common-auth”, como se muestra en la imagen de arriba.
Antes de que se le solicite su contraseña: escriba las líneas anteriores sobre «@include common-auth».

Tenga en cuenta los guiones bajos (_) utilizados en «pam_google_authenticator.so», en lugar de los guiones (-) que usamos anteriormente con el comando apt-get para instalar el módulo.

Presione Ctrl + O para escribir los cambios en el archivo y luego presione Ctrl + X para cerrar el editor. Necesitamos reiniciar SSH una última vez, y luego terminamos:

sudo systemctl restart ssh

sudo systemctl restart ssh en una ventana de terminal.

Cierre esta conexión SSH, pero deje la otra conexión SSH de la red de seguridad funcionando hasta que hayamos verificado el siguiente paso.

Asegúrese de que la aplicación de autenticación esté abierta y lista en su teléfono celular, y luego abra una nueva conexión SSH al Pi:

ssh [email protected]

ssh pi@watchdog.local en una ventana de terminal.

Se le debe pedir su contraseña y luego el código. Escriba el código de su teléfono celular sin espacios entre los números. Al igual que su contraseña, no se refleja en la pantalla.

Si todo va según lo planeado, debería poder conectarse al Pi; de lo contrario, use su conexión SSH de red de seguridad para revisar los pasos anteriores.

Mejor más seguro que lamentar

¿Notó la «r» en «más seguro» arriba?

De hecho, ahora está más seguro que antes cuando se conectaba a una Raspberry Pi, pero nada es 100% seguro. Hay formas de eludir la autenticación de dos factores. Estos se basan en la ingeniería social, los ataques man-in-the-middle y man-the-endpoint, intercambio de SIM y otras técnicas avanzadas que, obviamente, no vamos a describir aquí.

Entonces, ¿por qué molestarse con todo esto si no es perfecto? Bueno, por la misma razón que usted cierra la puerta de su casa cuando se va, aunque hay personas que pueden abrir las cerraduras, la mayoría no.