Crowdsec Grundsätzliches: Unterschied zwischen den Versionen
| Zeile 53: | Zeile 53: | ||
== CrowdSec installieren == | == CrowdSec installieren == | ||
| − | * sudo apt install crowdsec -y | + | * sudo apt install crowdsec crowdsec-firewall-bouncer -y |
== Status prüfen == | == Status prüfen == | ||
Version vom 8. März 2025, 08:59 Uhr
CrowdSec - Open-Source Schutzsystem
CrowdSec ist ein Open-Source Intrusion-Prevention-System (IPS), das auf Community-Intelligenz basiert. Es analysiert Logdateien, erkennt verdächtige Aktivitäten und kann automatisiert auf Angriffe reagieren. Dabei teilt es erkannte Bedrohungen mit der globalen CrowdSec-Community, um kollektiv Angreifer zu blockieren.
Funktionsweise
CrowdSec analysiert verschiedene Logdateien von Servern und Anwendungen mithilfe von sogenannten "Parsers". Angriffsversuche werden anhand von vordefinierten "Scenarios" erkannt, und basierend darauf kann CrowdSec eine Entscheidung treffen ("Decision"), um beispielsweise eine IP-Adresse temporär oder dauerhaft zu sperren.
Grundlagen von CrowdSec
CrowdSec ist ein Open-Source Intrusion Prevention System (IPS), das Log-Dateien analysiert, Angriffe erkennt und automatisch blockiert. Es basiert auf einer Kombination aus **Szenarien**, **Alerts**, **Decisions** und **Bouncern**, um verdächtige Aktivitäten zu erkennen und darauf zu reagieren.
Szenario
Ein **Szenario** ist eine definierte Regel, die CrowdSec nutzt, um verdächtiges Verhalten zu erkennen. Jedes Szenario beschreibt eine spezifische Angriffsmethode oder ein auffälliges Muster in den Logs.
Bestandteile eines Szenarios
- Ereignisquelle – Welche Logs durchsucht werden (z. B. `/var/log/auth.log` für SSH)
- Muster – Welche Art von Verhalten als Angriff gilt (z. B. wiederholte Login-Fehlversuche)
- Schwellenwert – Ab wie vielen Vorkommnissen innerhalb eines bestimmten Zeitraums eine Reaktion erfolgt
- Maßnahmen – Was passiert, wenn das Szenario greift (z. B. eine IP-Adresse für 10 Minuten blockieren)
Beispiel für ein SSH-Brute-Force-Szenario
Das Szenario `crowdsecurity/ssh-bf` erkennt, wenn ein Client mehrfach in kurzer Zeit versucht, sich per SSH mit falschen Anmeldeinformationen anzumelden. Wird eine bestimmte Schwelle überschritten (z. B. 5 Fehlversuche in 10 Sekunden), wird ein **Alert** ausgelöst und der Angreifer blockiert.
Überprüfung der aktiven Szenarien:
- sudo cscli scenarios list
Filtern nach SSH-Szenarien:
- sudo cscli scenarios list | grep ssh
Alert
Ein **Alert** ist eine Warnung, die CrowdSec erstellt, wenn ein Szenario ausgelöst wird. Alerts enthalten Informationen über die Quelle des Angriffs (z. B. IP-Adresse) und das erkannte Verhalten.
Anzeigen der aktuellen Alerts:
- sudo cscli alerts list
Decision
Eine **Decision** ist die Maßnahme, die CrowdSec basierend auf einem Alert trifft. Eine typische Decision ist das Sperren einer IP-Adresse.
Überprüfung der aktuellen Sperren:
- sudo cscli decisions list
Löschen einer Sperre für eine bestimmte IP-Adresse:
- sudo cscli decisions delete -i <IP-Adresse>
Bouncer
Ein **Bouncer** setzt die von CrowdSec getroffenen Entscheidungen in die Tat um. Er kann verschiedene Mechanismen wie `iptables`, `nftables`, `nginx` oder `cloudflare` nutzen, um Angreifer zu blockieren.
Verfügbare Bouncer anzeigen:
- sudo cscli bouncers list
Installation von CrowdSec aus den Originalquellen
GPG-Schlüssel hinzufügen
- curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
CrowdSec installieren
- sudo apt install crowdsec crowdsec-firewall-bouncer -y
Status prüfen
- sudo systemctl status crowdsec
Whitelisten für das Labor anpassen
Datei bearbeiten
- sudo vi /etc/crowdsec/parsers/s02-enrich/whitelists.yaml
Folgende Einträge auskommentieren oder entfernen
whitelist:
reason: "private ipv4/ipv6 ip/ranges"
ip:
- "127.0.0.1"
- "::1"
cidr:
- "192.168.0.0/16"
- "10.0.0.0/8"
- "172.16.0.0/12"
CrowdSec neu starten
- sudo systemctl restart crowdsec