SSH-Zugänge zuverlässig absichern
Der SSH-Dienst gehört zu den am häufigsten angegriffenen Diensten auf öffentlich erreichbaren Linux-Servern. Kaum ist ein Server mit dem Internet verbunden, beginnen automatisierte Bots mit dem Scannen offener SSH-Ports und versuchen, sich mit bekannten Benutzernamen und Passwortlisten anzumelden.
Diese Angriffe laufen meist vollautomatisch und erreichen innerhalb weniger Minuten tausende Login-Versuche. Selbst wenn sichere Passwörter verwendet werden, verursachen sie unnötige Last und erschweren die Auswertung der Protokolle.
CrowdSec erkennt solche Angriffe anhand der SSH-Logdateien und kann Angreifer automatisch blockieren – lange bevor sie Schaden anrichten. In diesem Teil der Serie richten wir den SSH-Schutz ein und zeigen, wie CrowdSec Brute-Force-Angriffe, Passwortspraying und Botnetze erkennt.
Voraussetzungen
Für diesen Beitrag benötigen Sie:
- Debian 13
- CrowdSec installiert
- OpenSSH Server installiert
- Root-Rechte oder sudo-Berechtigung
- Zugriff auf die SSH-Konfiguration
Ob der SSH-Dienst läuft, prüfen Sie mit:
sudo systemctl status ssh
Die Ausgabe sollte den Status active (running) anzeigen.
SSH-Logdateien
CrowdSec analysiert die Protokolle des SSH-Dienstes.
Unter Debian befinden sich diese standardmäßig im Systemjournal.
Aktuelle SSH-Meldungen anzeigen:
sudo journalctl -u ssh -f
Alternativ lassen sich sämtliche SSH-Ereignisse filtern.
sudo journalctl | grep ssh
Hier erscheinen unter anderem:
- erfolgreiche Anmeldungen
- fehlgeschlagene Logins
- ungültige Benutzernamen
- Verbindungsabbrüche
- Authentifizierungsfehler
Diese Informationen dienen CrowdSec als Grundlage für die Angriffserkennung.
SSH-Collection installieren
Für OpenSSH stellt CrowdSec eine eigene Collection bereit.
Installation:
sudo cscli collections install crowdsecurity/sshd
Anschließend CrowdSec neu starten.
sudo systemctl restart crowdsec
Installation überprüfen
Installierte Collections:
sudo cscli collections list
Die Ausgabe sollte unter anderem enthalten:
crowdsecurity/sshd
Zusätzlich lassen sich die Parser prüfen.
sudo cscli parsers list
Welche Angriffe erkennt CrowdSec?
Bereits die Standard-Collection erkennt zahlreiche SSH-Angriffe.
Dazu gehören:
- Brute Force
- Passwortspraying
- Login-Bots
- bekannte Scanner
- Botnetze
- wiederholte Fehlanmeldungen
- verdächtige Login-Muster
Alle Szenarien werden regelmäßig aktualisiert.
Brute-Force-Angriffe
Der häufigste Angriff auf SSH ist der klassische Brute-Force-Angriff.
Ein Bot versucht wiederholt, sich mit demselben Benutzer anzumelden.
Beispiel:
root root root root root
CrowdSec erkennt:
- gleiche IP-Adresse
- viele Fehlversuche
- kurzer Zeitraum
↓
Decision
↓
Firewall-Bouncer
↓
IP wird automatisch blockiert.
Passwortspraying
Passwortspraying unterscheidet sich vom klassischen Brute-Force-Angriff.
Hier wird ein Passwort gegen viele verschiedene Benutzer getestet.
Beispiel:
root admin test backup oracle postgres ubuntu
Da nur wenige Versuche pro Benutzer erfolgen, erkennen klassische Schutzmechanismen solche Angriffe oft nicht.
CrowdSec analysiert dagegen das Verhalten einer IP-Adresse über mehrere Konten hinweg und kann Passwortspraying zuverlässig identifizieren.
Botnetze
Heute stammen SSH-Angriffe nur noch selten von einer einzelnen IP-Adresse.
Meist greifen Botnetze an.
Typische Merkmale:
- tausende kompromittierte Geräte
- wenige Login-Versuche pro IP
- weltweite Verteilung
- permanenter Angriff
Hier profitiert CrowdSec besonders von der optionalen Community Threat Intelligence.
Wurde eine IP bereits auf anderen Systemen als Angreifer erkannt, kann sie häufig schon blockiert werden, bevor sie den eigenen Server angreift.
Kombination mit SSH-Schlüsseln
CrowdSec ersetzt keine sichere SSH-Konfiguration.
Für maximale Sicherheit empfiehlt sich die Kombination mehrerer Schutzmaßnahmen.
Dazu gehören:
- SSH-Schlüssel statt Passwörter
- starke Passphrasen
- aktueller OpenSSH-Server
- CrowdSec
- Firewall-Bouncer
- regelmäßige Updates
Falls Passwortanmeldungen weiterhin benötigt werden, sollten sichere Passwörter und – wenn möglich – eine Zwei-Faktor-Authentifizierung eingesetzt werden.
CrowdSec ergänzt diese Maßnahmen, indem verdächtige Zugriffe frühzeitig erkannt und blockiert werden.
Live-Test durchführen
Nach der Installation sollte die Angriffserkennung getestet werden.
Führen Sie mehrere bewusst fehlerhafte SSH-Anmeldungen gegen Ihren eigenen Server durch.
Beispiel:
ssh testuser@server.example.com
Geben Sie mehrmals ein falsches Passwort ein.
Alternativ können Sie einen nicht existierenden Benutzer verwenden.
ssh unbekannt@server.example.com
Nach mehreren Fehlversuchen sollte CrowdSec entsprechende Alerts erzeugen.
Hinweis: Testen Sie ausschließlich gegen Systeme, die Sie selbst verwalten oder für die Sie ausdrücklich berechtigt sind.
Alerts auswerten
Erkannte Vorfälle anzeigen:
sudo cscli alerts list
Beispiel:
ID SCENARIO SOURCE 2021 ssh-bf 203.0.113.17
Details:
sudo cscli alerts inspect 2021
Hier sehen Sie unter anderem:
- IP-Adresse
- Zeitpunkt
- Anzahl der Fehlversuche
- ausgelöstes Szenario
- betroffener Dienst
Decisions prüfen
Hat CrowdSec bereits reagiert?
sudo cscli decisions list
Beispiel:
203.0.113.17
Ist zusätzlich ein Firewall-Bouncer installiert, wird diese IP automatisch blockiert.
SSH-Protokolle beobachten
Während des Tests empfiehlt sich die Live-Auswertung.
SSH:
sudo journalctl -u ssh -f
CrowdSec:
sudo journalctl -u crowdsec -f
So lässt sich nachvollziehen, wann CrowdSec den Angriff erkennt.
Metriken prüfen
Die aktuelle Verarbeitung zeigt:
sudo cscli metrics
Hier erscheinen unter anderem:
- gelesene SSH-Ereignisse
- Parser
- Szenarien
- Alerts
- Decisions
Best Practices
Für einen sicheren SSH-Betrieb empfehlen sich folgende Maßnahmen:
- SSH-Collection aktuell halten.
- Firewall-Bouncer verwenden.
- SSH-Schlüssel bevorzugen.
- Root-Login deaktivieren.
- Starke Passwörter verwenden.
- Nur notwendige Benutzer zulassen.
- OpenSSH regelmäßig aktualisieren.
- CrowdSec Hub regelmäßig aktualisieren.
- Alerts regelmäßig kontrollieren.
Typische Fehler
Keine Alerts
Kontrollieren:
sudo cscli metrics
Werden SSH-Ereignisse verarbeitet?
Collection fehlt
sudo cscli collections list
Keine SSH-Logs
sudo journalctl -u ssh
CrowdSec läuft nicht
sudo systemctl status crowdsec
Mit der SSH-Collection bietet CrowdSec einen wirkungsvollen Schutz vor den häufigsten Angriffen auf Linux-Server. Die integrierten Parser und Szenarien erkennen klassische Brute-Force-Angriffe ebenso zuverlässig wie Passwortspraying und Aktivitäten verteilter Botnetze. In Kombination mit einem Firewall-Bouncer können verdächtige IP-Adressen automatisch blockiert werden, bevor sie weiteren Schaden anrichten.
Für eine bestmögliche Absicherung sollte CrowdSec jedoch Teil eines ganzheitlichen Sicherheitskonzepts sein. Die Kombination aus SSH-Schlüsseln, deaktiviertem Root-Login, regelmäßigen Updates und automatischer Angriffserkennung bietet einen deutlich höheren Schutz als jede einzelne Maßnahme für sich.
Im nächsten Teil der Serie installieren wir den Firewall-Bouncer. Er setzt die von CrowdSec erstellten Decisions direkt in Firewall-Regeln um und sorgt dafür, dass erkannte Angreifer automatisch ausgesperrt werden.