Logotipo de Bitdoze

Cómo securizar un servidor VPS con CrowdSec (Guía 2026)

Guía paso a paso para securizar un servidor VPS con CrowdSec. Cubre la instalación del motor, el bouncer de firewall (iptables y nftables), la protección de SSH, la monitorización de Nginx y…

Dragos

Actualizado Publicado 26 min de lectura

Cómo securizar un servidor VPS con CrowdSec (Guía 2026)

Los servidores VPS reciben escaneos constantes: fuerza bruta contra SSH, exploits web, credential stuffing. CrowdSec es un sistema de prevención de intrusiones (IPS) colaborativo y de código abierto que monitoriza tus logs, detecta ataques y bloquea IPs maliciosas a nivel de firewall. La versión 1.7.8, con más de 14.000 estrellas en GitHub, es la última versión estable, y hace mucho más que Fail2Ban.

En esta guía instalarás el motor de CrowdSec, configurarás el bouncer de firewall tanto para iptables como para nftables, protegerás SSH, monitorizarás los logs de Nginx y desplegarás el WAF AppSec para protección HTTP en línea. Si estás securizando tu VPS desde cero o protegiendo servidores Docker contra amenazas reales, CrowdSec encaja perfectamente en ese stack.

  • Instalar CrowdSec 1.7.8 y configurar la monitorización de logs de SSH
  • Elegir entre el bouncer de firewall nftables e iptables
  • Añadir tu IP de administrador a la lista blanca antes de activar el bouncer (evita el bloqueo)
  • Gestionar los puertos de Docker/Dokploy con la cadena DOCKER-USER
  • Monitorizar los logs de acceso y error de Nginx para detectar ataques web
  • Desplegar el WAF AppSec para la inspección en línea de peticiones HTTP
  • Usar la consola de CrowdSec para la gestión centralizada

¿Qué es CrowdSec y cómo puede ayudarte?

CrowdSec es un sistema de prevención de intrusiones colaborativo y de código abierto. Analiza los logs de servicios como SSH, Nginx y aplicaciones personalizadas, detecta patrones sospechosos usando escenarios mantenidos por la comunidad y envía decisiones de bloqueo a componentes de remediación llamados “bouncers”. Los datos de ataques anonimizados retroalimentan una red global de inteligencia de amenazas. Tu servidor consume y contribuye a ese fondo común.

Entendiendo CrowdSec

Entendiendo CrowdSec

Tres pilares diferencian a CrowdSec de una configuración básica de fail2ban:

  1. Análisis de logs y detección. CrowdSec incluye parsers para servicios comunes (SSH, Nginx, Apache, MySQL y más). Instalas una colección, la apuntas a los archivos de log y se encarga del resto.
  2. Remediación basada en bouncers. Las decisiones del motor de CrowdSec se envían a los bouncers, demonios ligeros que aplican los bloqueos en el firewall, el reverse proxy o la capa de aplicación. El bouncer de firewall es el más crítico; el bouncer de Nginx añade las capacidades de WAF AppSec.
  3. Inteligencia de amenazas comunitaria. CrowdSec comparte datos de ataques anonimizados entre su base de usuarios. Cuando una IP hace fuerza bruta contra el servidor de otro usuario de CrowdSec, tu instancia también recoge esa decisión de bloqueo (si te suscribes a las blocklists de la comunidad a través de la consola de CrowdSec).

El CrowdSec Hub aloja colecciones, escenarios, parsers y bouncers mantenidos tanto por el equipo de CrowdSec como por la comunidad.

Ventajas de usar CrowdSec para la protección de SSH

SSH es la superficie de ataque más común en un VPS. Dejarlo expuesto conduce a intentos de fuerza bruta, credential stuffing y la explotación de configuraciones débiles. CrowdSec mejora la seguridad de SSH:

  1. Detectando intrusiones. Analiza los logs de autenticación de SSH e identifica patrones como intentos repetidos de inicio de sesión fallidos.
  2. Bloqueando amenazas. Envía decisiones al bouncer de firewall, que descarta los paquetes de las IPs marcadas.
  3. Dando visibilidad. Métricas, alertas y entradas de log que muestran exactamente qué se detectó y qué se bloqueó.
  4. Adaptándose dinámicamente. Los escenarios de detección se actualizan a través del CrowdSec Hub. No hace falta escribir reglas a mano.

