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…“
 
Keine Bearbeitungszusammenfassung
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