CrowdSec Cybersicherheit Linux Server Schutz

CrowdSec einrichten: Open-Source-Schutz gegen Cyber-Angriffe für Linux-Server

Crowdsec einrichten – der moderne, kollaborative Schutz gegen Cyber-Angriffe für deinen Heimserver. CrowdSec ist eine Open-Source-Intrusion-Detection-Lösung, die durch Crowdsourcing bösartige IP-Adressen teilt und blockiert. In diesem Guide lernst du, wie du CrowdSec auf deinem Linux-Server installierst und konfigurierst.

Was ist CrowdSec und warum ist es besser als Fail2ban?

CrowdSec wurde als moderner Nachfolger von Fail2ban entwickelt und bietet entscheidende Vorteile:

  • Crowdsourced Threat Intelligence: Millionen von Installationen weltweit teilen Angriffsdaten – du profitierst automatisch von der gesamten Community
  • Dezentral: Kein zentraler Server mit deinen Logs – nur aggregierte Angriffs-IPs werden geteilt
  • Modular: Trenne Erkennung (Agents) von Blockierung (Bouncers)
  • Multi-Service: Schützt SSH, Nginx, Apache, WordPress, Nextcloud und viele mehr
  • Dashboard: Grafisches Dashboard über app.crowdsec.net

Wie funktioniert CrowdSec?

CrowdSec besteht aus zwei Hauptkomponenten:

  1. CrowdSec Agent: Liest Logs, erkennt Angriffsmuster und meldet bösartige IPs
  2. Bouncer: Setzt die Blockierungen tatsächlich um (Firewall, Nginx, etc.)

Der Agent erkennt Angriffe anhand von Szenarien (ähnlich wie Fail2ban-Rules), zum Beispiel zu viele fehlgeschlagene SSH-Logins oder WordPress-Brute-Force-Versuche. Der Bouncer blockiert die Angreifer-IP dann auf Firewall-Ebene.

CrowdSec installieren

Debian / Ubuntu

# Repository hinzufügen
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash

# CrowdSec installieren
sudo apt install crowdsec

Status prüfen

sudo systemctl status crowdsec
sudo cscli metrics

Firewall-Bouncer installieren

Der Agent allein blockiert noch nichts – dafür ist ein Bouncer zuständig. Für die meisten Linux-Server ist der iptables/nftables-Bouncer empfohlen:

sudo apt install crowdsec-firewall-bouncer-iptables

Der Bouncer registriert sich automatisch beim lokalen CrowdSec-Agent und blockiert erkannte Angreifer per iptables.

Szenarien und Collections verwalten

CrowdSec nutzt „Collections“ – Pakete von Szenarien und Parsern für verschiedene Dienste:

# Verfügbare Collections anzeigen
sudo cscli collections list

# Nginx-Collection installieren
sudo cscli collections install crowdsecurity/nginx

# WordPress-Schutz
sudo cscli collections install crowdsecurity/wordpress

# SSH-Schutz (meist bereits installiert)
sudo cscli collections install crowdsecurity/sshd

# Dienst neu starten
sudo systemctl reload crowdsec

Logs konfigurieren

CrowdSec muss wissen, wo die Logs deiner Dienste liegen. Prüfe die Konfiguration unter /etc/crowdsec/acquis.yaml:

filenames:
  - /var/log/auth.log
  - /var/log/syslog
labels:
  type: syslog
---
filenames:
  - /var/log/nginx/access.log
labels:
  type: nginx

Entscheidungen anzeigen und verwalten

# Aktuelle Blockierungen anzeigen
sudo cscli decisions list

# Einzelne IP manuell blockieren
sudo cscli decisions add --ip 1.2.3.4 --reason "manuell blockiert" --duration 24h

# IP aus Blockierung entfernen
sudo cscli decisions delete --ip 1.2.3.4

# Statistiken
sudo cscli metrics

CrowdSec Dashboard einrichten

Über app.crowdsec.net kannst du deine CrowdSec-Installation mit einem kostenlosen Account verbinden und ein grafisches Dashboard erhalten:

sudo cscli console enroll DEIN-ENROLLMENT-CODE

Den Enrollment-Code erhältst du nach der Registrierung auf der CrowdSec-Website.

CrowdSec mit Docker-Services

