Linux Security

CrowdSec mit Traefik, HAProxy und Reverse Proxys – Moderne Hosting-Umgebungen absichern

Erfahren Sie, wie CrowdSec mit Traefik, HAProxy und anderen Reverse Proxys zusammenarbeitet und moderne Docker- sowie Kubernetes-Umgebungen zuverlässig schützt.

4 min Lesezeit
Grafik: CrowdSec für Reverse Proxys einrichten

CrowdSec in modernen Infrastrukturumgebungen richtig einsetzen

Moderne Self-Hosting- und Unternehmensumgebungen setzen heute nur noch selten auf einen einzelnen Webserver. Stattdessen kommt häufig ein Reverse Proxy zum Einsatz, der eingehende Anfragen entgegennimmt, HTTPS-Verbindungen beendet und den Datenverkehr an interne Anwendungen weiterleitet.

Beliebte Lösungen wie Traefik, HAProxy oder Nginx bilden dabei das zentrale Eingangstor für Dienste wie Nextcloud, Immich, Vaultwarden, Grafana oder Docker-Container. Genau deshalb ist es besonders wichtig, CrowdSec so zu konfigurieren, dass Angriffe bereits an dieser zentralen Stelle erkannt und abgewehrt werden.

In diesem Teil der Serie erfahren Sie, wie CrowdSec mit Reverse Proxys zusammenarbeitet, warum die korrekte Weitergabe der Client-IP entscheidend ist und worauf Sie bei Docker- und Kubernetes-Umgebungen achten sollten.


Was ist ein Reverse Proxy?

Ein Reverse Proxy sitzt zwischen dem Internet und den eigentlichen Anwendungen.

Der typische Datenfluss sieht folgendermaßen aus:

Internet
     │
     ▼
Reverse Proxy
(Traefik / HAProxy / Nginx)
     │
     ▼
Interne Anwendungen

- Nextcloud
- Immich
- Grafana
- Gitea
- Vaultwarden
- Beszel
- Docker-Container

Alle eingehenden Verbindungen laufen zunächst über den Reverse Proxy.

Dadurch eignet sich dieser hervorragend als zentrale Stelle zur Angriffserkennung.


Warum CrowdSec am Reverse Proxy einsetzen?

Wird CrowdSec direkt am Reverse Proxy betrieben, profitiert nicht nur eine einzelne Anwendung.

Stattdessen schützt CrowdSec gleichzeitig alle dahinterliegenden Dienste.

Vorteile:

  • zentrale Angriffserkennung
  • nur eine Logquelle
  • weniger Konfigurationsaufwand
  • einheitliche Schutzmechanismen
  • gemeinsame Decisions
  • geringere Systemlast

Gerade bei Self-Hosting-Plattformen mit vielen Anwendungen ist dies ein großer Vorteil.


Unterstützte Reverse Proxys

CrowdSec unterstützt zahlreiche Proxy-Lösungen.

Dazu gehören unter anderem:

  • Traefik
  • HAProxy
  • Nginx
  • Apache
  • Caddy

Für alle existieren passende Collections oder Parser.


Traefik mit CrowdSec

Traefik wird häufig in Docker-Umgebungen eingesetzt.

Typische Einsatzgebiete:

  • Docker Compose
  • Swarm
  • Kubernetes
  • Self-Hosting
  • Homelabs

CrowdSec kann die Traefik-Access-Logs analysieren und unter anderem erkennen:

  • Webscanner
  • Brute-Force-Angriffe
  • Bots
  • Directory Traversal
  • SQL-Injection
  • API-Missbrauch

Voraussetzung ist, dass Access-Logs in Traefik aktiviert sind.

Beispiel:

accessLog:
  filePath: "/var/log/traefik/access.log"

Erst dann stehen CrowdSec die notwendigen Informationen zur Verfügung.


HAProxy mit CrowdSec

Auch HAProxy wird häufig als Load Balancer und Reverse Proxy eingesetzt.

CrowdSec analysiert hierbei die HAProxy-Logs.

Typische Erkennungen:

  • Scanner
  • Login-Bots
  • API-Angriffe
  • ungewöhnliche Zugriffsmuster
  • hohe Request-Raten

Wichtig ist auch hier eine vollständige Protokollierung aller HTTP-Anfragen.


Die Bedeutung von X-Forwarded-For

Der wichtigste Punkt bei Reverse Proxys ist die echte Client-IP-Adresse.

Ohne zusätzliche Konfiguration sieht die dahinterliegende Anwendung häufig nur die IP-Adresse des Reverse Proxys.

Beispiel:

Internet

203.0.113.20

↓

Traefik

↓

Nextcloud

↓

Nextcloud sieht:

192.168.1.10

Dadurch würde CrowdSec sämtliche Angriffe dem Reverse Proxy zuordnen.

Eine zuverlässige Erkennung wäre kaum möglich.


X-Forwarded-For

Aus diesem Grund setzen Reverse Proxys den HTTP-Header:

X-Forwarded-For

Dieser enthält die ursprüngliche Client-IP.

Beispiel:

X-Forwarded-For:
203.0.113.20

CrowdSec kann dadurch den tatsächlichen Angreifer identifizieren.


Trusted Proxy

Der Header X-Forwarded-For darf allerdings nicht blind vertraut werden.

Ein Angreifer könnte ihn selbst manipulieren.

