CrowdSec: el firewall comunitario que protege con inteligencia colectiva

CrowdSec: el firewall comunitario que protege con inteligencia colectiva

CrowdSec bloquea atacantes antes de que toquen tu servidor usando listas negras generadas por miles de máquinas que comparten señales en tiempo real. El firewall comunitario analiza logs locales, detecta comportamientos maliciosos y envía la IP al cerebro colectivo, que la redistribuye al resto de la red. Si instalas CrowdSec, heredas la experiencia de bots, scanners y script kiddies que ya han molestado a otros. La seguridad colaborativa funciona como una especie de Waze para ciberataques: alguien pincha con una IP hostil y tú evitas el atasco. El IPS compartido (Intrusion Prevention System) reemplaza al viejo fail2ban aislado por algo mucho más interesante, y aprender a instalar CrowdSec lleva menos de diez minutos.

Qué es CrowdSec y por qué no es otro fail2ban con marketing

CrowdSec nació en 2020 de la mano de Philippe Humeau y su equipo en París. Es software libre bajo licencia MIT, escrito en Go, que mastica logs de cualquier servicio (Nginx, SSH, WordPress, Apache, MySQL) y decide si alguien está haciendo cosas feas. Hasta aquí, fail2ban. La diferencia llega después.

Cuando detecta un ataque, CrowdSec envía la IP al Central API. El servidor central valida la señal, la cruza con reportes de otras instancias y, si hay consenso, la añade a la CrowdSec Community Blocklist. Esa lista negra baja automáticamente a todas las máquinas conectadas. Resultado: bloqueas atacantes que nunca han tocado tu puerta pero que ya han intentado entrar en las puertas de otros.

El motor se divide en dos piezas. El agent lee los logs y detecta patrones. El bouncer aplica el veto: puede ser iptables, nftables, un plugin de Nginx, Cloudflare, Traefik o lo que convenga. Separar detección y bloqueo es elegante porque permite reaccionar en capas distintas sin reiniciar nada.

Instalar CrowdSec en Debian, Ubuntu y sistemas Red Hat

La instalación oficial usa el repositorio de paquetes de CrowdSec. En Debian o Ubuntu:

  1. Añade el repositorio: curl -s https://install.crowdsec.net | sudo bash
  2. Instala el agente: sudo apt install crowdsec
  3. Instala un bouncer (por ejemplo el de firewall): sudo apt install crowdsec-firewall-bouncer-iptables
  4. Registra la máquina en la consola web (opcional pero recomendado): sudo cscli console enroll TU_TOKEN
  5. Verifica que funciona: sudo cscli metrics

En AlmaLinux, Rocky o CentOS Stream el proceso es idéntico cambiando apt por dnf. El servicio arranca solo y se autoconfigura leyendo /var/log/auth.log, /var/log/nginx/ y los logs habituales. La primera sincronización con la blocklist tarda un par de minutos.

Para entender cómo encaja esto con otras defensas, puedes repasar la guía de instalación y configuración de antivirus: CrowdSec es la capa perimetral, el antivirus trabaja dentro. No compiten, se complementan.

Colecciones, parsers y escenarios: el lenguaje del hub

CrowdSec mantiene un hub público con reglas preempaquetadas. Cada paquete se llama colección y agrupa parsers (que normalizan logs) y escenarios (que definen qué es un ataque). Si usas WordPress, instalas crowdsecurity/wordpress y el agente aprende a detectar fuerza bruta en wp-login.php, enumeración de usuarios y abuso de XML-RPC.

Comandos básicos del CLI:

  • cscli hub list: muestra todo lo instalable
  • cscli collections install crowdsecurity/nginx: añade reglas para Nginx
  • cscli decisions list: lista IPs actualmente bloqueadas
  • cscli alerts list: alertas generadas localmente
  • cscli bouncers list: bouncers registrados

Los escenarios son archivos YAML legibles. Puedes crearte el tuyo si tienes una aplicación rara. La sintaxis usa expresiones booleanas sobre eventos parseados, con filtros tipo evt.Meta.log_type == "http_access-log" && evt.Meta.http_status == "401". Quien haya escrito reglas de Suricata se siente en casa.

CrowdSec frente a fail2ban: comparativa honesta

Característicafail2banCrowdSec
LenguajePythonGo
Rendimiento logs masivosLimitadoAlto
Blocklist compartidaNo nativaSí, Central API
Separación detección/bloqueoAcopladasDesacopladas (bouncers)
Dashboard visualNoConsola web gratuita
Integración Cloudflare, AWS, TraefikManualBouncers oficiales
Comunidad activa 2024-2026MantenimientoDesarrollo activo

Fail2ban sigue siendo útil y vive en millones de servidores. CrowdSec es la evolución natural cuando quieres escalar, compartir inteligencia y tener visibilidad real. Si tu servidor aguanta sshd con tres usuarios, fail2ban basta. Si gestionas una flota de VPS con tráfico público, la balanza se inclina.

Seguridad colaborativa: cómo funciona el consenso

