Crowdsec Traefik Bouncer: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Traefik + CrowdSec + CAPTCHA absichern= ==Ziel== Angreifer sollen bei HTTP-Angriffen nicht direkt blockiert, sondern auf eine CAPTCHA-Seite umgeleitet werden…“)
 
Zeile 10: Zeile 10:
 
* cs-traefik-bouncer (stellt Middleware für CAPTCHA bereit)
 
* cs-traefik-bouncer (stellt Middleware für CAPTCHA bereit)
 
* Eine statische CAPTCHA-Webseite
 
* Eine statische CAPTCHA-Webseite
 
==Bouncer installieren==
 
 
*cd /mnt/docker/traefik
 
*mkdir bouncer
 
*cd bouncer
 
*wget https://github.com/crowdsecurity/cs-traefik-bouncer/releases/latest/download/cs-traefik-bouncer-linux-amd64
 
*chmod +x cs-traefik-bouncer-linux-amd64
 
*mv cs-traefik-bouncer-linux-amd64 cs-traefik-bouncer
 
 
Konfiguration erstellen:
 
 
*vi config.yml
 
listen_uri: 0.0.0.0:8081
 
crowdsec_lapi_key: mytraefikbouncerkey
 
crowdsec_lapi_url: http://localhost:8080/
 
log_level: info
 
mode: captcha
 
  
 
==Bouncer in CrowdSec registrieren==
 
==Bouncer in CrowdSec registrieren==

Version vom 9. April 2025, 08:50 Uhr

Traefik + CrowdSec + CAPTCHA absichern

Ziel

Angreifer sollen bei HTTP-Angriffen nicht direkt blockiert, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach Bestehen des CAPTCHAs wird der Zugriff wieder freigegeben.

Komponenten

  • Traefik als Reverse Proxy
  • CrowdSec mit aktiver Erkennung (bereits eingerichtet)
  • cs-traefik-bouncer (stellt Middleware für CAPTCHA bereit)
  • Eine statische CAPTCHA-Webseite

Bouncer in CrowdSec registrieren

  • cscli bouncers add traefik-bouncer

→ Key notieren und in config.yml bei crowdsec_lapi_key eintragen.

CAPTCHA-Seite bereitstellen

  • mkdir /mnt/docker/traefik/captcha
  • vi /mnt/docker/traefik/captcha/index.html
(einfache Seite mit „Ich bin kein Bot“-Button oder Link)

Docker-Traefik erweitern

  • vi docker-compose.yaml
 traefik-bouncer:
   image: crowdsecurity/cs-traefik-bouncer
   volumes:
     - ./bouncer/config.yml:/config.yml:ro
     - ./captcha:/www
   ports:
     - "8081:8081"
   environment:
     - GIN_MODE=release
   restart: unless-stopped

Traefik Middleware konfigurieren

  • 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 verwenden

  • vi /mnt/docker/traefik/conf/router.yaml
http:
  routers:
    web:
      entryPoints:
        - web
      rule: Host(`example.com`)
      service: myservice
      middlewares:
        - crowdsec-captcha

Funktion

  • CrowdSec erkennt Angreifer
  • Anstatt IP zu bannen, wird eine CAPTCHA-Decision getroffen
  • Der Traefik-Bouncer erkennt das und schickt den Client auf die CAPTCHA-Seite
  • Nach erfolgreichem Zugriff wird die IP freigegeben

Testen

Fazit

Mit dem cs-traefik-bouncer kann CrowdSec in Traefik-Systemen nicht nur blocken, sondern auch intelligent steuern – mit CAPTCHA.