|

17 Consejos de Seguridad Para Proteger Tu Raspberry Pi

Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información

Raspberry Pi tiene poca seguridad por defecto. He sido administrador de sistemas durante 20 años y soy bastante paranoico cuando se trata de la seguridad del sistema. Si abres puertos a Internet, usas tu Pi como punto de acceso Wi-Fi, o lo instalas en una red más grande, necesitas tomar precauciones de seguridad. En este artículo, te mostraré todo lo que hago con mis servidores Linux en el trabajo para mantenerlos seguros.

Mejorar la seguridad de un Raspberry Pi es similar a cualquier otro dispositivo Linux. Hay pasos lógicos, como usar una contraseña fuerte. Y también hay pasos más complejos como detectar ataques o usar cifrado.

Te voy a dar 17 consejos de seguridad para mejorar la seguridad de tu Raspberry Pi (y la mayoría de ellos aplican a todos los sistemas Linux). No tienes que hacerlos todos, depende de cuán expuesto esté tu sistema. Si solo lo estás usando en casa, intenta aplicar al menos los primeros consejos.

Si estás empezando con Raspberry Pi o Linux, tengo algo que puede ayudarte de inmediato.
Descarga mi hoja de trucos de comandos Linux gratis – es una guía de referencia rápida con todos los comandos esenciales que necesitas para avanzar con tu Raspberry Pi. Haz clic aquí para obtenerla gratis!

1 – Mantener Tu Sistema Actualizado

Esto puede parecer obvio, pero es lo más importante que hacer regularmente (por cierto, todos los consejos en esta lista están ordenados por prioridad, así que hazlos en orden, y detente solo si crees que es excesivo para tu configuración).

Es importante actualizar regularmente tu sistema usando el repositorio por defecto de Raspberry Pi OS. No solo obtendrás las últimas características, sino también cualquier corrección de seguridad para tus aplicaciones instaladas.

Trata de actualizar tu Raspberry Pi regularmente con:
sudo apt update
sudo apt upgrade

sudo apt upgrade

También puedes automatizar este proceso con el paquete unattended-upgrades.
Este procedimiento te permite instalar correcciones de seguridad automáticamente todos los días:

  • Instalar el paquete unattended-upgrades:
    sudo apt install unattended-upgrades
  • Abrir el archivo de configuración:
    sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
  • Cambiar lo que quieras en este archivo.
    Por defecto, sólo descargará actualizaciones de seguridad, pero puede cambiar esto si desea instalar todas las actualizaciones de Debian o incluso actualizaciones de otros repositorios.
    Te recomiendo al menos descomentar esta línea:
    //Unattended-Upgrade::Mail "";
    Y elija un usuario local para recibir las notificaciones. Por ejemplo:
    Unattended-Upgrade::Mail "root";
    unattended upgrade mail notification setting
    Sólo puede utilizar una dirección de correo electrónico normal si tiene un servidor de correo instalado (en inglés) (haz clic en el enlace para ver cómo configurarlo).
    E incluso para los usuarios locales, puede que necesites instalar el comando mail, por ejemplo con:
    sudo apt install mailutils
  • Guardar y salir (CTRL+O, CTRL+X).
  • Luego necesitamos configurar la actualización periódica.
    Abrir este archivo:
    sudo nano /etc/apt/apt.conf.d/02periodic
  • Pegar estas líneas (el archivo debería estar vacío, si no lo está, cambiar los valores):
    APT::Periodic::Enable "1";
    APT::Periodic::Update-Package-Lists "1";
    APT::Periodic::Download-Upgradeable-Packages "1";
    APT::Periodic::Unattended-Upgrade "1";
    APT::Periodic::AutocleanInterval "1";
    APT::Periodic::Verbose "2";

    Esto habilitará una actualización automática diaria.

    Pedimos a apt que realice: actualizaciones, descargue mejoras, instale mejoras, y limpie automáticamente todos los días.
    La última línea es el nivel de verbosidad que obtendrás en el /var/log/unattended-upgrades y el correo electrónico (1=bajo, 3=máx).
  • Guardar y salir (CTRL+O, CTRL+X).
  • Esto debería estar bien, puedes depurar tu configuración con este comando:
    sudo unattended-upgrades -d

