Crowdsec Traefik Beispiel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „==== Traefik mit CrowdSec absichern ==== ;Ziel CrowdSec soll HTTP-Angriffe auf Traefik erkennen. Die Logdatei im JSON-Format wird direkt analysiert. ==== Vor…“)
 
Zeile 1: Zeile 1:
==== Traefik mit CrowdSec absichern ====
+
=Traefik mit CrowdSec absichern=
  
;Ziel
+
==Ziel==
CrowdSec soll HTTP-Angriffe auf Traefik erkennen. Die Logdatei im JSON-Format wird direkt analysiert.
+
CrowdSec soll HTTP-Angriffe auf einen Traefik-Proxy erkennen. Dazu wird das JSON-Access-Log von Traefik per Volume-Mount an CrowdSec übergeben und ausgewertet.
 
 
==== Voraussetzungen ====
 
  
 +
==Voraussetzungen==
 
Traefik läuft im Docker-Container.
 
Traefik läuft im Docker-Container.
  
Die Access-Logs sind im JSON-Format aktiviert und per Volume-Mount ins Host-Dateisystem verfügbar.
+
Access-Logs im JSON-Format sind aktiviert.
  
==== Schritt 1: Traefik Access-Log konfigurieren ====
+
CrowdSec ist installiert und läuft.
  
Traefik muss in der Konfiguration folgendes enthalten:
+
==Access-Log in Traefik aktivieren==
  
 +
*vi /etc/traefik/traefik.yml
 
  accessLog:
 
  accessLog:
 
   filePath: "/logs/traefik-access.log"
 
   filePath: "/logs/traefik-access.log"
 
   format: json
 
   format: json
  
 +
Container mit Volume-Mount starten:
  
* '''-v /var/log/traefik:/logs'''
+
*-v /var/log/traefik:/logs
 
 
==== Schritt 2: CrowdSec vorbereiten ====
 
 
 
* '''cscli hub update'''
 
* '''cscli parsers install crowdsecurity/traefik-logs'''
 
* '''cscli collections install crowdsecurity/traefik'''
 
* '''systemctl restart crowdsec'''
 
 
 
==== Schritt 3: acquis.yaml anpassen ====
 
 
 
Datei: /etc/crowdsec/acquis.yaml
 
  
Eintrag hinzufügen:
+
==CrowdSec vorbereiten==
* '''filenames:'''
 
* '''  - /var/log/traefik/traefik-access.log'''
 
* '''labels:'''
 
* '''  type: traefik'''
 
  
Dann neu starten:
+
*cscli hub update
* '''systemctl restart crowdsec'''
+
*cscli parsers install crowdsecurity/traefik-logs
 +
*cscli collections install crowdsecurity/traefik
 +
*systemctl restart crowdsec
  
==== Schritt 4: Testangriff ====
+
==Logquelle einbinden==
  
Crawler-Simulation:
+
*vi /etc/crowdsec/acquis.yaml
* '''for i in $(seq 1 100); do curl -s "http://dein-host/scan$i" > /dev/null; done'''
+
filenames:
 +
  - /var/log/traefik/traefik-access.log
 +
labels:
 +
  type: traefik
  
Sensiblen Pfad abfragen:
+
*systemctl restart crowdsec
* '''curl http://dein-host/.env'''
 
* '''curl http://dein-host/.git/config'''
 
* '''curl http://dein-host/.htpasswd'''
 
  
==== Schritt 5: Erkennung prüfen ====
+
==Angriff simulieren==
  
* '''cscli alerts list'''
+
*for i in $(seq 1 100); do curl -s "http://traefik-host/scan$i" > /dev/null; done
* '''cscli decisions list'''
+
*curl http://traefik-host/.env
* '''journalctl -u crowdsec -f'''
+
*curl http://traefik-host/.git/config
 +
*curl http://traefik-host/.htpasswd
  
==== Hinweis ====
+
==Erkennung prüfen==
  
CrowdSec kann keine Container-Logs aus docker logs oder journald analysieren, wenn das Log JSON ist. Verwende ausschließlich Datei-Logging mit Volume-Mount.
+
*cscli alerts list
 +
*cscli decisions list
 +
*journalctl -u crowdsec -f
  
==== Fazit ====
+
==Hinweis==
 +
CrowdSec kann keine Logs aus docker logs oder journald lesen, wenn das Log im JSON-Format ist. Nur eine explizite Logdatei mit Volume-Mount funktioniert zuverlässig.
  
Nur wenn Traefik JSON-Access-Logs in eine Datei schreibt und CrowdSec direkten Zugriff darauf hat, funktionieren die HTTP-Szenarien zuverlässig.
+
==Fazit==
 +
Traefik lässt sich mit CrowdSec absichern, wenn das JSON-Access-Log korrekt in eine Datei geschrieben und über acquis.yaml eingebunden wird. Die Kombination aus Parser, Szenarien und Volume

Version vom 9. April 2025, 07:21 Uhr

Traefik mit CrowdSec absichern

Ziel

CrowdSec soll HTTP-Angriffe auf einen Traefik-Proxy erkennen. Dazu wird das JSON-Access-Log von Traefik per Volume-Mount an CrowdSec übergeben und ausgewertet.

Voraussetzungen

Traefik läuft im Docker-Container.

Access-Logs im JSON-Format sind aktiviert.

CrowdSec ist installiert und läuft.

Access-Log in Traefik aktivieren

  • vi /etc/traefik/traefik.yml
accessLog:
  filePath: "/logs/traefik-access.log"
  format: json

Container mit Volume-Mount starten:

  • -v /var/log/traefik:/logs

CrowdSec vorbereiten

  • cscli hub update
  • cscli parsers install crowdsecurity/traefik-logs
  • cscli collections install crowdsecurity/traefik
  • systemctl restart crowdsec

Logquelle einbinden

  • vi /etc/crowdsec/acquis.yaml
filenames:
  - /var/log/traefik/traefik-access.log
labels:
  type: traefik
  • systemctl restart crowdsec

Angriff simulieren

Erkennung prüfen

  • cscli alerts list
  • cscli decisions list
  • journalctl -u crowdsec -f

Hinweis

CrowdSec kann keine Logs aus docker logs oder journald lesen, wenn das Log im JSON-Format ist. Nur eine explizite Logdatei mit Volume-Mount funktioniert zuverlässig.

Fazit

Traefik lässt sich mit CrowdSec absichern, wenn das JSON-Access-Log korrekt in eine Datei geschrieben und über acquis.yaml eingebunden wird. Die Kombination aus Parser, Szenarien und Volume