Cómo proteger tu Raspberry Pi con CrowdSec: Guía exhaustiva y actualizada

  • CrowdSec ofrece una protección avanzada frente a ataques automatizados y amenazas externas en Raspberry Pi, superando alternativas clásicas como Fail2Ban.
  • La instalación y configuración en Raspberry Pi requiere atención a la arquitectura, la versión del sistema operativo y el uso correcto de escenarios para maximizar la protección.
  • Combinar CrowdSec con servicios como Nginx y honeypots eleva el nivel de seguridad y permite recolectar inteligencia de amenazas globalmente.

CrowdSec Raspberry Pi

Proteger una Raspberry Pi conectada a Internet es una necesidad cada vez más presente, tanto para usuarios avanzados como para quienes se inician en la domótica, servidores domésticos o proyectos educativos. Las amenazas no paran de crecer y, lamentablemente, muchos métodos tradicionales no son suficientemente eficaces frente a los ataques automatizados, botnets y escaneos masivos que recorren la red global. En este contexto, CrowdSec se posiciona como una de las soluciones más avanzadas y colaborativas, permitiendo que tu Raspberry Pi no solo se defienda, sino que también ayude a mejorar la seguridad de la comunidad.

Si buscas la mejor forma de proteger tu Raspberry Pi frente a accesos no deseados, ataques de fuerza bruta, exploits o simplemente quieres ir un paso más allá del típico Fail2Ban, sigue leyendo. Aquí encontrarás una guía completa, actualizada y con todos los detalles técnicos y prácticos para instalar y aprovechar al máximo CrowdSec en tu Raspberry Pi, integrando información clave de la documentación oficial, guías, tutoriales y experiencias reales de usuarios.

¿Qué es CrowdSec y por qué es la mejor opción para Raspberry Pi?

CrowdSec es una plataforma de protección colaborativa contra amenazas, diseñada para identificar, mitigar y compartir información sobre ataques en tiempo real. Se podría definir como el sucesor natural de Fail2Ban, pero con una arquitectura moderna y basada en inteligencia colectiva: cada instancia detecta comportamientos sospechosos y contribuye al conocimiento global de IPs maliciosas. Además, su desarrollo en el lenguaje Go le confiere eficiencia y bajo consumo de recursos, algo fundamental en dispositivos como la Raspberry Pi.

Las principales ventajas de CrowdSec frente a otras soluciones son:

  • Detección proactiva y basada en escenarios: puedes proteger servicios como SSH, HTTP, FTP, SMTP o cualquier otro que genere logs.
  • Actualizaciones constantes de reglas y escenarios para adaptarse a las amenazas emergentes.
  • Bloqueo automático con bouncers integrados en el firewall, con soporte para iptables y nftables.
  • Colaboración y visibilidad global: cada ataque detectado por tu Pi ayuda a proteger a otros y viceversa, gracias a su red de inteligencia compartida.
  • Consumo eficiente de recursos, ideal para correr en una Raspberry Pi sin sacrificar rendimiento.

Compatibilidad y requisitos: ¿Qué Raspberry Pi y sistema operativo necesito?

Antes de lanzarte a la instalación, es fundamental comprobar algunos aspectos de compatibilidad:

  • Sistema operativo: CrowdSec requiere una versión de Raspberry Pi OS (antes Raspbian) de 64 bits. No existen paquetes ni soporte oficial para sistemas de 32 bits. Recomendación: utiliza Raspberry Pi OS Bookworm o Bullseye en 64 bits.
  • Modelo de Raspberry Pi: CrowdSec funciona correctamente en todas las Raspberry Pi que soportan sistemas operativos de 64 bits (Raspberry Pi 3, 4, 5, Zero 2 W, etc.).
  • Recursos mínimos: Aunque el consumo es bajo, se recomienda disponer al menos de 1 GB de RAM y una tarjeta microSD de calidad.
  • Permisos de administrador: Necesitarás acceso root o sudo para instalar paquetes y modificar la configuración del sistema y los firewalls.

¡Ojo! Si utilizas modelos muy antiguos como la Raspberry Pi B (con arquitectura armv6), podrías encontrar problemas de compatibilidad y fallos al ejecutar CrowdSec, incluso compilando el binario manualmente. En este caso, la mejor opción es cambiar a un modelo más reciente compatible con 64 bits.

Cómo instalar CrowdSec en tu Raspberry Pi paso a paso

La instalación de CrowdSec en Raspberry Pi se ha simplificado mucho gracias a los repositorios oficiales para ARM y las instrucciones detalladas. Sin embargo, es importante seguir cada paso cuidadosamente para evitar errores y asegurarte de que la protección queda activa.

  1. Actualizar el sistema y dependencias básicas
    Antes de empezar, actualiza el sistema operativo:

sudo apt update
sudo apt upgrade -y

Después, instala las herramientas necesarias como curl y lsb-release:

sudo apt install curl lsb-release

  1. Añadir el repositorio oficial de CrowdSec
    Descarga y añade la clave GPG para que los paquetes sean verificados correctamente:

curl -fsSL https://packagecloud.io/crowdsec/crowdsec/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/crowdsec_crowdsec-archive-keyring.gpg

Luego, añade el repositorio a tus fuentes:

echo "deb [signed-by=/usr/share/keyrings/crowdsec_crowdsec-archive-keyring.gpg] https://packagecloud.io/crowdsec/crowdsec/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/crowdsec.list

Actualiza el índice de paquetes:

sudo apt update

  1. Instalar CrowdSec y el bouncer de firewall
    CrowdSec se compone de dos partes: el motor de detección y el bouncer que bloquea IPs maliciosas en el firewall.

Instala el motor principal con:

sudo apt install crowdsec

Después, instala el bouncer para iptables o nftables (elige el que uses en tu sistema):

sudo apt install crowdsec-firewall-bouncer-iptables

Truco: Es recomendable instalar ambos paquetes por separado y no en la misma línea, para evitar problemas de registro automático del bouncer.

  1. Verificar la instalación y registro del bouncer
    Comprueba que el bouncer aparece correctamente listado:

sudo cscli bouncers list

Si ves una entrada para el bouncer «crowdsec-firewall-bouncer» conectada en 127.0.0.1, todo está listo.

Configurando tu Raspberry Pi para proteger todos los servicios

Una de las ventajas de CrowdSec es la flexibilidad para proteger diferentes servicios. Por defecto, protegerá el SSH y analizará los logs del sistema, pero puedes ampliar la protección añadiendo escenarios y adaptando la configuración.

¿Qué son los escenarios en CrowdSec?

Los escenarios son reglas predefinidas que detectan patrones de ataque específicos. Por ejemplo, puedes activar reglas para detectar fuerza bruta en SSH, escaneos de puertos, explotación de vulnerabilidades web, etc.

Para ver qué escenarios están activos:

sudo cscli escenarios list

Ejemplo típico de salida:

crowdsecurity/ssh-bf         enabled
crowdsecurity/ssh-cve-2024-6387  enabled
crowdsecurity/ssh-slow-bf    enabled

Si quieres añadir escenarios adicionales, por ejemplo para bloquear escaneos multi-puerto, ejecuta:

sudo cscli escenarios install crowdsecurity/iptables-scan-multi_ports

Después, siempre debes recargar el servicio para aplicar cambios:

sudo systemctl reload crowdsec

Conectando tu Raspberry Pi a la consola de CrowdSec para monitorización global