Deshalb muss der Reverse Proxy ausdrücklich als Trusted Proxy konfiguriert werden.

Beispiel bei Nginx:

set_real_ip_from 192.168.1.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

Vertrauen Sie ausschließlich bekannten Proxy-IP-Adressen oder internen Netzwerken.


CrowdSec hinter mehreren Proxys

In größeren Umgebungen existieren häufig mehrere Proxy-Ebenen.

Beispiel:

Internet
      │
      ▼
Cloudflare
      │
      ▼
HAProxy
      │
      ▼
Traefik
      │
      ▼
Nextcloud

Auch solche Umgebungen unterstützt CrowdSec.

Wichtig ist jedoch, dass die komplette Kette korrekt konfiguriert wird.

Andernfalls gehen Client-IP-Adressen verloren.


Docker

CrowdSec eignet sich hervorragend für Docker-Umgebungen.

Typische Einsatzszenarien:

  • Docker Compose
  • Portainer
  • Nextcloud
  • Immich
  • Gitea
  • Grafana
  • Vaultwarden

Dabei sollte CrowdSec Zugriff auf die Logdateien des Reverse Proxys erhalten.

Je nach Aufbau geschieht dies über:

  • Volumes
  • Bind Mounts
  • gemeinsame Logverzeichnisse

Dadurch können sämtliche Container zentral überwacht werden.


Docker Compose

Ein häufig genutzter Aufbau sieht beispielsweise so aus:

Docker Host

├── CrowdSec
├── Traefik
├── Nextcloud
├── Immich
├── Vaultwarden
└── Grafana

Traefik schreibt sämtliche Zugriffe in eine gemeinsame Logdatei.

CrowdSec analysiert diese zentral.

Dadurch profitieren alle Anwendungen gleichzeitig.


Kubernetes

Auch Kubernetes wird von CrowdSec unterstützt.

Typische Einsatzorte:

  • Ingress Controller
  • Traefik
  • Nginx Ingress
  • HAProxy Ingress

Hier sollte CrowdSec möglichst nah am Ingress arbeiten.

Dadurch werden Angriffe bereits erkannt, bevor sie einzelne Pods erreichen.

Je nach Clustergröße empfiehlt sich eine zentrale CrowdSec-Instanz oder ein Agent pro Node.


Typische Angriffsmuster

CrowdSec erkennt am Reverse Proxy unter anderem:

  • Brute Force
  • Scanner
  • SQL-Injection
  • Directory Traversal
  • API-Scanner
  • Bad User Agents
  • WordPress-Scanner
  • Botnetze
  • Credential Stuffing

Da sämtliche Anwendungen denselben Einstiegspunkt nutzen, werden Angriffe häufig bereits sehr früh erkannt.


Besonderheiten

Beim Einsatz hinter Reverse Proxys sollten einige Punkte beachtet werden.

Access-Logs aktivieren

Ohne Logdateien kann CrowdSec keine Angriffe erkennen.


Client-IP prüfen

Kontrollieren Sie regelmäßig, ob tatsächlich die echte IP-Adresse protokolliert wird.


Nur Trusted Proxies definieren

Vertrauen Sie niemals beliebigen X-Forwarded-For-Headern.


Logrotation

Auch nach einer Logrotation muss CrowdSec weiterhin Zugriff auf die aktuellen Dateien besitzen.


Hub aktuell halten

Neue Parser und Szenarien erscheinen regelmäßig.

sudo cscli hub update
sudo cscli hub upgrade

Best Practices

Für produktive Umgebungen empfehlen sich folgende Maßnahmen:

  • Reverse Proxy zentral absichern.
  • Access-Logs aktivieren.
  • Trusted Proxies korrekt konfigurieren.
  • Firewall-Bouncer einsetzen.
  • Hub-Komponenten regelmäßig aktualisieren.
  • Alerts regelmäßig prüfen.
  • Decisions überwachen.
  • Docker-Volumes sauber strukturieren.
  • Kubernetes-Ingress zentral überwachen.

Typische Fehler

Falsche Client-IP

Kontrollieren Sie die X-Forwarded-For-Konfiguration.


Keine Logeinträge

Prüfen Sie, ob Access-Logs aktiviert sind.


Keine Alerts

sudo cscli metrics

Reverse Proxy nicht als Trusted Proxy eingetragen

In diesem Fall werden IP-Adressen häufig falsch erkannt.


Reverse Proxys wie Traefik, HAProxy oder Nginx bilden in modernen Hosting-Umgebungen den zentralen Einstiegspunkt für nahezu alle Anwendungen. Wird CrowdSec an dieser Stelle integriert, profitieren sämtliche dahinterliegenden Dienste von einer gemeinsamen Angriffserkennung und automatischen Schutzmaßnahmen.

Entscheidend für eine zuverlässige Analyse ist die korrekte Weitergabe der echten Client-IP über X-Forwarded-For sowie die Konfiguration vertrauenswürdiger Proxys. In Kombination mit aktivierten Access-Logs, einem Firewall-Bouncer und regelmäßig aktualisierten Hub-Komponenten entsteht so ein leistungsfähiges Sicherheitskonzept für Docker-, Kubernetes- und klassische Serverumgebungen.

Im nächsten Teil der Serie installieren wir das CrowdSec Dashboard. Sie lernen die Weboberfläche kennen und erfahren, wie Sie Alerts, Decisions, Maschinen und Statistiken komfortabel über den Browser verwalten können.