¿Por qué elegir CrowdSec frente a las alternativas?

Característica CrowdSec Fail2Ban Firewalls tradicionales
Inteligencia comunitaria Compartición global de amenazas Ninguna Ninguna
Facilidad de uso Configuración sencilla Complejidad moderada Configuración manual
Soporte multiservicio SSH, Nginx, AppSec y más Limitado por servicio Solo puertos
Capacidad WAF Sí (componente AppSec) No No
Escalabilidad Apto para la nube Solo VPS local Basado en red
Bloqueo en tiempo real Rápido con bouncers Moderado Solo reactivo

Instalar CrowdSec

Requisitos previos

Antes de empezar, necesitas:

  • Un VPS Linux con Ubuntu 22.04/24.04 LTS o Debian 12+
  • Acceso root o sudo
  • Puertos 8080 (LAPI) y 6060 (métricas) disponibles (o disposición a cambiarlos)

Si aún no tienes un VPS, puedes conseguir un VPS asequible en Hetzner o un VPS económico de Hostinger.

Los precios de los VPS subieron en general en 2026 — si estás reconsiderando un servidor alquilado, mira qué cambió y cuándo gana un mini PC.

Paso 1: Añadir el repositorio de CrowdSec

bash
curl -s https://install.crowdsec.net | sudo sh

Esto importa la clave GPG de CrowdSec y configura el repositorio de paquetes. Salida esperada:

text
Detected operating system as ubuntu/24.
Detected apt version as 2.7.14
Checking for gpg...
Detected gpg...
...
Installing /etc/apt/sources.list.d/crowdsec_crowdsec.list...

Paso 2: Instalar el paquete de CrowdSec

bash
sudo apt update && sudo apt install crowdsec

Conflicto con el puerto 8080

La API local de CrowdSec usa el puerto 8080 por defecto. Si otra cosa ocupa ese puerto, CrowdSec no arrancará. Compruébalo con netstat -tulpn antes de instalar. Si hay un conflicto, consulta el siguiente paso.

Salida de ejemplo de la instalación:

text
Need to get 62 MB of archives.
After this operation, 255 MB of additional disk space will be used.
...
Setting up crowdsec (1.7.8) ...
Machine successfully added to the local API.
API credentials written to '/etc/crowdsec/local_api_credentials.yaml'.
...
Not attempting to start crowdsec, port 8080 is already used or lapi was disabled.

Paso 3: Modificar el puerto de la API (si es necesario)

Si la salida de la instalación indica que el puerto 8080 ya está en uso, edita ambos archivos de configuración:

bash
sudo nano /etc/crowdsec/config.yaml
sudo nano /etc/crowdsec/local_api_credentials.yaml

Cambia listen_uri bajo api a un puerto libre como 8081:

yaml
listen_uri: 127.0.0.1:8081

Guarda, luego inicia y verifica:

bash
sudo service crowdsec start
sudo service crowdsec status

Salida esperada:

text
● crowdsec.service - Crowdsec agent
     Loaded: loaded (/lib/systemd/system/crowdsec.service; enabled; vendor preset: enabled)
     Active: active (running) since ...

Paso 4: Listar las colecciones instaladas

bash
sudo cscli collections list
text
COLLECTIONS
 Name                               Status    Version  Local Path
─────────────────────────────────────────────────────────────────────
 crowdsecurity/linux                enabled  0.3      ...
 crowdsecurity/sshd                 enabled  0.6      ...

La colección crowdsecurity/sshd confirma que la monitorización de SSH está activa.

Instalación del bouncer de firewall (remediación)

¿Qué son los bouncers?

CrowdSec detecta amenazas analizando logs. Los bouncers aplican las decisiones. Son demonios ligeros que bloquean IPs en el firewall, el reverse proxy o la capa de aplicación. El bouncer de firewall es el más importante: descarta los paquetes de las IPs marcadas antes de que lleguen a cualquier servicio.

