Crowdsec Grundsätzliches: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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

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