No olvides comprobar el archivo de registro y/o los correos electrónicos recibidos para asegurarte de que todo está funcionando como se esperaba.

Espera, ¡tengo algunas recomendaciones para ti!

Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.

Una caja silenciosa y práctica Un SSD de alto rendimiento para potenciar tu Pi Una pantalla genial para liberar el televisor Un teclado dedicado con touchpad

2 – No Usar Auto-login o Contraseñas Vacías

Las contraseñas son una gran parte de la seguridad del sistema.

Primero: asegúrate de que todo acceso crítico pida una contraseña.
No uses auto-login y asegúrate de añadir un paso de inicio de sesión para cada aplicación a la que puedas acceder directamente.

raspberry pi configuration disable auto-login

No te enumeraré todas las aplicaciones, pero por ejemplo, si tienes un servidor web (en inglés), asegúrate de que los datos personales o las páginas de administración no sean accesibles sin una contraseña.

Asegúrate de que nadie use una contraseña vacía en el Raspberry Pi. Si tienes pocas cuentas, es fácil revisar todo el acceso.

Si tienes muchas cuentas de usuario, estos comandos podrían ayudarte:

  • Buscar contraseñas vacías:
    sudo awk -F: '($2 == "") {print}' /etc/shadow
    Esto mostrará solo cuentas con una contraseña vacía.
  • Bloquear cuentas inseguras:
    passwd -l <username>

3 – Cambiar la Contraseña Predeterminada para Pi

Un error común (en inglés) es dejar la contraseña predeterminada en el usuario pi (raspberry). Cualquiera que ya haya usado un Raspberry Pi conocerá esta contraseña. Mucha gente está escaneando puertos SSH e intentando iniciar sesión con pi/raspberry.

En instalaciones recientes de Raspberry Pi OS, ya no hay un inicio de sesión/contraseña predeterminado. Entonces, es probable que ya estés seguro, pero por si acaso, si tienes una instalación antigua, asegúrate de no cometer este error.

Cambiar la contraseña predeterminada debe ser lo primero que hagas en una nueva instalación.
Hacer esto es fácil, inicia sesión como pi e ingresa este comando:
passwd

sudo passwd reset

Intenta usar una frase con más de 15 caracteres para estar seguro contra ataques de fuerza bruta, y que sea fácil de recordar (ej: iloveraspberrytips es una buena contraseña fácil de recordar). Si necesitas algunas ideas, este sitio web ofrece un generador de contraseñas fácil-de-recordar (sí, es mío, pero me encantan ese tipo de contraseñas).

4 – Deshabilitar el usuario pi

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Como te dije, el nombre de usuario “pi” es uno de los más atacados con fuerza bruta junto con root. Los hackers tienen una lista de inicios de sesión comúnmente utilizados y principalmente intentan estos. Las nuevas instalaciones como Raspberry Pi OS Bookworm ya no usan este usuario por defecto, pero tal vez aún tengas una instalación antigua por ahí.

Incluso en las nuevas instalaciones, todavía es posible usarlo, pero te aconsejo encarecidamente no hacerlo. Incluso usar tu primer nombre o el nombre de tu empresa es una mejor idea (y está lejos de ser la mejor opción).

