Esta guía detalla los pasos para implementar una arquitectura de seguridad híbrida: el motor de detección de CrowdSec funcionando como contenedor Docker para auditar los logs de Nginx, y el Bouncer operando de forma nativa en el sistema operativo para bloquear amenazas a nivel de red (Firewall).
El primer paso es añadir el motor de CrowdSec a nuestra infraestructura Docker y etiquetar el contenedor de Nginx para que sea auditado automáticamente.
docker-compose.ymlAñade las etiquetas a tu servicio web existente e incorpora el servicio de CrowdSec. Solo se muestra el código relevante a modificar:
services:
nginx:
# ... (tu configuración existente de nginx) ...
labels:
- "crowdsec.enable=true"
- "crowdsec.type=nginx"
crowdsec:
image: crowdsecurity/crowdsec:latest
container_name: crowdsec
environment:
- COLLECTIONS=crowdsecurity/nginx crowdsecurity/http-cve
- DOCKER_HOST=unix:///var/run/docker.sock
ports:
- "127.0.0.1:8080:8080"
volumes:
- crowdsec-db:/var/lib/crowdsec/data/
- crowdsec-config:/etc/crowdsec/
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: always
volumes:
# ... (tus volúmenes existentes) ...
crowdsec-db:
crowdsec-config:
Levanta la nueva configuración para aplicar los cambios y generar el motor de seguridad:
El Bouncer (host) necesita permisos para consultar la lista negra del motor (Docker). Generaremos una clave única desde el contenedor:
Saliendo de Docker, instalaremos el paquete nativo que gestionará las reglas de red (iptables/nftables) de la máquina host.
Editaremos la configuración del Bouncer recién instalado para inyectar la clave generada en el paso 2 y apuntar al motor local de Docker.
Busca los siguientes parámetros y reemplaza los valores de forma estática (sin utilizar sintaxis de variables de entorno):
api_url: http://127.0.0.1:8080/ api_key: PEGA_TU_CLAVE_AQUI
Finalmente, habilita el servicio para que inicie con el sistema y reinícialo para aplicar los cambios: