Seguridad Instalación de CrowdSec y Firewall Bouncer

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).

1. Configuración del Módulo en Docker

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.

Modificaciones en docker-compose.yml

Añade las etiquetas a tu servicio web existente e incorpora el servicio de CrowdSec. Solo se muestra el código relevante a modificar:

docker-compose.yml (Fragmento de Seguridad)
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:

# Recrear contenedores en segundo plano
docker compose up -d

2. Generación de API Key para el Bouncer

El Bouncer (host) necesita permisos para consultar la lista negra del motor (Docker). Generaremos una clave única desde el contenedor:

# Crear identificador para el bouncer del firewall
docker exec -t crowdsec cscli bouncers add portero-firewall
Importante: Guarda la clave alfanumérica que te devuelve este comando. No se volverá a mostrar y la necesitarás en el Paso 4.

3. Instalación del Bouncer en el Host

Saliendo de Docker, instalaremos el paquete nativo que gestionará las reglas de red (iptables/nftables) de la máquina host.

# Añadir el repositorio oficial de CrowdSec
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash

# Instalar el paquete de integración con el firewall
sudo apt install -y crowdsec-firewall-bouncer

4. Vinculación y Puesta en Marcha

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.

# Editar el archivo de configuración nativo
sudo nano /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml

Busca los siguientes parámetros y reemplaza los valores de forma estática (sin utilizar sintaxis de variables de entorno):

/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
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:

# Aplicar nueva configuración y arranque automático
sudo systemctl restart crowdsec-firewall-bouncer
sudo systemctl enable crowdsec-firewall-bouncer

# Comprobar el estado del servicio
sudo systemctl status crowdsec-firewall-bouncer