El Central API no acepta cualquier IP reportada. Para que una dirección entre en la blocklist comunitaria, necesita señales independientes de varias instancias no relacionadas, con escenarios considerados fiables (agresión confirmada, no falsos positivos típicos). CrowdSec publica el Trust Rank de cada escenario y penaliza a máquinas que envían ruido.

Los datos de la blocklist pública aproximan varios millones de IPs activas, según cifras que la compañía publica en su Threat Intelligence Report. La mayoría son botnets, scanners masivos, residential proxies usadas para credential stuffing y nodos Tor (estos últimos marcados con categoría propia, para que decidas si los bloqueas o no).

El modelo recuerda a la lógica detrás de los ataques SQL injection que recopilan listas de dorks: los atacantes comparten herramientas y objetivos, así que los defensores también deberían. Cuando la defensa se vuelve colectiva, la asimetría se corrige.

Integraciones útiles: Nginx, Cloudflare y WordPress

El bouncer de Nginx se instala como módulo Lua y rechaza peticiones antes de que lleguen a PHP. Latencia añadida: marginal. Útil si tienes sitios WordPress expuestos, que según la historia reciente de hackeos son el primer objetivo de cualquier scanner.

El bouncer de Cloudflare sincroniza las IPs bloqueadas con el firewall del CDN, así que el atacante ni siquiera llega a tu origen. Requiere una cuenta con API token. El bouncer de Traefik encaja con Kubernetes y entornos de microservicios.

Para WordPress concreto, la colección crowdsecurity/wordpress más el plugin oficial cubren login bruteforce, scanners de plugins conocidos y abuso de endpoints REST. Si además trabajas con instalaciones WordPress profesionales, añadir CrowdSec al stack habitual de Wordfence o Sucuri suma sin romper nada: Wordfence mira dentro de PHP, CrowdSec filtra por debajo.

Consola web y modo SaaS gratuito

La CrowdSec Console en app.crowdsec.net ofrece dashboard gratuito con métricas, alertas agregadas y gestión centralizada de varias instancias. La versión gratuita permite un puñado de máquinas. Planes de pago añaden blocklists premium (malware, botnets específicas, ransomware) y más escenarios avanzados.

La telemetría que envía el agent a la consola incluye alertas, métricas agregadas y heartbeats. No sube logs crudos ni contenido de peticiones. Los términos están en su política de privacidad, y el código del agent es auditable porque es open source. Quien venga con paranoia RGPD puede revisar qué campos salen.

Errores comunes al desplegar CrowdSec

  • No instalar bouncer: el agente detecta pero no bloquea. Síntoma típico: alerts llenos, iptables vacío.
  • Olvidar los whitelist: si tu propia IP de oficina hace muchas peticiones a /wp-admin, te autobloqueas. Edita /etc/crowdsec/parsers/s02-enrich/whitelists.yaml.
  • Logs mal rutados: si usas journald, configura el acquis.yaml con el tipo adecuado.
  • Escenarios incompatibles: no instales colecciones de servicios que no corres. Solo añade ruido.
  • Ignorar la blocklist comunitaria: asegúrate de tener crowdsecurity/community-blocklist-v2 activa, ahí está el valor real.

Preguntas frecuentes

Es gratis CrowdSec?

Sí. El motor, los bouncers y las colecciones del hub son MIT open source. La consola web tiene plan gratuito para uso personal y pymes. Las blocklists premium y funciones avanzadas de la consola son de pago.

CrowdSec reemplaza a fail2ban?

Puede. Si vas a migrar, desinstala fail2ban antes porque pueden pisarse con reglas iptables duplicadas. Para casos simples, fail2ban sigue siendo válido. Para flotas o necesidad de blocklist compartida, CrowdSec gana por goleada.

La blocklist compartida genera falsos positivos?

Muy pocos, por el sistema de consenso y trust rank. Si ocurren, puedes añadir la IP a tu whitelist local y reportar el falso positivo en el hub. Los escenarios con histórico de falsos positivos altos se degradan automáticamente.

Se puede usar CrowdSec en un VPS pequeño?

Sí. El agent consume aproximadamente 50-100 MB de RAM según escenarios cargados y uso de CPU mínimo. Funciona bien en VPS de 1 GB. En Raspberry Pi y hogares con OPNsense también, con bouncers específicos.

Protege contra DDoS volumétricos?

No directamente. CrowdSec detecta patrones en logs, así que sirve contra DDoS aplicativos (L7) de volumen moderado. Para DDoS volumétrico masivo necesitas mitigación a nivel de red (Cloudflare, AWS Shield, Gcore). CrowdSec encaja después del CDN, no antes.

El siguiente paso

Abre una sesión SSH en tu servidor ahora mismo, ejecuta curl -s https://install.crowdsec.net | sudo bash seguido de sudo apt install crowdsec crowdsec-firewall-bouncer-iptables, y revisa sudo cscli metrics en diez minutos para ver las primeras IPs bloqueadas. Si te pica la curiosidad por el stack defensivo completo, las herramientas de administración de sistemas cubren utilidades que se llevan bien con CrowdSec.

crowdsec firewall comunitario ips compartido crowdsec instalar seguridad colaborativa

Artículos relacionados

← Volver al blog