CrowdSec dispone de una consola web gratuita (https://app.crowdsec.net) donde puedes visualizar gráficas, ataques detectados, estadísticas y el estado de todos tus dispositivos protegidos. Para asociar tu Raspberry Pi con la consola:

  1. Regístrate en la web de CrowdSec.
  2. Entra al apartado de «security engines» y copia el comando de enrolamiento personalizado que te aparece.
  3. Ejecuta ese comando en tu Raspberry Pi. Por ejemplo:

sudo cscli console enroll -e context

Una vez ejecutado, desde la web debes aceptar la solicitud de enrolamiento, y luego reiniciar el servicio crowdsec:

sudo systemctl restart crowdsec

¡Listo! Ahora podrás ver en la consola información en tiempo real sobre ataques bloqueados, IPs maliciosas detectadas y el estado de tu Raspberry Pi.

¡Da un salto en seguridad activando honeypots y detección web!

Si quieres llevar la protección al siguiente nivel y además contribuir datos a la comunidad, puedes transformar tu Raspberry Pi en una especie de honeypot configurando servicios señuelo para atraer y registrar el comportamiento de atacantes.

Protege SSH y crea un SSH «trampa» con endlessh

Endlessh es un programa que simula un servidor SSH, ralentizando a los atacantes y permitiendo que CrowdSec analice y bloquee IPs sospechosas.

  • Paso 1: Cambia el puerto de tu servidor SSH real. Edita el archivo /etc/ssh/sshd_config y pon, por ejemplo:

Port 22022

  • Paso 2: Instala endlessh:

sudo apt install endlessh

  • Paso 3: Configura endlessh para escuchar en el puerto 22, el habitual de SSH.
  • Paso 4: Instala la colección endlessh en CrowdSec para analizar los logs generados.

sudo cscli collections install crowdsecurity/endlessh
sudo systemctl reload crowdsec

Importante: endlessh solo puede correr en puertos privilegiados (<1024) si así se configura el sistema. Puedes hacerlo creando el archivo /etc/sysctl.d/50-unprivileged-ports.conf con el contenido net.ipv4.ip_unprivileged_port_start=0 y reiniciando.

En /etc/endlessh/config puedes definir parámetros como el puerto, retardo, número máximo de conexiones, etc.

Monitoriza ataques web con Nginx y escenarios específicos

Si tu Raspberry Pi ejecuta servicios web como Nginx, puedes aprovechar la potencia de CrowdSec para detectar intentos de explotación de vulnerabilidades web (como CVEs en Apache, Nginx, Grafana, Fortinet, etc.).

  1. Instala Nginx si aún no lo tienes:

sudo apt install nginx

  1. Asegúrate de que arranca correctamente:

sudo service nginx start

  1. Configura CrowdSec para leer los logs de Nginx:

Edita /etc/crowdsec/acquis.yaml y añade:

---
filenames:
  - /var/log/nginx/error.log
  - /var/log/nginx/access.log
labels:
  type: nginx
---
  1. Instala el escenario para CVEs web:

sudo cscli collections install crowdsecurity/http-cve
sudo systemctl reload crowdsec

Después, CrowdSec detectará intentos de explotación de vulnerabilidades conocidas y bloqueará a los atacantes automáticamente.

Solucciones a problemas habituales y recomendaciones prácticas

La instalación de CrowdSec en Raspberry Pi suele ser bastante estable, pero pueden surgir incidencias, especialmente si utilizas versiones antiguas del sistema operativo, arquitecturas no soportadas o mezclas paquetes oficiales con compilaciones manuales.

  • Problemas con arquitecturas ARMv6 (Pi B, Pi Zero antiguo): CrowdSec no ofrece binarios oficiales y pueden aparecer «segmentation faults» o errores graves. Recomendación: usa siempre un modelo compatible y sistema de 64 bits.
  • Compilación manual de CrowdSec: Si deseas compilar por tu cuenta, necesitarás instalar Go (versión 1.20 o superior), configurar variables de entorno GOARCH=arm, CGO=1, y usar un compilador cruzado (como gcc-arm-linux-gnueabihf) antes de ejecutar make. Consulta la documentación oficial si decides seguir este camino.
  • Recarga de servicios: Siempre que cambies la configuración recuerda recargar CrowdSec y los servicios relacionados (endlessh, Nginx, SSH) para que los cambios tengan efecto.
  • Actualiza los escenarios y colecciones periódicamente: CrowdSec mejora constantemente su inteligencia. Mantén tus reglas al día ejecutando sudo cscli hub update.

Consejos de optimización y buenas prácticas

Para sacarle el máximo partido a CrowdSec en Raspberry Pi, sigue estas recomendaciones:

  • Activa solo los escenarios que realmente necesitas para evitar sobrecarga innecesaria en tu Pi.
  • Revisa periódicamente los logs de CrowdSec en /var/log/crowdsec.log para detectar patrones de ataques o posibles errores de configuración.
  • Integra CrowdSec con la consola web para obtener una visión global y acceder a gráficos, estadísticas y gestión centralizada de todas tus instancias.
  • No te olvides de proteger los puertos y servicios que realmente utilices. Si tienes servicios experimentales o APIs, considera escenarios personalizados.
  • Únete a la comunidad de CrowdSec (Discord, foros, documentación oficial) para resolver dudas y compartir experiencias.

Participa y contribuye al proyecto CrowdSec

CrowdSec es un proyecto colaborativo y open source (código abierto), por lo que cualquier usuario puede sugerir mejoras, reportar errores o incluso contribuir con nuevos escenarios y adaptaciones para plataformas como Raspberry Pi. Si te animas, puedes participar en el repositorio oficial de GitHub y estar al día de nuevas actualizaciones, problemas conocidos y soluciones. ¡Tu Raspberry Pi puede ser una pieza fundamental en la protección global frente a amenazas!

Tras seguir estos pasos, tu Raspberry Pi estará protegida frente a la mayoría de ataques automatizados y amenazas presentes en Internet, al mismo tiempo que contribuyes a mejorar la seguridad de la comunidad. CrowdSec te permite evolucionar tu seguridad doméstica o de laboratorio a un nivel realmente profesional y colaborativo, siendo una solución robusta, eficiente y flexible para dispositivos de bajo consumo.

Deja un comentario