Elige tu bouncer: iptables frente a nftables

Las distribuciones Linux modernas (Debian 12+, Ubuntu 24.04) usan nftables como filtro de paquetes nativo. iptables sobrevive como una capa de compatibilidad en estos sistemas. CrowdSec ofrece paquetes de bouncer separados para cada backend.

Ejecuta esto para comprobar qué backend usa tu sistema:

bash
iptables -V

Sistemas modernos (nftables)

Si la salida contiene nf_tables, tu sistema ejecuta nftables de forma nativa. Usa el bouncer de nftables:

text
iptables v1.8.10 (nf_tables)

Comando de instalación:

bash
sudo apt install crowdsec-firewall-bouncer-nftables

Esta es la vía recomendada para instalaciones nuevas en Ubuntu 24.04+ y Debian 12+.

Sistemas antiguos (iptables)

Si la salida indica legacy sin nf_tables, usa el bouncer de iptables:

text
iptables v1.8.9 (legacy)

Comando de instalación:

bash
sudo apt install crowdsec-firewall-bouncer-iptables

Esto cubre instalaciones antiguas de Ubuntu 22.04 o sistemas configurados explícitamente para iptables.

¿Riesgo de quedarte fuera? Añade tu IP a la lista blanca primero

Haz esto ANTES de instalar el bouncer

Si el bouncer de firewall activa el bloqueo en la cadena INPUT y tu IP actual queda marcada (o escribes algo mal), puedes quedarte fuera de SSH permanentemente. Añade primero tu IP de administrador a la lista blanca.

CrowdSec 1.6.8 introdujo un sistema de listas blancas (allowlist) propiamente dicho. Ahora es el método preferido. Se integra con AppSec, los escenarios y las blocklists de la consola, y los cambios se aplican de inmediato sin reiniciar CrowdSec:

bash
cscli allowlist create admin_ips -d "My trusted admin IPs"
cscli allowlist add admin_ips YOUR.HOME.IP.ADDRESS

Sustituye YOUR.HOME.IP.ADDRESS por tu IP pública real. Puedes comprobarla con curl -s ifconfig.me desde otra terminal.

También puedes añadir subredes para VPNs o servicios de monitorización:

bash
cscli allowlist add admin_ips 10.0.0.0/8

Verifica la lista blanca:

bash
cscli allowlist inspect admin_ips

Instalar el bouncer de firewall

Tras añadir tu IP a la lista blanca, instala el bouncer adecuado (ver las pestañas de nftables frente a iptables más arriba). Por ejemplo, en un sistema moderno:

bash
sudo apt install crowdsec-firewall-bouncer-nftables

Salida de ejemplo:

text
Setting up crowdsec-firewall-bouncer (0.0.33) ...

El bouncer se registra automáticamente en la LAPI de CrowdSec y descarga las decisiones.

Usuarios de Docker / Dokploy: añade la cadena DOCKER-USER

Docker evita la cadena INPUT

Los puertos publicados por Docker pasan por las cadenas FORWARD → DOCKER, no por INPUT. La configuración por defecto del bouncer de firewall solo inserta reglas en INPUT, lo que significa que tus contenedores Docker siguen siendo accesibles desde IPs baneadas. Si usas Docker o Dokploy para gestionar tus contenedores, esto es un hueco crítico. Docker puede saltarse tus reglas de firewall sin esta corrección.

Edita la configuración del bouncer:

bash
sudo nano /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml

Busca la sección iptables_chains (o nftables_chains) y añade DOCKER-USER:

yaml
# For iptables mode:
iptables_chains:
  - INPUT
  - DOCKER-USER

# For nftables mode, add DOCKER-USER to the nftables_chains list

Reinicia el bouncer:

bash
sudo systemctl restart crowdsec-firewall-bouncer

Esto garantiza que CrowdSec también bloquee a las IPs baneadas que intenten llegar a tus contenedores Docker. Para más información sobre redes y seguridad en Docker, consulta cómo mantener limpio tu servidor Docker.

Verificar la instalación del bouncer

bash
sudo cscli bouncers list