Für Docker-Container gibt es einen speziellen Bouncer, der direkt in das Docker-Netzwerk eingreift. Außerdem kann der CrowdSec-Agent selbst als Docker-Container laufen:

docker run -d \
  --name crowdsec \
  -e GID=1000 \
  -v /var/log:/var/log:ro \
  -v crowdsec-db:/var/lib/crowdsec/data/ \
  -v crowdsec-config:/etc/crowdsec/ \
  crowdsecurity/crowdsec

Whitelisting: Eigene IPs freigeben

Wichtig: Stelle sicher, dass deine eigenen IP-Adressen nicht geblockt werden! Füge deine Heimnetz-IPs zur Whitelist hinzu:

# /etc/crowdsec/parsers/s02-enrich/mywhitelists.yaml
name: crowdsecurity/mywhitelists
description: "Eigene Whitelist"
whitelist:
  reason: "private Adressen"
  ip:
    - "192.168.1.0/24"
    - "10.0.0.0/8"

CrowdSec einrichten: Best Practices und erweiterte Konfiguration

CrowdSec für Docker-Logs konfigurieren

Wenn deine Dienste als Docker-Container laufen, musst du CrowdSec Zugriff auf die Container-Logs geben:

# /etc/crowdsec/acquis.yaml ergänzen
source: docker
container_name:
  - nginx
  - vaultwarden
labels:
  type: nginx

Notifications einrichten: Telegram-Benachrichtigungen

CrowdSec kann bei neuen Blockierungen Benachrichtigungen senden:

sudo cscli notifications install telegram
sudo cscli notifications test telegram

Konfiguriere deinen Telegram-Bot-Token und Chat-ID in /etc/crowdsec/notifications/telegram.yaml.

CrowdSec mit Traefik (Reverse Proxy)

Der Traefik-Bouncer schützt alle Dienste hinter deinem Reverse Proxy in einem Schritt. Füge den bouncer als Middleware in Traefik ein:

docker run -d   --name traefik-crowdsec-bouncer   -e CROWDSEC_BOUNCER_API_KEY=dein-api-key   -e CROWDSEC_AGENT_HOST=crowdsec:8080   -p 8080:8080   fbonalair/traefik-crowdsec-bouncer

Performance-Tuning

CrowdSec kann bei sehr hohem Log-Aufkommen Ressourcen verbrauchen. Optimiere durch:

  • Log-Rotierung aktivieren, um riesige Log-Dateien zu verhindern
  • Nicht benötigte Szenarien deaktivieren: sudo cscli scenarios list
  • Prometheus-Metriken für CrowdSec mit Grafana visualisieren

CrowdSec Monitoring mit Grafana und Prometheus

CrowdSec bietet einen eingebauten Prometheus-Exporter. Aktiviere ihn in /etc/crowdsec/config.yaml:

prometheus:
  enabled: true
  level: full
  listen_addr: 127.0.0.1
  listen_port: 6060

Füge den CrowdSec-Target in deine prometheus.yml ein:

  - job_name: 'crowdsec'
    static_configs:
      - targets: ['localhost:6060']

Im CrowdSec-GitHub-Repository findest du ein offizielles Grafana-Dashboard (ID: 14584), das dir folgende Metriken anzeigt:

  • Anzahl erkannter Angriffe nach Szenario und Zeit
  • Aktive Blockierungen und ihre Herkunftsländer
  • Performance des Parsers (verarbeitete Logs pro Sekunde)
  • Anteil der Community-Blockliste (Angriffe aus bekannten bösen IPs)

Damit hast du ein vollständiges Bild deiner Sicherheitslage direkt in Grafana – ohne externe Dienste oder Cloud-Abhängigkeit.

CrowdSec einrichten: Troubleshooting und häufige Probleme

CrowdSec startet nicht oder Logs werden nicht gelesen

Wenn CrowdSec keine Angriffe erkennt, prüfe zuerst die Logs und den Metriken-Output:

# Logs in Echtzeit anzeigen
sudo journalctl -fu crowdsec

# Aktuelle Metriken prüfen
sudo cscli metrics

# Acquis-Konfiguration testen
sudo crowdsec -t -c /etc/crowdsec/config.yaml

