Crowdsec SSH Bruteforce Beispiel
Version vom 8. März 2025, 10:11 Uhr von Thomas.will (Diskussion | Beiträge) (→Überprüfung, ob der Bouncer Entscheidungen umsetzt)
Installation des CrowdSec SSH-Bruteforce-Schutzes
Installation der SSH-Collection
- sudo cscli collections install crowdsecurity/sshd
- sudo systemctl reload crowdsec
Installation und Aktivierung des iptables-Bouncers
- sudo cscli bouncers add crowdsec-firewall-bouncer-iptables
- sudo systemctl reload crowdsec
API-Key für den Bouncer in die Konfiguration eintragen
Ersetze `<API-KEY>` durch den generierten Schlüssel.
- sudo vi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
mode: nftables daemonize: true pid_dir: /var/run/ update_frequency: 10s api_url: http://127.0.0.1:8080/ api_key: "<API-KEY>" nftables: ipv4: true ipv6: false
Neustart des Bouncers
- sudo systemctl restart crowdsec-firewall-bouncer
- sudo systemctl status crowdsec-firewall-bouncer
Überprüfen, ob der Bouncer mit CrowdSec verbunden ist
- sudo cscli bouncers list
Überprüfung der installierten SSH-Szenarien
Bevor wir einen Angriff simulieren, stellen wir sicher, dass CrowdSec überhaupt SSH-Angriffe erkennt.
- sudo cscli scenarios list | grep ssh
Auf dem Attacker starten wir nun einen Angriff
- Passwortliste besorgen
- Hydra installieren
- apt install hydra -y
- Attacke
- hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://10.0.10.132 -V
Überprüfung, ob der Bouncer Entscheidungen umsetzt
- sudo cscli decisions list
╭───────┬──────────┬───────────────┬───────────────────────────┬────────┬─────────┬────┬────────┬────────────────────┬──────────╮ │ ID │ Source │ Scope:Value │ Reason │ Action │ Country │ AS │ Events │ expiration │ Alert ID │ ├───────┼──────────┼───────────────┼───────────────────────────┼────────┼─────────┼────┼────────┼────────────────────┼──────────┤ │ 15002 │ crowdsec │ Ip:10.0.10.99 │ crowdsecurity/ssh-slow-bf │ ban │ │ │ 13 │ 3h58m41.750831936s │ 3 │ ╰───────┴──────────┴───────────────┴───────────────────────────┴────────┴─────────┴────┴────────┴────────────────────┴──────────╯ 1 duplicated entries skipped
=Alerts
- sudo cscli alerts list | tail -n 10
+----+-------------------+---------------------------+---------+----+-----------+-----------------------------------------+ | ID | value | reason | country | as | decisions | created_at | +----+-------------------+---------------------------+---------+----+-----------+-----------------------------------------+ | 3 | Ip:10.0.10.99 | crowdsecurity/ssh-slow-bf | | | ban:1 | 2025-03-08 10:07:24.268224992 +0000 UTC | | 2 | Ip:10.0.10.99 | crowdsecurity/ssh-bf | | | ban:1 | 2025-03-08 10:07:24.268879637 +0000 UTC | +----+-------------------+---------------------------+---------+----+-----------+-----------------------------------------+
Überprüfung der erkannten SSH-Angriffe
- sudo cscli alerts list
Anzeige der gebannten IP-Adressen
- sudo cscli decisions list
Detailansicht einer spezifischen IP-Adresse
- sudo cscli decisions inspect <IP-Adresse>
Live-Log der CrowdSec-Analyse anzeigen
- sudo journalctl -u crowdsec -f
Überprüfung der installierten Parser, Szenarien und Bouncer
- sudo cscli parsers list
- sudo cscli scenarios list
- sudo cscli bouncers list
Test: Anzeige der letzten SSH-Fehlversuche
- sudo journalctl -u ssh -g "Failed password" --no-pager | tail -n 20
Optional: Hydra für SSH-Bruteforce-Simulation installieren
- sudo apt install hydra -y
Simulieren eines SSH-Brute-Force-Angriffs mit Hydra
- hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://127.0.0.1 -V
Überprüfung, ob CrowdSec den Angriff erkannt hat
- sudo cscli alerts list
Überprüfung, ob die angreifende IP gesperrt wurde
- sudo cscli decisions list
Eigene IP-Adresse entsperren (falls gebannt)
- sudo cscli decisions delete -i <deine-IP>
---
Jetzt kannst du **alles auf einmal kopieren** und hast den vollständigen Ablauf. **Passt das so?**