Crowdsec Traefik Bouncer: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
−
=Traefik mit CrowdSec + CAPTCHA über HTTPS (Label-basiert)=
+
=FORWARD und DOCKER-USER Kette müssen auch gesperrt werden=
−
 
+
*vi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
−
==Ziel==
+
  iptables_chains:
−
HTTP-Angreifer sollen nicht sofort geblockt, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach erfolgreicher Bestätigung wird der Zugriff automatisch freigegeben – ausschließlich über HTTPS. Die Konfiguration erfolgt vollständig über Docker-Labels.
+
   - INPUT
−
 
+
   - FORWARD
−
==Voraussetzungen==
+
   - DOCKER-USER
−
* Traefik läuft als Container (z. B. mit weyon/traefik-bindtools)
+
=Bouncer neustarten=
−
* HTTPS ist aktiv (Let's Encrypt mit certresolver=letsencrypt)
+
*systemctl restart crowdsec-firewall-bouncer.service
−
* CrowdSec ist direkt auf dem Docker-Host installiert
 
−
* Externes Docker-Netzwerk heißt ''traefik-public''
 
−
* Die Dienste wie ''uptime-kuma'' sind über Traefik erreichbar
 
−
 
 
−
==CrowdSec vorbereiten==
 
−
 
 
−
*vi /etc/crowdsec/config.yaml
 
−
listen_uri: 0.0.0.0:8080
 
−
 
 
−
*systemctl restart crowdsec
 
−
 
 
−
*cscli bouncers add traefik-bouncer
 
−
 
 
−
→ Den Key kopieren
 
−
 
 
−
==Bouncer-Konfiguration==
 
−
 
 
−
*mkdir -p /mnt/docker/traefik/bouncer
 
−
*vi /mnt/docker/traefik/bouncer/config.yml
 
−
listen_uri: 0.0.0.0:8081
 
−
crowdsec_lapi_key: HIER_DEN_KEY_EINFÜGEN
 
−
crowdsec_lapi_url: http://host.docker.internal:8080/
 
−
log_level: info
 
−
  mode: captcha
 
−
 
 
−
==Docker-Compose ergänzen==
 
−
 
 
−
Nur den neuen Dienst einfügen:
 
−
 
 
−
traefik-bouncer:
 
−
   image: crowdsecurity/cs-traefik-bouncer
 
−
   container_name: traefik-bouncer
 
−
   volumes:
 
−
    - ./bouncer/config.yml:/config.yml:ro
 
−
  ports:
 
−
    - "8081:8081"
 
−
  extra_hosts:
 
−
    - "host.docker.internal:host-gateway"
 
−
  restart: unless-stopped
 
−
  networks:
 
−
    - traefik-public
 
−
 
 
−
→ ''traefik'' bleibt unangetastet.
 
−
 
 
−
==Middleware definieren==
 
−
 
 
−
*vi /mnt/docker/traefik/conf/middleware.yaml
 
−
http:
 
−
  middlewares:
 
−
    crowdsec-captcha:
 
−
      forwardAuth:
 
−
        address: http://traefik-bouncer:8081/api/v1/forwardAuth
 
−
        trustForwardHeader: true
 
−
        authResponseHeaders:
 
−
          - X-Crowdsec-Captcha-Result
 
−
 
 
−
==Middleware aktivieren für uptime-kuma==
 
−
 
 
−
In der ''docker-compose.yaml'' von ''uptime-kuma'' ergänzen:
 
−
 
 
−
  - "traefik.http.routers.uptime-kuma.middlewares=crowdsec-captcha@file"
 
−
 
 
−
==System starten==
 
−
 
 
−
*docker compose up -d
 
−
 
 
−
==Testen==
 
−
 
 
−
*cscli decisions add --ip DEINE_IP --type captcha --duration 10m
 
−
 
 
−
*Browser öffnen → https://uptime-kuma.samogo.de
 
−
 
 
−
→ CAPTCHA-Seite erscheint
 
−
 
 
−
==Fazit==
 
−
Diese Konfiguration ergänzt dein vorhandenes Setup um eine sichere, dynamische CAPTCHA-Funktion mit CrowdSec. Angreifer werden zuverlässig erkannt und gebremst – ohne legitime Nutzer dauerhaft auszuschließen.
 

Aktuelle Version vom 9. April 2025, 14:27 Uhr

FORWARD und DOCKER-USER Kette müssen auch gesperrt werden

  • vi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
iptables_chains:
  - INPUT
  - FORWARD
  - DOCKER-USER

Bouncer neustarten

  • systemctl restart crowdsec-firewall-bouncer.service