Crowdsec SSH Bruteforce Beispiel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Installation des CrowdSec SSH-Bruteforce-Schutzes =
+
= CrowdSec SSH Brute-Force Erkennung =
 +
 
 +
== Voraussetzung ==
 +
; CrowdSec ist installiert und die Whitelist ist angepasst.
  
 
== Installation der SSH-Collection ==
 
== Installation der SSH-Collection ==
*'''sudo cscli collections install crowdsecurity/sshd'''
+
Installiert alle Parser und Szenarien für SSH-Brute-Force-Erkennung.
*'''sudo systemctl reload crowdsec'''
+
* cscli collections install crowdsecurity/sshd
 +
* systemctl reload crowdsec
  
 +
== Installation des nftables Bouncers ==
 +
Der Bouncer setzt erkannte Angriffe in nftables-Regeln um und blockt die Angreifer-IP.
 +
* apt install crowdsec-firewall-bouncer-nftables
  
== Installation und Aktivierung des iptables-Bouncers ==
+
== Bouncer neu starten und prüfen ==
*'''sudo cscli bouncers add crowdsec-firewall-bouncer-iptables'''
+
Nach der Installation wird der Bouncer gestartet und der Status geprüft.
*'''sudo systemctl reload crowdsec'''
+
* systemctl restart crowdsec-firewall-bouncer
 +
* systemctl status crowdsec-firewall-bouncer
  
== API-Key für den Bouncer in die Konfiguration eintragen ==
+
== Bouncer-Verbindung zu CrowdSec prüfen ==
Ersetze `<API-KEY>` durch den generierten Schlüssel.
+
Zeigt ob der Bouncer korrekt bei der Engine registriert ist.
*'''sudo vi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml'''
+
* cscli bouncers list
<pre>
 
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
 
</pre>
 
  
== Neustart des Bouncers ==
+
== Installierte SSH-Szenarien prüfen ==
*'''sudo systemctl restart crowdsec-firewall-bouncer'''
+
Filtert die Szenarienliste auf SSH-relevante Einträge.
*'''sudo systemctl status crowdsec-firewall-bouncer'''
+
* cscli scenarios list | grep ssh
==Ü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
 
*wget https://xinux.de/downloads/bad-passwords
 
;Hydra installieren
 
*apt install hydra -y
 
;Attacke
 
*hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://10.0.10.132 -V
 
  
== Überprüfung der erkannten SSH-Angriffe ==
+
== Angriff vom Attacker durchführen ==
*'''sudo cscli alerts list'''
 
<pre>
 
+----+-------------------+---------------------------+---------+----+-----------+-----------------------------------------+
 
| 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 |
 
+----+-------------------+---------------------------+---------+----+-----------+-----------------------------------------+
 
</pre>
 
  
== Anzeige der gebannten IP-Adressen ==
+
=== Passwortliste herunterladen ===
*'''sudo cscli decisions list'''
+
* wget https://xinux.de/downloads/bad-passwords
<pre>
 
╭───────┬──────────┬───────────────┬───────────────────────────┬────────┬─────────┬────┬────────┬────────────────────┬──────────╮
 
│  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
 
</pre>
 
  
== Live-Log der CrowdSec-Analyse anzeigen ==
+
=== Hydra installieren ===
*'''sudo journalctl -u crowdsec -f'''
+
* apt update
 +
* apt install hydra -y
  
== Überprüfung der installierten Parser, Szenarien und Bouncer ==
+
=== Angriff starten ===
*'''sudo cscli parsers list'''
+
Hydra führt einen SSH-Brute-Force-Angriff gegen das Ziel durch.
*'''sudo cscli scenarios list'''
+
* hydra -l christine -P bad-passwords ssh://10.88.2XX.11 -V
*'''sudo cscli bouncers list'''
 
  
== Test: Anzeige der letzten SSH-Fehlversuche ==
+
== Erkannte Angriffe anzeigen ==
*'''sudo journalctl -u ssh -g "Failed password" --no-pager | tail -n 20'''
+
Listet alle von CrowdSec erkannten und protokollierten Alerts auf.
 +
* cscli alerts list
  
== Optional: Hydra für SSH-Bruteforce-Simulation installieren ==
+
<pre>
*'''sudo apt install hydra -y'''
+
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
 +
| ID |        value        |          reason          | country | as | decisions |              created_at                |
 +
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
 +
| 3  | Ip:172.26.2XX.100    | crowdsecurity/ssh-slow-bf |        |    | ban:1    | 2025-03-08 10:07:24.268224992 +0000 UTC |
 +
| 2  | Ip:172.26.2XX.100    | crowdsecurity/ssh-bf      |        |    | ban:1    | 2025-03-08 10:07:24.268879637 +0000 UTC |
 +
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
 +
</pre>
  
== Simulieren eines SSH-Brute-Force-Angriffs mit Hydra ==
+
== Gebannte IP-Adressen anzeigen ==
*'''hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://127.0.0.1 -V'''
+
Zeigt alle aktiven Sperrentscheidungen der Engine an.
 +
* cscli decisions list
  
== Überprüfung, ob CrowdSec den Angriff erkannt hat ==
+
<pre>
*'''sudo cscli alerts list'''
+
╭───────┬──────────┬────────────────────┬───────────────────────────┬────────┬─────────┬────┬────────┬────────────────────┬──────────╮
 +
│  ID  │  Source  │    Scope:Value    │          Reason          │ Action │ Country │ AS │ Events │    expiration    │ Alert ID │
 +
