Una Raspberry Pi sentada en el teclado de un portátil.
Kiklas / Shutterstock

La Raspberry Pi está en todas partes ahora, por lo que 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 increíble Raspberry Pi

La Raspberry 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 incorporarse en productos o funcionar como sistemas sin cabeza. Los precios van desde $ 5 por el minimalista Pi Zero , hasta $ 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 asombrosas e inspiradoras con ellos, incluido flotar uno hasta el borde del espacio y volver 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ántos Pi están usando la cuenta de usuario y la contraseña predeterminadas. Si su Pi es pública y accesible desde Internet mediante Secure Shell (SSH), debe ser segura.

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 conocen como  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 realizar dos conexiones SSH: una para realizar la configuración y las pruebas, y otra para actuar como red de seguridad. De esta manera, si se bloquea 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 pi@watchdog.local

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" con "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 reiniciar ssh

sudo systemctl restart ssh en una ventana de terminal.

Debe instalar el autenticador de Google, que es una biblioteca de módulo de autenticación conectable (PAM). 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  Android , así que instale la versión adecuada para su teléfono celular. También puede utilizar Authy y otras aplicaciones que admitan este tipo de código de autenticación.

Ícono 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 al Pi a través de SSH, ejecute el siguiente comando (no incluya el  sudo prefijo):

autenticador de google

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

Se genera un código de respuesta rápida (QR), pero está codificado porque es más ancho que la ventana del 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:

¿Quieres que actualice tu archivo "/home/pi/.google_authenticator"? (s / n)

Presione Y, y luego presione Enter.

¿Quieres que actualice tu archivo "/home/pi/.google_authenticator"?  (y / n) en una ventana de terminal.

La siguiente pregunta es si desea evitar múltiples usos del mismo código dentro de 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 del terminal más amplia y / o desplácese hacia arriba en la ventana del 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.