Zum Inhalt

SSH-Angriffe mit CrowdSec erkennen und blockieren

Veröffentlicht am 27. August 2026 · Geschätzte Lesezeit: 4 Minuten

CrowdSec wertet Protokolle wie das SSH-Log aus, erkennt typische Angriffe und kann verdächtige IP-Adressen über einen Firewall-Bouncer sperren. Diese Anleitung richtet CrowdSec direkt auf einem Debian- oder Ubuntu-Server ein. Plane etwa 25 Minuten ein. CrowdSec ist eine zusätzliche Schutzschicht: SSH-Schlüssel, sichere Konten und möglichst ein VPN bleiben weiterhin wichtig.

Voraussetzungen

  • Ein Server mit Debian oder Ubuntu und Internetzugang
  • Ein Benutzerkonto mit sudo-Rechten
  • SSH-Zugriff mit Schlüssel statt nur mit Passwort
  • Konsolenzugriff oder eine zweite geöffnete SSH-Sitzung als Rückweg

1. Firewall-Technik prüfen

Führe den folgenden Befehl auf dem Server aus. Er zeigt, ob iptables intern die moderne nftables-Technik verwendet.

iptables -V

Steht in der Ausgabe nf_tables, verwendest du später den nftables-Bouncer. Andernfalls nimmst du den iptables-Bouncer.

Sichere vor der Installation die aktuellen Regeln. Nutze bei nf_tables diesen Befehl:

sudo nft list ruleset > "$HOME/nftables-vor-crowdsec.txt"

Verwendet dein System klassisches iptables, nutze stattdessen:

sudo iptables-save > "$HOME/iptables-vor-crowdsec.txt"

Die Sicherung dient vor allem als Referenz. Spiele sie nicht unüberlegt zurück, wenn auf dem Server zusätzlich UFW, Docker oder ein anderes Firewall-Werkzeug Regeln verwaltet.

2. Offizielle Paketquelle hinzufügen

Lade das Installationsskript der offiziellen CrowdSec-Paketquelle zunächst als Datei herunter:

curl -fsSL https://install.crowdsec.net -o /tmp/crowdsec-install.sh

Du kannst das Skript vor dem Ausführen mit less ansehen. Beende die Anzeige mit der Taste q.

less /tmp/crowdsec-install.sh

Führe es anschließend mit Administratorrechten aus:

sudo sh /tmp/crowdsec-install.sh

Lösche danach die temporäre Datei:

rm /tmp/crowdsec-install.sh

3. CrowdSec installieren

Aktualisiere zuerst die Paketliste:

sudo apt update

Installiere anschließend die CrowdSec Security Engine:

sudo apt install crowdsec

Die Engine erkennt Angriffe, blockiert aber allein noch keine Verbindung. Dafür folgt im nächsten Schritt der Firewall-Bouncer.

4. Passenden Firewall-Bouncer installieren

Wenn iptables -V zuvor nf_tables angezeigt hat, installierst du diesen Bouncer:

sudo apt install crowdsec-firewall-bouncer-nftables

Nur wenn dein System klassisches iptables verwendet, installierst du stattdessen diesen Bouncer:

sudo apt install crowdsec-firewall-bouncer-iptables

Warning

Installiere nur einen der beiden Firewall-Bouncer. Halte während der Einrichtung eine zweite SSH-Sitzung offen, damit du bei einer Fehlkonfiguration einen Rückweg hast.

5. Dienste und Erkennung kontrollieren

Prüfe zuerst die CrowdSec Engine:

sudo systemctl status crowdsec --no-pager

Prüfe danach den Firewall-Bouncer:

sudo systemctl status crowdsec-firewall-bouncer --no-pager

Die lokale Bouncer-Liste sollte einen gültigen Firewall-Bouncer enthalten:

sudo cscli bouncers list

Kontrolliere nun, ob CrowdSec Protokolle einliest und Parser Ereignisse verarbeiten:

sudo cscli metrics show acquisition parsers

Auf einer üblichen Host-Installation wird die Linux-Sammlung normalerweise automatisch erkannt. Prüfe sie so:

