Crowdsec Grundsätzliches
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 zu CrowdSec
CrowdSec besteht aus mehreren Komponenten, die zusammenarbeiten, um Angriffe zu erkennen und abzuwehren.
Was ist ein Bouncer?
Ein Bouncer ist eine Komponente, die erkannte bösartige IPs aktiv blockiert. Er setzt die Entscheidungen (Decisions) in der Firewall, im Reverse Proxy oder in anderen Systemen um. Bouncer gibt es für verschiedene Technologien, z. B.:
- iptables/nftables (Firewall-Bouncer)
- Nginx/Apache (Webserver-Bouncer)
- Cloudflare, Traefik, HAProxy usw.
Was ist ein Alert?
Ein Alert wird erzeugt, wenn eine verdächtige Aktivität erkannt wird. Er enthält Informationen wie:
- Die erkannte Bedrohung (z. B. Brute-Force-Angriff auf SSH)
- Die betroffene IP-Adresse
- Den Zeitpunkt des Angriffs
Alerts führen nicht automatisch zu einer Blockierung, sondern geben an, dass ein Angriff identifiziert wurde.
Was ist eine Decision?
Eine Decision ist eine Entscheidung, die CrowdSec trifft, um eine erkannte Bedrohung zu blockieren. Sie kann beinhalten:
- Eine IP-Adresse für eine bestimmte Zeit zu bannen
- Eine IP global (z. B. über CAPI) zu blockieren
- Nur bestimmte Dienste zu sperren
Decisions werden von den Bouncern umgesetzt, z. B. durch das Hinzufügen der IP zu einer Firewall-Regel oder einer Sperrliste im Webserver.
Wie arbeiten diese Komponenten zusammen?
1. Der CrowdSec Agent analysiert die Logs von verschiedenen Diensten. 2. Wenn eine verdächtige Aktivität erkannt wird, erzeugt er einen Alert. 3. Falls die erkannte Aktivität eine bestimmte Schwelle überschreitet (z. B. mehrere fehlgeschlagene Login-Versuche in kurzer Zeit), erzeugt CrowdSec eine Decision. 4. Der Bouncer setzt diese Decision um, z. B. indem er die angreifende IP blockiert.
Status der aktuellen Entscheidungen prüfen
- sudo cscli decisions 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 -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