Was ist CrowdSec?
CrowdSec ist ein modernes, kollaboratives Open-Source Intrusion Prevention System (IPS). Es analysiert Logs in Echtzeit, erkennt Angriffsmuster und blockiert Angreifer – nicht nur auf Ihrem Server, sondern koordiniert über eine weltweite Community.
CrowdSec vs. fail2ban
| Merkmal | fail2ban | CrowdSec |
|---|---|---|
| Analyse | Regex auf Logs | ML + Behavior Scenarios |
| Community-Blacklists | Nein | Ja (täglich aktualisiert) |
| Architektur | Monolithisch | Agent + Bouncer getrennt |
| Dashboard | Nein | Cloud-Dashboard |
| Aktionen | iptables-Ban | Bouncers (iptables, nginx, Cloudflare...) |
| Performance | Threads | Go-basiert, sehr schnell |
CrowdSec hat zwei Teile:
- Security Engine (Agent): Analysiert Logs, erkennt Angriffe
- Bouncers: Setzen Entscheidungen durch (blockieren IPs per iptables, nginx, Cloudflare etc.)
Installation auf Ubuntu/Debian
# Repository hinzufügen
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
# CrowdSec installieren
sudo apt update
sudo apt install -y crowdsec
# Status prüfen
sudo systemctl status crowdsec
sudo cscli version
Firewall-Bouncer installieren (blockiert per iptables/nftables)
sudo apt install -y crowdsec-firewall-bouncer-nftables
sudo systemctl enable --now crowdsec-firewall-bouncer
Der Bouncer liest gebannte IPs aus CrowdSec und fügt sie automatisch zu nftables-Regeln hinzu.
Collections – vorhandene Angriffsszenarien
CrowdSec nutzt Collections – Pakete aus Parsern und Szenarien für bestimmte Software:
# Installierte Collections anzeigen
sudo cscli collections list
# Typischerweise vorinstalliert:
# crowdsecurity/linux – SSH, syslog
# crowdsecurity/sshd – SSH-Brute-Force
# Weitere Collections installieren
sudo cscli collections install crowdsecurity/nginx
sudo cscli collections install crowdsecurity/apache2
sudo cscli collections install crowdsecurity/wordpress
sudo cscli collections install crowdsecurity/postfix
# Nach Installation neu laden
sudo systemctl reload crowdsec
Aktive Sperren anzeigen
# Aktuelle Entscheidungen (gesperrte IPs)
sudo cscli decisions list
# Alerts anzeigen (Erkennungen)
sudo cscli alerts list
# Spezifische IP manuell bannen
sudo cscli decisions add --ip 1.2.3.4 --reason "manuell geblockt" --duration 24h
# IP-Ban aufheben
sudo cscli decisions delete --ip 1.2.3.4
Log-Quellen konfigurieren
CrowdSec liest Log-Dateien automatisch basierend auf den installierten Collections. Konfiguration in /etc/crowdsec/acquis.yaml:
# Nginx Logs hinzufügen
filenames:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
labels:
type: nginx
---
# Traefik Logs
filenames:
- /var/log/traefik/access.log
labels:
type: traefik
---
# Docker Container Logs via journald
source: journald
journalctl_filter:
- "_SYSTEMD_UNIT=docker.service"
labels:
type: syslog
Nach Änderungen:
sudo systemctl reload crowdsec
CrowdSec Central API – Community-Blacklists
CrowdSec teilt Bedrohungsdaten anonymisiert mit der Community. Sie erhalten im Gegenzug die Community-Blacklist – täglich aktualisiert mit bekannten Angreifer-IPs weltweit.
# Verbindung zur CAPI prüfen
sudo cscli capi status
# Community-Blocklists manuell aktualisieren
sudo cscli hub update
sudo cscli hub upgrade
CrowdSec App-Dashboard
Unter app.crowdsec.net (kostenlos) haben Sie ein visuelles Dashboard mit:
- Erkannte Angriffe und Trends
- Welche Szenarien wurden ausgelöst
- Top Angreifer-IPs
- Eigene benutzerdefinierte Blocklisten
Enrollment:
sudo cscli console enroll <ENROLLMENT_KEY>
sudo systemctl reload crowdsec
Den Enrollment-Key finden Sie in Ihrem Dashboard-Account.
nginx-Bouncer (direkte Sperrung im Webserver)
Statt iptables-Level-Blocking kann CrowdSec Angreifer direkt im nginx abweisen (HTTP 403):
sudo apt install -y crowdsec-nginx-bouncer
In /etc/nginx/nginx.conf:
http {
...
# CrowdSec Bouncer
lua_package_path "/usr/lib/crowdsec/lua/?.lua;;";
init_by_lua_file /etc/crowdsec/bouncers/crowdsec-nginx-bouncer.conf;
...
}
Eigene Szenarien erstellen
Für individuelle Angriffsmuster eigene Scenarios schreiben:
# /etc/crowdsec/scenarios/custom-api-abuse.yaml
type: leaky
name: custom/api-abuse
description: "Mehr als 100 API-Requests in 1 Minute"
filter: "evt.Meta.service == 'nginx' && evt.Meta.http_path startsWith '/api/'"
leakspeed: "10s"
capacity: 100
labels:
service: api
type: brute_force
blackhole: 5m
sudo systemctl reload crowdsec
FAQ
Blockiert CrowdSec legitime Benutzer?
False Positives sind möglich aber selten. Sie können IPs auf eine Whitelist setzen: sudo cscli decisions add --ip 1.2.3.4 --type allow
Muss ich Logs mit CrowdSec teilen?
Nur anonymisierte Signaturen werden geteilt (keine Log-Inhalte). Das Sharing kann in /etc/crowdsec/config.yaml unter api.server.capi_whitelists eingeschränkt werden.
Kann CrowdSec fail2ban ersetzen?
Für neue Deployments: Ja. Für bestehende fail2ban-Setups lohnt sich eine Migration – CrowdSec ist mächtiger und wartungsarmer.
Fazit
CrowdSec ist 2025 die beste fail2ban-Alternative für Linux-Server. Die Community-Blacklists blockieren aktive Angreifer proaktiv – bevor sie Ihren Server überhaupt erreichen.
Wir härten Linux-Server und Webanwendungen für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Server-Sicherheitsberatung anfragen.