Crowdsec Traefik Bouncer: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
−
=Traefik + CrowdSec + CAPTCHA absichern=
+
=FORWARD und DOCKER-USER Kette müssen auch gesperrt werden=
−
==Vorarbeiten==
+
*vi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
−
;Ändern so das der Bouncer Container darauf zugreifen kann
+
  iptables_chains:
−
*vi /etc/crowdsec/config.yaml
+
   - INPUT
−
    listen_uri: 0.0.0.0:8080
+
  - FORWARD
−
*systemctl restart crowdsec
+
   - DOCKER-USER
−
==Ziel==
+
=Bouncer neustarten=
−
Angreifer sollen bei HTTP-Angriffen nicht direkt blockiert, sondern auf eine CAPTCHA-Seite umgeleitet werden. Nach Bestehen des CAPTCHAs wird der Zugriff wieder freigegeben.
+
*systemctl restart crowdsec-firewall-bouncer.service
−
 
 
−
==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.
 

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