Salida esperada:

text
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Name                            IP Address  Valid  Last API pull         Type                       Version    │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ cs-firewall-bouncer-...         127.0.0.1   ✔️    2026-06-20T07:00:00Z  crowdsec-firewall-bouncer  v0.0.33    │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Si el bouncer no aparece, reinicia el servicio y revisa los logs:

bash
sudo systemctl restart crowdsec-firewall-bouncer
sudo tail -f /var/log/crowdsec-firewall-bouncer.log

Prueba de humo de extremo a extremo

Verifica que el bouncer realmente bloquea tráfico. Desde tu VPS, añade una decisión de prueba para una IP inofensiva (no uses la tuya):

bash
sudo cscli decisions add -i 192.0.2.1 -t ban -r "smoke test"

Comprueba que la IP aparece en tu firewall:

Verificación nftables

bash
sudo nft list sets | grep crowdsec
# Then check the specific set:
sudo nft list set inet crowdsec crowdsec-blacklists

Deberías ver 192.0.2.1 en el conjunto.

Verificación iptables

bash
sudo ipset list crowdsec-blacklists

Deberías ver 192.0.2.1 como miembro.

Elimina la decisión de prueba:

bash
sudo cscli decisions delete -i 192.0.2.1

Soporte IPv6

El bloqueo de IPv6 funciona de fábrica. La configuración por defecto de CrowdSec tiene disable_ipv6: false. No lo pongas en true a menos que hayas desactivado explícitamente IPv6 en tu sistema.

Ver qué logs monitoriza CrowdSec

CrowdSec crea un archivo de adquisición en /etc/crowdsec/acquis.yaml que define qué fuentes de log monitoriza. Consúltalo:

bash
cat /etc/crowdsec/acquis.yaml

Salida de ejemplo:

yaml
# Generated acquisition file - wizard.sh (service: ssh) / files :
journalctl_filter:
  - _SYSTEMD_UNIT=ssh.service
labels:
  type: syslog
---

Esto muestra a CrowdSec monitorizando SSH a través de journald. Si instalaste colecciones adicionales (como Nginx), las entradas correspondientes también aparecen aquí.

Archivos de log de CrowdSec

CrowdSec genera sus propios logs para monitorizar su funcionamiento:

Archivo Propósito
/var/log/crowdsec.log Log principal del motor: detecciones, análisis
/var/log/crowdsec_api.log Peticiones y respuestas de la API local (LAPI)
/var/log/crowdsec-firewall-bouncer.log Actividad y errores del bouncer de firewall

Observa el log del motor en tiempo real:

bash
sudo tail -f /var/log/crowdsec.log

Vincular con la consola de CrowdSec (opcional)

La consola de CrowdSec es un panel en la nube que ofrece monitorización centralizada, visualización de ataques e inteligencia de amenazas de origen comunitario en todas tus instancias de CrowdSec.

Nivel Community gratuito

El nivel gratuito incluye 3 blocklists comunitarias con actualizaciones diarias, monitorización centralizada de alertas y gestión de bouncers. El plan Premium empieza en 31 $/mes para actualizaciones de blocklists en tiempo real y blocklists personalizadas.

Paso 1: Crear una cuenta

Visita la página de registro de la consola de CrowdSec y regístrate con una dirección de email.

Paso 2: Generar un token de enrolamiento

  1. Inicia sesión en la consola.
  2. Ve a Security Engines → Engines.
  3. Haz clic en Generate Enrollment Token.
  4. Copia el token.

Paso 3: Enrolar tu VPS

bash
sudo cscli console enroll --quick <your-enrollment-token>

El flag --quick (añadido en 1.7.8) acelera el enrolamiento. Salida de ejemplo:

text
Successfully enrolled machine 'my-vps.example.com' to the Console

Paso 4: Verificar el enrolamiento

Vuelve a la sección Engines de la consola. Tu VPS debería aparecer como un motor activo.

Una vez enrolado, obtienes paneles centralizados de alertas, gráficos de tendencias de ataques y feeds de inteligencia comunitaria. Esto es útil para monitorizar la salud de tu servidor y los eventos de seguridad junto a las propias métricas de CrowdSec.