├───────┼──────────┼────────────────────┼───────────────────────────┼────────┼─────────┼────┼────────┼────────────────────┼──────────┤
 +
│ 15002 │ crowdsec │ Ip:172.26.2XX.100  │ crowdsecurity/ssh-slow-bf │ ban    │        │    │ 13    │ 3h58m41.750831936s │ 3        │
 +
╰───────┴──────────┴────────────────────┴───────────────────────────┴────────┴─────────┴────┴────────┴────────────────────┴──────────╯
 +
</pre>
  
== Überprüfung, ob die angreifende IP gesperrt wurde ==
+
== Ban aufheben ==
*'''sudo cscli decisions list'''
+
Entfernt den Ban für eine bestimmte IP-Adresse manuell.
 +
* cscli decisions delete --ip 172.26.2XX.100
  
== Eigene IP-Adresse entsperren (falls gebannt) ==
+
== Live-Log der CrowdSec-Analyse ==
*'''sudo cscli decisions delete -i <deine-IP>'''
+
Zeigt die laufende Analyse von CrowdSec in Echtzeit.
 +
* journalctl -u crowdsec -f
  
---
+
== Installierte Komponenten prüfen ==
 +
Gibt einen Überblick über alle aktiven Parser, Szenarien und Bouncer.
 +
* cscli parsers list
 +
* cscli scenarios list
 +
* cscli bouncers list
  
Jetzt kannst du **alles auf einmal kopieren** und hast den vollständigen Ablauf. **Passt das so?**
+
== Letzte SSH-Fehlversuche anzeigen ==
 +
Filtert das Systemjournal nach fehlgeschlagenen SSH-Anmeldeversuchen.
 +
* journalctl -u ssh -g "Failed password" --no-pager | tail -n 20

Aktuelle Version vom 24. Mai 2026, 09:01 Uhr

CrowdSec – SSH Brute-Force Erkennung

Voraussetzung

CrowdSec ist installiert und die Whitelist ist angepasst.

Installation der SSH-Collection

Installiert alle Parser und Szenarien für SSH-Brute-Force-Erkennung.

  • cscli collections install crowdsecurity/sshd
  • systemctl reload crowdsec

Installation des nftables Bouncers

Der Bouncer setzt erkannte Angriffe in nftables-Regeln um und blockt die Angreifer-IP.

  • apt install crowdsec-firewall-bouncer-nftables

Bouncer neu starten und prüfen

Nach der Installation wird der Bouncer gestartet und der Status geprüft.

  • systemctl restart crowdsec-firewall-bouncer
  • systemctl status crowdsec-firewall-bouncer

Bouncer-Verbindung zu CrowdSec prüfen

Zeigt ob der Bouncer korrekt bei der Engine registriert ist.

  • cscli bouncers list

Installierte SSH-Szenarien prüfen

Filtert die Szenarienliste auf SSH-relevante Einträge.

  • cscli scenarios list | grep ssh

Angriff vom Attacker durchführen

Passwortliste herunterladen

Hydra installieren

  • apt update
  • apt install hydra -y

Angriff starten

Hydra führt einen SSH-Brute-Force-Angriff gegen das Ziel durch.

Erkannte Angriffe anzeigen

Listet alle von CrowdSec erkannten und protokollierten Alerts auf.

  • cscli alerts list
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
| ID |        value         |          reason           | country | as | decisions |               created_at                |
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
| 3  | Ip:172.26.2XX.100    | crowdsecurity/ssh-slow-bf |         |    | ban:1     | 2025-03-08 10:07:24.268224992 +0000 UTC |
| 2  | Ip:172.26.2XX.100    | crowdsecurity/ssh-bf      |         |    | ban:1     | 2025-03-08 10:07:24.268879637 +0000 UTC |
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+

Gebannte IP-Adressen anzeigen

Zeigt alle aktiven Sperrentscheidungen der Engine an.

  • cscli decisions list
╭───────┬──────────┬────────────────────┬───────────────────────────┬────────┬─────────┬────┬────────┬────────────────────┬──────────╮
│  ID   │  Source  │    Scope:Value     │          Reason           │ Action │ Country │ AS │ Events │     expiration     │ Alert ID │
├───────┼──────────┼────────────────────┼───────────────────────────┼────────┼─────────┼────┼────────┼────────────────────┼──────────┤
│ 15002 │ crowdsec │ Ip:172.26.2XX.100  │ crowdsecurity/ssh-slow-bf │ ban    │         │    │ 13     │ 3h58m41.750831936s │ 3        │
╰───────┴──────────┴────────────────────┴───────────────────────────┴────────┴─────────┴────┴────────┴────────────────────┴──────────╯

Ban aufheben

Entfernt den Ban für eine bestimmte IP-Adresse manuell.

  • cscli decisions delete --ip 172.26.2XX.100

Live-Log der CrowdSec-Analyse

Zeigt die laufende Analyse von CrowdSec in Echtzeit.

  • journalctl -u crowdsec -f

Installierte Komponenten prüfen

Gibt einen Überblick über alle aktiven Parser, Szenarien und Bouncer.

  • cscli parsers list
  • cscli scenarios list
  • cscli bouncers list

Letzte SSH-Fehlversuche anzeigen

Filtert das Systemjournal nach fehlgeschlagenen SSH-Anmeldeversuchen.

  • journalctl -u ssh -g "Failed password" --no-pager | tail -n 20