El 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.
The Amazing Raspberry Pi
CONTENIDOS DE LA PAGINA
La Raspberry Pi es una computadora de placa única. Se lanzó en el Reino Unido en 2012 con la intención de hacer que los niños jueguen, creen y aprendan códigos. 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 ejecutarse como sistemas sin cabeza. Los precios van desde $ 5 para el minimalista Pi Zero, hasta $ 75 para 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, incluyendo flotar uno hasta el borde del espacio y de regreso en un globo.
Por desgracia, una vez que una plataforma informática se extiende lo suficiente, inevitablemente atrae la atención de los cibercriminales. Es terrible pensar cuántos Pi están usando la cuenta de usuario y contraseña predeterminadas. Si su Pi es pública y accesible desde Internet por Secure Shell (SSH), debe ser segura.
Incluso si no tiene ningún dato o software valioso en su Pi, debe 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, pasará a los otros dispositivos en los que está realmente interesado.
Autenticación de dos factores
La autenticación, u obtener acceso a un sistema, requiere uno o más factores. Los factores se clasifican de la siguiente manera:
- Algo que sabes: 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 retiniano.
La autenticación multifactor (MFA) requiere una contraseña y uno o más elementos de las otras categorías. Para nuestro ejemplo, vamos a usar 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 generalmente 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 realizar la configuración y las pruebas, y otra para actuar como una red de seguridad. De esta forma, si se bloquea de su Pi, todavía 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 normal. Es decir, aún puede iniciar sesión, siempre que su Pi pueda controlar 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 sanción definitiva, por supuesto, es volver a instalar el sistema operativo en la tarjeta micro SD del Pi, pero tratemos de evitarlo.
Primero, necesitamos hacer nuestras dos conexiones al Pi. Ambos comandos toman la siguiente forma:
ssh [email protected]
El nombre de este Pi es «perro guardián», pero en su lugar escribirás el nombre tuyo. Si ha cambiado el nombre de usuario predeterminado, úselo también; el nuestro es «pi».
Recuerde, por seguridad, escriba este comando dos veces en diferentes ventanas de terminal para tener dos conexiones a su Pi. Luego, minimice uno de ellos, para que quede fuera del camino y no se cierre accidentalmente.
Después de conectarte, verás el mensaje de saludo. El mensaje mostrará el nombre de usuario (en este caso, «pi») y el nombre de Pi (en este caso, «watchdog»).
Necesita editar el archivo «sshd_config». Lo haremos en el editor de nano texto:
sudo nano /etc/ssh/sshd_config
Desplácese por el archivo hasta que vea la siguiente línea:
ChallengeResponseAuthentication no
Reemplace el «no» con «sí».
Presione Ctrl + O para guardar sus cambios en nano y luego presione Ctrl + X para cerrar el archivo. Use el siguiente comando para reiniciar el demonio SSH:
sudo systemctl restart ssh
Debe instalar el autenticador de Google, que es una biblioteca del 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 atender el tipo de autenticación que se solicita.
Escriba lo siguiente:
sudo apt-get install libpam-google-authenticator
Instalar la aplicación
La aplicación Google Authenticator está disponible para iPhone y Android, así que solo instale la versión adecuada para su teléfono celular. También puede usar Authy y otras aplicaciones que admitan este tipo de código de autenticación.
Configurar la autenticación de dos factores
En la cuenta que usará cuando se conecte a Pi a través de SSH, ejecute el siguiente comando (no incluya el sudo
prefijo):
google-authenticator
Se le preguntará si desea que los tokens de autenticación se basen en el tiempo; presiona Y, y luego presiona Enter.
Se genera un código de Respuesta rápida (QR), pero está codificado porque es más ancho que la ventana de terminal de 80 columnas. Arrastre la ventana más 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 de ellos 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.
Debe 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 Entrar.
La siguiente pregunta le pregunta si desea evitar múltiples usos del mismo código dentro de una ventana de 30 segundos.
Presione Y, y luego presione Entrar.
La tercera pregunta le pregunta si desea ampliar la ventana de aceptación de los tokens TOTP.
Presione N en respuesta a esto y luego presione Entrar.
La última pregunta es: «¿Desea habilitar la limitación de velocidad?»
Escriba Y y luego presione Intro.
Regresó al símbolo del sistema. Si es necesario, arrastre la ventana de terminal más ancha y / o desplácese hacia arriba en la ventana de 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 esquina 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 host del Pi, y debajo de ella aparecerá un código TOTP de seis dígitos. Se muestra como dos grupos de tres dígitos para facilitar la lectura, pero debe escribirlo como un número de 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
Escriba las siguientes líneas cerca de la parte superior del archivo:
#2FA auth required pam_google_authenticator.so
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 utilizamos anteriormente con el apt-get
comando 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 hemos terminado:
sudo systemctl restart ssh
Cierre esta conexión SSH, pero deje activa la otra conexión SSH de red de seguridad hasta que verifiquemos 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]
Se le debe solicitar 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 aparece en la pantalla.
Si todo va de acuerdo al plan, se le debe permitir conectarse al Pi; de lo contrario, use su conexión SSH de red de seguridad para revisar los pasos anteriores.
Más seguro que lo siento
¿Notó la «r» en «más seguro» arriba?
De hecho, ahora estás más seguro que antes cuando te conectabas a una Raspberry Pi, pero nada es 100 por ciento seguro. Hay formas de eludir la autenticación de dos factores. Estos dependen de la ingeniería social, los ataques de hombre en el medio y de hombre en el punto final, el 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 cierra la puerta cuando se va, a pesar de que hay personas que pueden abrir las cerraduras, la mayoría no puede.