sudo cscli collections list | grep -E 'linux|sshd'

Fehlt die Linux-Sammlung tatsächlich, installiere sie und starte CrowdSec neu:

sudo cscli collections install crowdsecurity/linux
sudo systemctl restart crowdsec

6. Erkennung sicher testen

Die offizielle Dokumentation stellt einen speziellen Test-Benutzernamen bereit. Verwende ihn nur von einem externen Netz, wenn dein SSH-Dienst ohnehin bewusst aus dem Internet erreichbar ist. Ersetze <server-ip> durch die öffentliche IP-Adresse oder den DNS-Namen deines Servers.

ssh crowdsec-test-NtktlJHV4TfBSK3wvlhiOBnl@<server-ip>

Kontrolliere danach auf dem Server, ob der Test erkannt wurde:

sudo cscli alerts list -s crowdsecurity/ssh-generic-test

Tip

Private IP-Adressen im Heimnetz sind standardmäßig freigestellt. Ein Test aus dem eigenen LAN erzeugt deshalb normalerweise keinen Alarm. Provoziere keine Sperre mit wiederholt falschen Passwörtern.

Aktive Sperrentscheidungen kannst du jederzeit anzeigen:

sudo cscli decisions list

Falls du versehentlich deine eigene öffentliche IP-Adresse gesperrt hast, entfernst du genau diese Entscheidung über die Konsole oder eine zweite Sitzung. Ersetze <eigene-oeffentliche-ip> durch deine tatsächliche Adresse.

sudo cscli decisions delete --ip <eigene-oeffentliche-ip>

7. Konfiguration sichern und Rückweg kennen

Lege nach dem erfolgreichen Test ein Archiv der CrowdSec-Konfiguration in deinem Benutzerordner an:

sudo tar -czf "$HOME/crowdsec-konfiguration-$(date +%F-%H%M).tar.gz" -C / etc/crowdsec

Wenn der Bouncer unerwartet Verbindungen blockiert, stoppe ihn über die Serverkonsole:

sudo systemctl disable --now crowdsec-firewall-bouncer

Die Erkennungs-Engine kannst du bei Bedarf ebenfalls stoppen:

sudo systemctl disable --now crowdsec

Danger

CrowdSec ersetzt keine sichere SSH-Konfiguration. Verwende Schlüssel, deaktiviere unbenötigte Konten und leite Port 22 möglichst nicht direkt aus dem Internet weiter. Ein VPN wie WireGuard oder Tailscale reduziert die Angriffsfläche deutlich.

8. Typische Fehler beheben

  • Der Bouncer startet nicht: Prüfe, ob du den zu deiner Firewall passenden Bouncer installiert hast, und lies das Protokoll mit sudo journalctl -u crowdsec-firewall-bouncer -n 100 --no-pager.
  • Es erscheinen keine SSH-Daten: Kontrolliere mit sudo cscli metrics show acquisition parsers, ob das SSH-Protokoll eingelesen wird.
  • Der Test erzeugt keinen Alarm: Ein Test aus einer privaten LAN-Adresse wird normalerweise ignoriert. Prüfe außerdem, ob die Linux-Sammlung aktiv ist.
  • SSH ist nach der Einrichtung nicht erreichbar: Nutze die Konsole oder die zweite Sitzung und stoppe zuerst den Firewall-Bouncer.

Grundlage dieser Anleitung sind die aktuelle CrowdSec-Installation für Linux, die Dokumentation zum Firewall-Bouncer und der offizielle Gesundheitscheck, geprüft am 24. August 2026. Als ergänzende Video-Einführung eignet sich Fail2ban vs CrowdSec: Which One Should You Use in Your Homelab?.

Fertig

CrowdSec liest jetzt die SSH-Protokolle, erkennt typische Angriffe und übergibt Sperrentscheidungen an den passenden Firewall-Bouncer. Eine einfache Funktionsprüfung besteht aus drei Punkten: Beide Dienste sind aktiv, cscli bouncers list zeigt den Bouncer und cscli metrics show acquisition parsers meldet verarbeitete Ereignisse.