Häufige Ursachen:

  • Falsche Log-Pfade: Prüfe, ob die in acquis.yaml angegebenen Log-Dateien existieren und von CrowdSec lesbar sind (ls -la /var/log/nginx/access.log)
  • Parser-Fehler: Wenn Logs nicht im erwarteten Format vorliegen, erkennt CrowdSec keine Muster. Prüfe mit sudo cscli parsers list, ob der passende Parser installiert ist.
  • SELinux/AppArmor: Auf Systemen mit aktivierten MAC-Systemen kann der Zugriff auf Logs blockiert sein. Prüfe dmesg | grep denied.

Bouncer blockt eigene IP

Wenn du dich aus dem Server ausgesperrt hast:

# Per lokaler Konsole oder Out-of-Band-Zugang:
sudo cscli decisions delete --ip DEINE_IP

# Präventiv: Eigene IPs dauerhaft whitelisten
sudo cscli decisions add --ip 192.168.1.0/24 --reason "homelan" --duration 8760h

False Positives: Legitime Dienste werden geblockt

Wenn CrowdSec legitime Dienste oder Crawlern irrtümlich blockiert:

# Geblockte IPs mit Grund anzeigen
sudo cscli decisions list -o json | python3 -m json.tool

# Szenario temporär deaktivieren
sudo cscli scenarios remove crowdsecurity/http-crawl-non_statics

CrowdSec im Vergleich: Fail2ban vs. CrowdSec vs. Crowdsec + Firewall

Um die richtige Lösung für dein Homelab zu wählen, hilft ein direkter Vergleich:

Feature Fail2ban CrowdSec
Community-Blocklisten Nein Ja – automatisch aktualisiert
Echtzeit-Threat-Intelligence Nein Ja
Modular (Agent + Bouncer) Nein Ja
Dashboard Nur Logs app.crowdsec.net
Docker-Support Eingeschränkt Nativ
Performance Leicht Etwas mehr RAM
Schwierigkeit Setup Einfach Mittel

Empfehlung: Für neue Homelab-Setups ist CrowdSec die klar bessere Wahl. Für bestehende Fail2ban-Installationen lohnt eine Migration – die Konfiguration kann größtenteils übernommen werden. Beide können parallel betrieben werden, während du CrowdSec testest.

CrowdSec und Fail2ban kombinieren

Während der Migrations-Phase können beide Tools gleichzeitig laufen. CrowdSec übernimmt neue Dienste schrittweise, Fail2ban schützt ältere Dienste weiterhin. Entferne Fail2ban-Regeln nach und nach, sobald CrowdSec-Collections dieselben Dienste abdecken.

CrowdSec API und Automatisierung

CrowdSec bietet eine lokale REST-API, über die du Entscheidungen programmgesteuert abrufen und hinzufügen kannst. Das ermöglicht die Integration in eigene Skripte und Automatisierungsworkflows:

# API-Key für lokale API erstellen
sudo cscli bouncers add mein-skript

# Aktuelle Entscheidungen über REST API abrufen
curl -s -H "X-Api-Key: DEIN_API_KEY" http://localhost:8080/v1/decisions | python3 -m json.tool

Praktische Anwendungsfälle für die API:

  • SIEM-Integration: Automatisch Blockierungen in dein Security Information and Event Management exportieren
  • Homeautomation: Bei kritischen Angriffen automatisch Benachrichtigungen an Home Assistant senden
  • Multi-Server-Setup: Entscheidungen von einem zentralen CrowdSec-Server auf mehrere Maschinen verteilen – nutze dafür die LAPI (Local API) mit mehreren Agents

Für ein Multi-Server-Homelab kannst du einen dedizierten CrowdSec-Server aufsetzen, der alle Agents koordiniert. Alle Server schicken ihre Erkennungen an den zentralen LAPI-Server, der wiederum Blockierungen an alle Bouncers verteilt. So schützen sich alle deine Server gegenseitig.

Fazit: Aktiver Schutz durch Community-Power

CrowdSec ist die moderne Antwort auf Fail2ban und bietet durch seine Crowdsourcing-Funktion einen einzigartigen Vorteil: Dein Server ist von Angriffen geschützt, die andere bereits erkannt haben – noch bevor der Angreifer dich überhaupt erreicht. Die Installation dauert 15 Minuten und der laufende Betrieb ist praktisch wartungsfrei.

Ähnliche Beiträge