Si es posible, crea un nuevo usuario y desactiva el usuario pi para prevenir este tipo de ataques:

  • Crear un nuevo usuario:
    sudo adduser <username>
  • Darle el privilegio sudo si es necesario:
    sudo adduser <username> sudo
    Esto añadirá tu nuevo usuario al grupo sudo.
  • Verificar que todo funcione correctamente (acceso ssh, sudo, …).
  • Copiar archivos del usuario pi al nuevo usuario si es necesario:
    sudo cp /home/pi/Documents/* /home/<username>/Documents/ ...
  • Eliminar el usuario pi:
    sudo deluser --remove-home pi
    Si prefieres, puedes empezar bloqueando la cuenta (como se dijo previamente), y eliminarla solo después de algunas semanas, cuando estés seguro de que todo funciona bien.

Artículos relacionados:

5 – Deshabilitar Servicios Innecesarios

En Raspberry Pi, probamos muchos proyectos para todo, y esto podría ser un mal hábito para la seguridad.

Digamos que instalaste PHPMyAdmin (en inglés) hace meses para probar algo, pero ya no lo usas. Esto podría crear una brecha para que un atacante acceda a tu sistema.

Intenta detener o desinstalar servicios y aplicaciones innecesarios:

  • Listar servicios en ejecución:
    sudo service --status-all
    sudo service status running services
  • Para detener un servicio, usa:
    sudo service <service-name> stop
    Si se inicia automáticamente al arrancar, intenta:
    sudo update-rc.d <service-name> remove
  • O para desinstalarlo, debería ser algo como:
    sudo apt remove <service-name>

Puedes consultar mi tutorial sobre cómo desinstalar paquetes en un Raspberry Pi aquí si necesitas más detalles.

6 – Hacer que sudo requiera una contraseña

Como deberías saber, sudo (en inglés) no siempre pide una contraseña. La mayoría de las veces no necesitas escribir tu contraseña de nuevo. Es genial para la productividad, pero por razones de seguridad, no es una buena idea.

Si alguien logra obtener acceso al terminal de tu usuario principal de Raspberry Pi, los privilegios de superusuario estarán accesibles sin una contraseña.

Te recomiendo pedir una contraseña cuando se invoque sudo:

  • Editar este archivo:
    sudo nano /etc/sudoers.d/010_pi-nopasswd
  • Encontrar esta línea:
    pat ALL=(ALL) NOPASSWD: ALL
    O para todos los otros usuarios si seguiste los pasos anteriores.
  • Reemplazarla con:
    pat ALL=(ALL) PASSWD: ALL
  • Hacer lo mismo para cada usuario con acceso a sudo.
  • Guardar y salir (CTRL+O, CTRL+X).

7 – SSH: Prevenir Inicio de Sesión de root

Como dije anteriormente, los usuarios root y pi son a menudo los principales objetivos de los ataques de fuerza bruta. Es especialmente cierto cuando SSH está habilitado.

Por lo tanto, necesitas asegurarte de que root no tenga acceso directo por SSH. Si necesitas root, inicia sesión con tu usuario normal y luego usa sudo para obtener privilegios de superusuario (como se explica en este artículo).

Por defecto, el acceso root está deshabilitado.
Puedes verificar esto:

  • Abrir el archivo de configuración del servidor SSH:
    sudo nano /etc/ssh/sshd_config
  • Buscar esta línea:
    #PermitRootLogin prohibit-password
  • Si tienes algo más, comenta esta línea (agregando # al inicio).
  • Guardar y sal (CTRL+O, CTRL+X).
  • Reiniciar el servidor SSH si cambiaste algo en el archivo de configuración:
    sudo service ssh restart

¿No tienes idea de qué es SSH? Empieza por leer mi guía completa sobre eso.

8 – SSH: Cambiar el Puerto Predeterminado

El puerto predeterminado de SSH es 22.

Básicamente, los atacantes crearán bots para intentar iniciar sesión en este puerto.
Para prevenir esto, puedes cambiar el puerto predeterminado y establecer otro:

  • Editar el archivo de configuración del servidor SSH:
    sudo nano /etc/ssh/sshd_config
  • Buscar esta línea:
    #Port 22
  • Reemplazar el puerto por el que quieras usar y asegúrate de descomentar la línea:
    Port 1111
    Evita conflictos de puertos usando uno libre, lista completa aquí:
    Lista de puertos conocidos en Wikipedia.
  • Guardar y salir (CTRL+O, CTRL+X).
  • Reiniciar tu servidor:
    sudo service ssh restart

No te olvides de ajustar las reglas del firewall si tienes uno.

Antes de cerrar tu conexión actual, prueba la nueva, así podrás revertir si cometiste un error.
Necesitas actualizar el puerto en la configuración de tu conexión (con Putty es justo después de la dirección IP):
putty ssh port

9 – SSH: Usa claves SSH en vez de contraseñas

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

En los pasos anteriores, ya bloqueamos la mayoría de los script kiddies que hacen ataques amplios a cualquier dirección IP que responda.

Ahora pasamos a cosas que podrían protegerte incluso si enfrentas a un hacker competente que está especialmente interesado en atacar tu sistema.

Usar una contraseña fuerte ralentizará el ataque, pero siempre es posible encontrarla, incluso si toma semanas obtener la correcta. Para bloquear esto, usa claves SSH en lugar de contraseñas (en inglés) para tus conexiones. Un atacante puede adivinar una contraseña de 15 caracteres, pero no una clave SSH.

La idea principal es generar una clave en tu computadora, y luego añadirla a el Raspberry Pi para permitir una conexión desde tu computadora (con o sin contraseña). Te doy el procedimiento paso a paso en este artículo.

Solo una vez que funcione, deberías desactivar las contraseñas para las conexiones SSH.
Para hacerlo, cambia esta línea en el archivo de configuración SSH que vimos antes:
PasswordAuthentication no

10 – Instalar Fail2ban

Fail2ban es una herramienta que detecta ataques de fuerza bruta y los bloquea.

En los pasos anteriores, dije que un atacante podría tratar de encontrar tu contraseña durante meses, y tal vez puedan tener éxito. El principal propósito de Fail2ban es evitar esto.

Fail2ban bloqueará las direcciones IP de los atacantes si fallan al iniciar sesión más de X veces. Puedes configurar el número de intentos antes de un bloqueo y la duración del mismo.

Sigue estos pasos para instalar Fail2ban en tu Raspberry Pi:

  • Instalar el paquete:
    sudo apt install fail2ban
  • Por defecto, fail2ban bloqueará al atacante durante 10 min después de 5 fallos.
    Esa configuración está bien para empezar, pero si quieres cambiar esto, toda la configuración está en la carpeta /etc/fail2ban.
    Principalmente en /etc/fail2ban/jail.conf:
    sudo nano /etc/fail2ban/jail.conf
  • Reiniciar el servicio si cambias algo:
    sudo service fail2ban restart
fail2ban default service configurations
Fail2ban viene con un montón de aplicaciones soportadas con reglas básicas que puedes usar.

Esto debería realmente ralentizar a tu atacante. 5 intentos cada 10 minutos son 720 intentos al día. Si tu contraseña es algo más difícil que “password” o “123456789”, debería tomar mucho tiempo para que el hacker la encuentre.

Aquí está mi tutorial sobre cómo usar Fail2ban en tu Raspberry Pi (en inglés). Siéntete libre de revisarlo si necesitas más detalles o quieres profundizar en la configuración de este útil servicio.

11 – Instalar un Firewall

Si no sabes, un firewall te permite bloquear todos los puertos excepto los que necesitas y filtrar el acceso por IP. Por ejemplo, puedes bloquear a todos los demás y solo permitir el acceso SSH desde la dirección IP específica de tu computadora.

Como se explica en este artículo detallado, un antivirus no es obligatorio en Raspberry Pi (en inglés), y Linux en general, pero un firewall es una buena práctica si alojas algunos servicios críticos en él.

Estoy acostumbrado a instalar iptables para mis reglas de firewall, pero quizás para un principiante, no sea el camino más fácil de seguir. Por eso, te explicaré cómo instalar ufw (en inglés) Uncomplicated FireWall), que es más sencillo, y luego permitir solo lo que necesites.

Es una configuración básica con acceso HTTP para cualquiera, y SSH solo para ti, pero necesitas adaptar esto a lo que quieras hacer.

  • Instalar el paquete del firewall:
    sudo apt install ufw
  • Permitir acceso a Apache para todos:
    sudo ufw allow 80
    sudo ufw allow 443
  • Permitir acceso SSH solo para tu dirección IP (no es obligatorio, solo para darte otro ejemplo):
    sudo ufw allow from 192.168.1.100 port 22
    No olvides reemplazar los valores con tu propia configuración.
    En una red local, puedes obtener tu dirección IP con ipconfig (Windows) o ifconfig (Linux/Mac).
    Si cambiaste el puerto SSH en el paso anterior (a 1111 u otro), reemplázalo aquí.
  • Activar el firewall:
    sudo ufw enable
    Ten cuidado, esto activará el firewall ahora y también al iniciar el sistema.
    Si pierdes el acceso a tu dispositivo, no podrás solucionar esto, incluso después de un reinicio.
    Necesitarás cambiar la configuración directamente en el Raspberry Pi (físicamente).
  • Verificar que todo esté bien.

Para mostrar tus reglas actuales una vez que ufw esté habilitado, usa este comando:
sudo ufw status verbose

firewall ufw status

Para configuraciones más complejas, consulta su página de manual.
Mi otro tutorial sobre cómo construir un router inalámbrico con funciones de firewall también puede ayudarte.

Y este video también puede ser un buen punto de partida si necesitas más orientación visual:

12 – Haz Copia de Seguridad de Tu Sistema

Una de las peores consecuencias de un ataque es perder datos. Si haces copias de seguridad de tus archivos correctamente y con regularidad, estarás a salvo incluso si el hacker destruye tu tarjeta SD.

sd card copier raspbian

Ya escribí un artículo sobre cómo hacer una copia de seguridad y restaurar tu Raspberry Pi, así que no lo repetiré aquí.

Pero la segunda parte es crítica, asegúrate de que puedes leer tu copia de seguridad y que todos tus archivos importantes están dentro; de lo contrario, es inútil. Probar tus archivos de respaldo regularmente es una buena práctica.

13 – Encripta Tus Conexiones

Este es un tema extenso, y no voy a dar muchos detalles al respecto, pero te daré un ejemplo.

Con protocolos básicos, los datos fluyen en claro en la red. Es decir, si escribes tu contraseña, un hacker podría obtenerla mientras escucha la red. Afortunadamente, a menudo hay otros protocolos que funcionan de manera más segura al encriptar todos los datos.

Lo primero es dejar de usar protocolos inseguros (FTP, Telnet o HTTP, por ejemplo). Y luego intenta reemplazarlos con otros más seguros (SFTP, SSH, HTTPS).

El procedimiento depende de qué protocolos estás usando con tu Raspberry Pi. Tomemos el ejemplo de HTTP.

HTTP está bien si solo lo usas para contenido estático, nunca escribes una contraseña y no tienes datos sensibles en tu servidor. Pero tómate el tiempo para cambiar tu aplicación para usar el protocolo HTTPS de todas formas, será más seguro.

Es bastante simple de hacer, solo necesitas un certificado y cambiar algunas líneas en la configuración de Apache o Nginx (en inglés). Encontrarás muchos tutoriales útiles en Internet.

sftp example termius

Y la mayoría de las veces es fácil. Puedes cambiar directamente de FTP a SFTP ya que tu Raspberry Pi ya tiene SSH habilitado. Lo mismo con los usuarios de Telnet, ¿por qué necesitas Telnet cuando SSH está disponible?

Luego busca todos los protocolos que estás usando (especialmente con datos sensibles) y lo que puedes hacer para mejorar la seguridad general de tu sistema.

14 – Usar una VPN

Una opción más radical es acceder a tu Raspberry Pi a través de una VPN. VPN significa Red Privada Virtual y te permite acceder de manera remota a todos los servicios en tu Raspberry Pi como si estuvieras en la red local.

Todo el tráfico entre tú y el Raspberry Pi estará cifrado por un protocolo fuerte.

raspberry pi as vpn gateway

Esta es una buena opción para evitar abrir muchos puertos en Internet sin seguridad.
Tengo un artículo sobre cómo usar un Raspberry Pi como servidor OpenVPN, y puedes encontrar fácilmente más ayuda en Internet. Recientemente, cambié a WireGuard, pero es la misma idea (puedes encontrar más sobre WireGuard aquí, en inglés).

También puedes instalar NordVPN o cualquier otro proveedor (mi proveedor de VPN favorito para Raspberry Pi aquí) si quieres usar un túnel seguro para acceder a Internet desde tu Raspberry Pi (la misma idea en la otra dirección).

15 – Proteger el Acceso Físico

La última protección es obvia pero a menudo ignorada cuando hablamos de seguridad.
Puedes configurar los protocolos de seguridad, firewall, y VPN de todos los pasos que hemos discutido.
Pero si tu Raspberry Pi es accesible físicamente por cualquiera, es inútil.

Asegúrate de que el Raspberry Pi no pueda ser robado fácilmente (o la tarjeta SD), y que nadie pueda llegar y conectar un teclado y pantalla e iniciar sesión automáticamente. Los pasos a implementar para protegerse contra ese tipo de ataque dependerán de tu sistema.

Quizás necesites un cierre de sesión automático después de X minutos, una contraseña en el menú de arranque grub, o cifrar los datos en la tarjeta SD.

Piénsalo, ¿cuál podría ser la peor cosa que podría suceder si alguien accede físicamente a tu Raspberry Pi? Luego encuentra soluciones para prevenir que esto suceda.

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

16 – Comprobar los Logs Regularmente

Los dos últimos elementos en esta lista no son realmente protecciones, sino más bien compromisos a seguir. La mayor parte del tiempo, los ataques son visibles en los archivos de logs del sistema de archivos de Linux. Así que, intenta leerlos regularmente para detectar cualquier actividad sospechosa.

Todos los logs se encuentran en la carpeta /var/log, pero los archivos de registro principales a verificar son:

  • /var/log/syslog: archivo de registro principal para todos los servicios.
  • /var/log/message: archivo de registro de todo el sistema.
  • /var/log/mail.log: si tienes un servidor de correo, encontrarás un rastro de los correos electrónicos recientes enviados aquí.
  • Archivos de registro de aplicaciones críticas, como /var/log/apache2/error.log o /var/log/mysql/error.log

Ten en cuenta que en las versiones recientes del Raspberry Pi OS, la mayoría de los registros ahora son gestionados por el comando journalctl, que proporciona una manera centralizada de ver los registros del sistema.

Por ejemplo:

  • Para ver las últimas 50 entradas de registro:
    journalctl -n 50
  • Para ver registros relacionados con un servicio específico, como SSH:
    journalctl -u ssh
  • Para ver registros de los últimos dos días:
    journalctl --since "2 days ago"
journalctl read logs

Algunas soluciones están disponibles para simplificar este trabajo. Por ejemplo, puedes configurar syslog para enviar registros a un servidor maestro, con una interfaz para leerlos, filtrar, etc.
También puedes usar logwatch para obtener informes diarios sobre el funcionamiento del sistema.

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

17 – Leer las Noticias

Para mantener un buen nivel de seguridad en tus proyectos, intenta estar constantemente actualizado.

Veo nuevas vulnerabilidades en muchos paquetes de software importantes cada día, y podría tomar semanas o más para que la solución esté disponible en el repositorio de Raspberry Pi OS.

Si lees noticias de seguridad regularmente, puedes actuar más rápido para mantenerte protegido.
Aquí hay algunos buenos sitios web para seguir:

También podrías usar un escáner de vulnerabilidades como Nessus para encontrar solo las vulnerabilidades que aplican a tu sistema. Pero si tu proyecto requiere un alto nivel de seguridad, probablemente no deberías quedarte en Raspberry Pi.

Cuando estés preparado, aquí tienes un atajo para ti:

Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.

Publicaciones Similares