Crowdsec Traefik Bouncer: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 27: | Zeile 27: | ||
listen_uri: 0.0.0.0:8081 | listen_uri: 0.0.0.0:8081 | ||
crowdsec_lapi_key: HIER_DEN_API_KEY_EINFÜGEN | crowdsec_lapi_key: HIER_DEN_API_KEY_EINFÜGEN | ||
| − | crowdsec_lapi_url: http:// | + | crowdsec_lapi_url: http://host.docker.internal:8080/ |
log_level: info | log_level: info | ||
mode: captcha | mode: captcha | ||
Version vom 9. April 2025, 09:11 Uhr
Traefik + CrowdSec + CAPTCHA absichern
Vorarbeiten
- Ändern so das der Bouncer Container darauf zugreifen kann
- vi /etc/crowdsec/config.yaml
listen_uri: 0.0.0.0:8080
- systemctl restart crowdsec
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
- cs-traefik-bouncer (als Docker-Container)
- Eine statische CAPTCHA-Webseite
Bouncer in CrowdSec registrieren
- cscli bouncers add traefik-bouncer
→ Key notieren und in config.yml bei crowdsec_lapi_key eintragen.
Konfiguration erstellen
- mkdir /mnt/docker/traefik/bouncer
- vi /mnt/docker/traefik/bouncer/config.yml
listen_uri: 0.0.0.0:8081 crowdsec_lapi_key: HIER_DEN_API_KEY_EINFÜGEN crowdsec_lapi_url: http://host.docker.internal:8080/ log_level: info mode: captcha
Docker-Traefik erweitern
- vi /mnt/docker/traefik/docker-compose.yaml
traefik-bouncer:
image: crowdsecurity/cs-traefik-bouncer
container_name: traefik-bouncer
volumes:
- ./bouncer/config.yml:/config.yml:ro
- ./captcha:/www
ports:
- "8081:8081"
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 anhand der HTTP-Zugriffe
- Statt sofort zu blockieren, wird eine CAPTCHA-Entscheidung gesetzt
- Der Traefik-Bouncer prüft dies und leitet auf die CAPTCHA-Seite um
- Nach erfolgreichem Aufruf wird die IP automatisch freigegeben
Testen
- curl -s http://example.com/.env
(Decision sollte CAPTCHA sein)
- Browser aufrufen → CAPTCHA-Seite wird angezeigt
Fazit
Mit dem cs-traefik-bouncer lässt sich CrowdSec um ein intelligentes CAPTCHA-System erweitern. Angreifer können automatisiert ausgebremst werden, ohne legitime Nutzer dauerhaft zu sperren.