So setzt CrowdSec Entscheidungen direkt in Firewall-Regeln um
Bislang haben wir gesehen, wie CrowdSec Angriffe erkennt, Logdateien analysiert und sogenannte Decisions erstellt. Eine Decision allein blockiert jedoch noch keinen Angreifer. Erst ein Bouncer setzt diese Entscheidungen in konkrete Schutzmaßnahmen um.
Für Linux-Server ist der Firewall-Bouncer die effizienteste Variante. Er übernimmt automatisch alle von CrowdSec erzeugten Decisions und erstellt daraus Firewall-Regeln. Dadurch werden Angreifer bereits auf Netzwerkebene blockiert – noch bevor sie Apache, Nginx oder SSH überhaupt erreichen.
In diesem Teil der Serie richten wir den Firewall-Bouncer ein, betrachten die Unterschiede zwischen nftables und iptables und testen die automatische Sperrung eines Angreifers.
Was ist ein Bouncer?
Ein Bouncer ist die Komponente, die auf die von CrowdSec erzeugten Decisions reagiert.
Der Ablauf sieht vereinfacht wie folgt aus:
Logdateien
│
▼
CrowdSec Agent
│
▼
Parser
│
▼
Szenarien
│
▼
Decision
│
▼
Local API
│
▼
Firewall-Bouncer
│
▼
Firewall-Regel
│
▼
Angreifer blockiert
Der Bouncer fragt die Local API regelmäßig nach neuen Decisions ab und setzt diese automatisch um.
Welche Bouncer gibt es?
CrowdSec unterstützt zahlreiche Bouncer.
Beispiele:
- Firewall-Bouncer
- Nginx-Bouncer
- Apache-Bouncer
- Traefik-Bouncer
- HAProxy-Bouncer
- Cloudflare-Bouncer
- Caddy-Bouncer
Für Linux-Server empfiehlt sich in den meisten Fällen der Firewall-Bouncer.
nftables oder iptables?
Der Firewall-Bouncer unterstützt sowohl nftables als auch iptables.
nftables
nftables ist der moderne Nachfolger von iptables und wird unter Debian 13 standardmäßig verwendet.
Vorteile:
- moderne Architektur
- bessere Performance
- einfachere Regelverwaltung
- IPv4 und IPv6 gemeinsam
- langfristige Weiterentwicklung
iptables
iptables ist weiterhin weit verbreitet und wird von älteren Systemen genutzt.
Vorteile:
- hohe Kompatibilität
- bewährte Technik
- in vielen bestehenden Umgebungen vorhanden
Für neue Installationen empfiehlt sich jedoch nftables.
Prüfen, welche Firewall verwendet wird
Ob nftables aktiv ist, prüfen Sie mit:
sudo nft list ruleset
Erscheinen Firewall-Regeln, wird nftables verwendet.
Alternativ:
sudo systemctl status nftables
Für iptables:
sudo iptables -L
Firewall-Bouncer installieren
Unter Debian erfolgt die Installation über das CrowdSec-Repository.
Paketliste aktualisieren:
sudo apt update
Firewall-Bouncer installieren:
sudo apt install crowdsec-firewall-bouncer
Während der Installation verbindet sich der Bouncer automatisch mit der Local API.
Dienst starten
Status prüfen:
sudo systemctl status crowdsec-firewall-bouncer
Die Ausgabe sollte den Status
active (running)
anzeigen.
Falls erforderlich:
sudo systemctl enable --now crowdsec-firewall-bouncer
Installation überprüfen
Registrierte Bouncer anzeigen:
sudo cscli bouncers list
Beispiel:
NAME TYPE firewall-bouncer active
Damit ist sichergestellt, dass der Bouncer erfolgreich mit der Local API kommuniziert.
Entscheidungen übernehmen
Sobald CrowdSec eine Decision erzeugt, übernimmt der Firewall-Bouncer diese automatisch.
Der Ablauf:
SSH-Angriff
│
▼
CrowdSec erkennt Angriff
│
▼
Decision erzeugen
│
▼
Firewall-Bouncer
│
▼
Firewall-Regel erstellen
│
▼
IP blockiert
Der Administrator muss dabei nichts weiter unternehmen.
Eigene Sperre testen
Zum Test kann eine Decision manuell erstellt werden.
Beispiel:
sudo cscli decisions add --ip 203.0.113.10
Kontrolle:
sudo cscli decisions list
Anschließend sollte der Firewall-Bouncer diese Sperre übernehmen.
Nach dem Test kann sie wieder entfernt werden.
sudo cscli decisions delete --ip 203.0.113.10
Firewall-Regeln prüfen
Bei nftables:
sudo nft list ruleset
Bei iptables:
sudo iptables -L -n
Hier erscheinen automatisch die durch CrowdSec erzeugten Regeln.
Live-Test durchführen
Ein besonders anschaulicher Test besteht darin, bewusst mehrere fehlgeschlagene SSH-Anmeldungen gegen den eigenen Server auszuführen.
Beispiel:
ssh testuser@server.example.com
Geben Sie mehrfach ein falsches Passwort ein.
Alternativ kann ein nicht existierender Benutzer verwendet werden.
ssh unbekannt@server.example.com
Nach Erreichen des Schwellwertes erstellt CrowdSec automatisch eine Decision, die der Firewall-Bouncer unmittelbar übernimmt.
Hinweis: Führen Sie solche Tests ausschließlich gegen eigene Systeme oder Systeme durch, für die Sie ausdrücklich autorisiert sind.
Alerts und Decisions beobachten
Alerts:
sudo cscli alerts list
Decisions:
sudo cscli decisions list
Firewall-Bouncer:
sudo systemctl status crowdsec-firewall-bouncer
CrowdSec:
sudo journalctl -u crowdsec -f
Firewall-Bouncer:
sudo journalctl -u crowdsec-firewall-bouncer -f
So lässt sich der gesamte Ablauf in Echtzeit verfolgen.
Performance
Der Firewall-Bouncer arbeitet äußerst ressourcenschonend.
Im Normalbetrieb verursacht er nur eine geringe CPU- und Speicherlast.
Vorteile der Sperrung auf Firewall-Ebene:
- Angriffe werden bereits vor Apache oder Nginx abgefangen.
- SSH erhält keine Verbindungsanfragen mehr.
- Weniger Logeinträge.
- Geringere Serverlast.
- Schnellere Reaktion auf Angriffe.
Gerade bei häufigen Brute-Force-Angriffen ist dies ein großer Vorteil gegenüber Anwendungen, die Zugriffe erst auf Webserver- oder Anwendungsebene blockieren.
Best Practices
Für einen produktiven Einsatz haben sich folgende Maßnahmen bewährt:
nftablesauf neuen Systemen bevorzugen.- Firewall-Bouncer beim Systemstart automatisch starten.
- Hub-Komponenten regelmäßig aktualisieren.
- Decisions regelmäßig kontrollieren.
- Alerts überwachen.
- Nur notwendige Ports freigeben.
- Firewall-Regeln regelmäßig überprüfen.
- Kombination mit SSH-Schlüsseln und Reverse-Proxys nutzen.
Typische Fehler
Firewall-Bouncer läuft nicht
Status prüfen:
sudo systemctl status crowdsec-firewall-bouncer
Keine Bouncer registriert
sudo cscli bouncers list
Decisions vorhanden – aber keine Sperren
Kontrollieren:
sudo nft list ruleset
oder
sudo iptables -L
Verbindung zur Local API fehlgeschlagen
Logs anzeigen:
sudo journalctl -u crowdsec-firewall-bouncer
Der Firewall-Bouncer ist die ideale Ergänzung zu CrowdSec und sorgt dafür, dass erkannte Angreifer nicht nur identifiziert, sondern unmittelbar auf Netzwerkebene blockiert werden. Dadurch erreichen schädliche Verbindungen weder den Webserver noch den SSH-Dienst, was die Serverlast reduziert und die Sicherheit deutlich erhöht.
Dank der Unterstützung von nftables und iptables lässt sich der Bouncer flexibel in bestehende Umgebungen integrieren. Für neue Debian-13-Systeme empfiehlt sich nftables, da es die moderne und leistungsfähigere Firewall-Technologie darstellt.
Im nächsten Teil der Serie beschäftigen wir uns mit dem CrowdSec Dashboard. Sie erfahren, wie Sie die Weboberfläche installieren und darüber Alerts, Decisions, Maschinen und Statistiken komfortabel verwalten können.