Monitorización de logs de aplicaciones (p. ej., Nginx)

CrowdSec puede detectar ataques web analizando los logs de Nginx: tráfico de bots, pruebas de inyección SQL, directory traversal, user agents maliciosos y más. Para una protección completa, monitoriza tanto access.log como error.log.

Monitoriza ambos archivos de log

La configuración de Nginx del artículo original solo seguía error.log. La mayoría de los escenarios de detección de ataques HTTP (SQLi, path traversal, bots maliciosos) analizan access.log. Añade ambos para una cobertura completa.

Paso 1: Instalar la colección de Nginx

bash
sudo cscli collections install crowdsecurity/nginx
text
INFO crowdsecurity/nginx installed successfully

Paso 2: Actualizar acquis.yaml

Edita /etc/crowdsec/acquis.yaml y añade las entradas de log de Nginx:

yaml
filenames:
  - /var/log/nginx/access.log
  - /var/log/nginx/error.log
  - /home/*/logs/nginx/*.log
labels:
  type: nginx
---
  • access.log captura pruebas de inyección SQL, directory traversal, user agents maliciosos y abuso de crawlers
  • error.log captura fallos de upstream, limitación de tasa y anomalías de conexión
  • El comodín /home/*/logs/nginx/*.log cubre los logs de virtual hosts (útil con Dokploy o configuraciones similares)

Paso 3: Reiniciar CrowdSec

bash
sudo systemctl restart crowdsec

Paso 4: Verificar que la monitorización de Nginx está activa

bash
sudo cscli alerts list
sudo cscli decisions list

Deberías ver entradas relacionadas con escenarios de Nginx. Sigue el log del motor para observar las detecciones en tiempo real:

bash
sudo tail -f /var/log/crowdsec.log

Para más información sobre la gestión del tráfico web y el bloqueo de tráfico no deseado en la capa de aplicación, la monitorización de Nginx de CrowdSec es el primer paso. El WAF AppSec de abajo lo lleva más lejos.

Más allá del firewall: protección con el WAF AppSec

Bouncer de firewall + AppSec = protección por capas

El bouncer de firewall bloquea IPs a nivel de paquete (reactivo — después de que CrowdSec detecte un ataque en los logs). El componente AppSec inspecciona las peticiones HTTP en línea antes de que lleguen a tu aplicación (proactivo — bloquea en tiempo real). Se complementan. Mantén ambos en funcionamiento.

CrowdSec 1.6 introdujo el componente AppSec — un WAF completo que inspecciona peticiones HTTP en línea usando el motor Coraza (compatible con mod_security). Detecta inyección SQL, XSS, path traversal, exploits de CVE y bots maliciosos en la capa HTTP, antes de que el tráfico llegue a tu aplicación.

¿Qué es el componente AppSec?

AppSec se ejecuta dentro del componente de remediación (bouncer) de Nginx/OpenResty/Traefik. Cuando llega una petición HTTP, el bouncer la reenvía al motor AppSec para su inspección. Si la petición coincide con una regla (p. ej., un patrón de SQLi o un exploit de CVE conocido), se bloquea inmediatamente — sin lectura de logs ni retrasos.

Esto es fundamentalmente distinto de la detección basada en logs que has configurado arriba. La detección basada en logs analiza los logs a posteriori; AppSec bloquea las peticiones maliciosas antes de que toquen tu aplicación.

Si usas Traefik como reverse proxy, el bouncer de Traefik también soporta AppSec.

Instalar y configurar AppSec

Instala la colección de virtual patching de AppSec:

bash
sudo cscli collections install crowdsecurity/appsec-virtual-patching

Asegúrate de tener CrowdSec >= 1.7.8

CrowdSec 1.7.8 corrige CVE-2026-44982, una vulnerabilidad de bypass del WAF a través de transfer-encoding chunked. Si ejecutas AppSec, actualizar a 1.7.8 es crítico. Comprueba tu versión: cscli version.

A continuación, activa AppSec en el componente de remediación de Nginx. Edita la configuración del bouncer de Nginx:

bash
sudo nano /etc/crowdsec/bouncers/crowdsec-nginx-bouncer.yaml

Asegúrate de que la sección AppSec está activada:

yaml
appsec:
  enabled: true
  # Path to the AppSec configuration
  # CrowdSec will use the default if not specified

Si aún no tienes instalado el bouncer de Nginx (es independiente del bouncer de firewall):

bash
sudo apt install crowdsec-nginx-bouncer

Reinicia CrowdSec y Nginx:

bash
sudo systemctl restart crowdsec
sudo systemctl restart nginx

Verifica que AppSec está activo:

bash
sudo cscli appsec-configs list
sudo cscli appsec-rules list

Deberías ver las reglas de virtual patching cargadas. Cubren los exploits web y CVEs comunes sin que tengas que escribir reglas personalizadas.

El componente AppSec funciona junto a tu bouncer de firewall existente — no interfieren entre sí. El bouncer de firewall gestiona el bloqueo a nivel de IP (baneos masivos por fuerza bruta contra SSH, blocklists comunitarias); AppSec gestiona la inspección a nivel HTTP (bloqueo en línea de exploits web).

Comandos útiles de CrowdSec

Tras configurar CrowdSec, estos comandos te ayudan a monitorizar la actividad, gestionar bloqueos y solucionar problemas.

Ver decisiones activas (bloqueos/baneos actuales)

bash
sudo cscli decisions list
text
╭────────────┬─────────────┬────────────┬──────────────────────╮
│  IP        │  Reason     │  Action    │  Expires at          │
├────────────┼─────────────┼────────────┼──────────────────────┤
│ 192.168.1.1│ ssh-bf      │ ban        │ 2026-06-20T12:00:00Z │
│ 203.0.113.5│ nginx-bot   │ ban        │ 2026-06-20T23:59:59Z │
╰────────────┴─────────────┴────────────┴──────────────────────╯

Consultar alertas recientes

bash
sudo cscli alerts list
text
╭───────┬──────────────────────┬────────────────────┬──────────────╮
│  ID   │  Scenario            │  Source IP         │  Created at  │
├───────┼──────────────────────┼────────────────────┼──────────────┤
│   1   │ ssh-bf               │ 203.0.113.5        │ 2026-06-20   │
│   2   │ nginx-bad-user-agent │ 198.51.100.10      │ 2026-06-20   │
╰───────┴──────────────────────┴────────────────────┴──────────────╯

Ver métricas de seguridad

bash
sudo cscli metrics

Esto muestra los conteos de logs analizados, amenazas detectadas, actividad de los bouncers y conexiones descartadas. Úsalo para un chequeo rápido de salud.

Monitorizar logs en tiempo real

bash
sudo tail -f /var/log/crowdsec.log

Útil para observar las detecciones en vivo y solucionar problemas de los parsers.

Listar escenarios de detección activos

bash
sudo cscli scenarios list
text
╭───────────────────────────────────────┬────────╮
│ Name                                  │ Status │
├───────────────────────────────────────┼────────┤
│ crowdsecurity/ssh-bf                  │ enabled  │
│ crowdsecurity/nginx-bad-user-agent    │ enabled  │
│ crowdsecurity/http-crawl-non_statics  │ enabled  │
╰───────────────────────────────────────┴────────╯

Añadir o quitar un bloqueo manualmente

Bloquear una IP:

bash
sudo cscli decisions add -i <IP> -t ban -r "Manual ban"

Desbloquear una IP:

bash
sudo cscli decisions delete --ip <IP>

Uso del sistema de listas blancas (cscli allowlist)

El sistema de listas blancas (añadido en CrowdSec 1.6.8) es el método preferido para incluir IPs de confianza. A diferencia del antiguo enfoque cscli decisions add --type whitelist, las listas blancas se integran con AppSec, los escenarios y las blocklists de la consola. Los cambios se aplican de inmediato — sin reiniciar.

bash
# Create an allowlist
cscli allowlist create my_allowlist -d "Trusted admin IPs"

# Add individual IPs or subnets
cscli allowlist add my_allowlist 203.0.113.5
cscli allowlist add my_allowlist 198.51.100.0/24

# Inspect what's in the allowlist
cscli allowlist inspect my_allowlist

Ejemplos prácticos:

  • Tu IP de casa/oficina (el DNS dinámico también funciona — actualiza la lista blanca cuando cambie)
  • Subred de la VPN para tu acceso de administrador
  • IPs de servicios de monitorización (Uptime Kuma, health checkers)

Resumen de comandos útiles

Comando Propósito
sudo cscli decisions list Listar todos los baneos y bloqueos activos
sudo cscli alerts list Ver alertas recientes disparadas por ataques
sudo cscli metrics Mostrar métricas de seguridad y rendimiento
sudo tail -f /var/log/crowdsec.log Observar logs y detecciones en tiempo real
sudo cscli scenarios list Mostrar todos los escenarios de detección activos
sudo cscli decisions add Bloquear IPs específicas manualmente
sudo cscli decisions delete Quitar el bloqueo de una IP específica
cscli allowlist create Crear una nueva lista blanca
cscli allowlist add Añadir una IP/subred a una lista blanca
cscli allowlist inspect Ver el contenido de una lista blanca

Mantener CrowdSec actualizado y seguro

Mantener CrowdSec al día es sencillo:

bash
sudo apt update && sudo apt upgrade crowdsec

Versión de seguridad CrowdSec 1.7.8

CrowdSec 1.7.8 corrige dos vulnerabilidades de seguridad: CVE-2026-44982 (bypass del WAF a través de transfer-encoding chunked) y CVE-2026-44981 (denegación de servicio en la LAPI). Si ejecutas AppSec, actualizar es crítico. Si solo usas el bouncer de firewall, sigue siendo muy recomendable.

Notas adicionales:

  • Motor de regex RE2. Desde la versión 1.7.7, CrowdSec usa el motor de regex RE2 por defecto en Linux, lo que supone mejoras de rendimiento significativas en el análisis de logs. Esto importa en servidores ocupados con un alto volumen de logs.
  • Anuncios de seguridad. Suscríbete a los releases de GitHub de CrowdSec o al foro de Discourse para mantenerte informado sobre los parches de seguridad.
  • Actualizaciones de bouncers. No olvides actualizar también los bouncers: sudo apt update && sudo apt upgrade crowdsec-firewall-bouncer-nftables (o -iptables).

El comando cscli dashboard (panel local basado en Metabase) quedó obsoleto en CrowdSec 1.7.0. Usa la consola de CrowdSec en su lugar — es la forma oficialmente soportada de visualizar tus datos de seguridad.

Conclusión

CrowdSec te ofrece prevención de intrusiones impulsada por la comunidad que cubre todo el stack — bloqueo de fuerza bruta contra SSH a nivel de firewall, análisis de logs de Nginx para detectar ataques web e inspección HTTP en línea a través del WAF AppSec. Esto es lo que hemos visto:

  • Instalación de CrowdSec 1.7.8 y configuración de la monitorización de logs de SSH
  • Elección entre el bouncer de firewall nftables (recomendado para sistemas modernos) e iptables
  • Cómo añadir tu IP de administrador a la lista blanca para evitar el bloqueo
  • Configuración de la cadena DOCKER-USER para hosts Docker/Dokploy
  • Monitorización tanto de access.log como de error.log de Nginx para detectar ataques web
  • Despliegue del WAF AppSec para el bloqueo en línea de peticiones HTTP
  • Conexión con la consola de CrowdSec para la gestión centralizada
  • Uso de listas blancas y comandos para gestionar CrowdSec en el día a día

CrowdSec gestiona las amenazas a nivel de IP y de HTTP. Combínalo con un enfoque de seguridad por capas con protección a nivel DNS para una defensa en profundidad. Y si usas paneles de gestión de servidores que se integran con tu stack de seguridad, CrowdSec encaja junto a esas herramientas sin conflictos.

Mantenlo actualizado, vigila tus métricas y explora el CrowdSec Hub para colecciones adicionales más allá de SSH y Nginx — hay parsers para MySQL, PostgreSQL, WordPress y decenas de servicios más.