Crowdsec Grundsätzliches: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= CrowdSec - Open-Source Schutzsystem =
 
= 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.
+
CrowdSec ist ein quelloffenes Intrusion Prevention System (IPS), das moderne Erkennungsmethoden mit einer gemeinschaftlichen Verteidigungsstrategie kombiniert. Es eignet sich für Server, Dienste und Anwendungen aller Art, die Angriffen ausgesetzt sein können.
  
= Funktionsweise =
+
== Zielsetzung von CrowdSec ==
  
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.
+
*'''Schutz vor automatisierten Angriffen''' – CrowdSec erkennt typische Angriffsarten wie Brute-Force, Port-Scanning oder auffällige HTTP-Zugriffe.
 +
*'''Analyse von Logdateien''' – Die Grundlage der Erkennung sind Logdaten verschiedenster Systeme und Anwendungen.
 +
*'''Automatisierte Reaktion''' – Bei Erkennung eines Angriffs kann eine automatisierte Blockierung eingeleitet werden.
 +
*'''Kollaborative Verteidigung''' – Erkannte Bedrohungen können anonymisiert an die CrowdSec-Community gemeldet werden.
 +
*'''Skalierbarkeit''' – Sowohl kleine als auch große Umgebungen können von CrowdSec profitieren.
  
= Grundlagen von CrowdSec =
+
== Architektur und Aufbau ==
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 ==
+
*'''CrowdSec-Agent''' – Dieser analysiert Logdateien mithilfe von Parsern und erkennt sicherheitsrelevante Muster.
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.
+
*'''Parser''' – Parser wandeln rohe Logzeilen in strukturierte Daten um, um sie analysierbar zu machen.
 +
*'''Szenarien''' – Regeln beschreiben, welches Verhalten als verdächtig oder gefährlich gilt.
 +
*'''Entscheidungen (Decisions)''' – Sobald ein Szenario greift, wird eine Entscheidung über das weitere Vorgehen getroffen.
 +
*'''Bouncer''' – Externe Module setzen Entscheidungen technisch um, z. B. durch das Blockieren von IP-Adressen auf der Firewall oder im Webserver.
  
=== Bestandteile eines Szenarios ===
+
== Arbeitsweise ==
* '''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 ===
+
*'''Beobachtung''' – Der Agent liest kontinuierlich Logs aus definierten Quellen ein.
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.
+
*'''Bewertung''' – Anhand definierter Szenarien wird geprüft, ob ein Verhalten auffällig ist.
 +
*'''Aktion''' – Bei Bedarf wird eine Reaktion ausgelöst, z. B. eine IP-Sperre.
 +
*'''Rückmeldung''' – Optional wird eine anonymisierte Information zur beobachteten Aktivität an die zentrale CrowdSec-API gesendet.
 +
*'''Verbundschutz''' – Durch das Teilen von Informationen entsteht ein globaler Schutzmechanismus, von dem alle Teilnehmer profitieren.
  
Überprüfung der aktiven Szenarien:
+
== Vorteile von CrowdSec ==
*'''sudo cscli scenarios list'''
 
Filtern nach SSH-Szenarien:
 
*'''sudo cscli scenarios list | grep ssh'''
 
  
== Alert ==
+
*'''Open-Source und transparent''' – Der Quellcode ist offen und nachvollziehbar.
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.
+
*'''Anpassbar''' – Eigene Parser und Szenarien können leicht erstellt oder angepasst werden.
 
+
*'''Community-getrieben''' – Die Qualität der Erkennung steigt durch die Teilnahme vieler Nutzer.
Anzeigen der aktuellen Alerts:
+
*'''Modular''' – Durch den Einsatz verschiedener Bouncer ist die Integration flexibel.
*'''sudo cscli alerts list'''
+
*'''Zukunftssicher''' CrowdSec unterstützt moderne Sicherheitsarchitekturen und ist aktiv in Entwicklung.
 
 
== 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 == 
 
<pre>
 
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"
 
</pre>
 
 
 
== CrowdSec neu starten == 
 
* sudo systemctl restart crowdsec
 

Aktuelle Version vom 7. April 2025, 09:05 Uhr

CrowdSec - Open-Source Schutzsystem

CrowdSec ist ein quelloffenes Intrusion Prevention System (IPS), das moderne Erkennungsmethoden mit einer gemeinschaftlichen Verteidigungsstrategie kombiniert. Es eignet sich für Server, Dienste und Anwendungen aller Art, die Angriffen ausgesetzt sein können.

Zielsetzung von CrowdSec

  • Schutz vor automatisierten Angriffen – CrowdSec erkennt typische Angriffsarten wie Brute-Force, Port-Scanning oder auffällige HTTP-Zugriffe.
  • Analyse von Logdateien – Die Grundlage der Erkennung sind Logdaten verschiedenster Systeme und Anwendungen.
  • Automatisierte Reaktion – Bei Erkennung eines Angriffs kann eine automatisierte Blockierung eingeleitet werden.
  • Kollaborative Verteidigung – Erkannte Bedrohungen können anonymisiert an die CrowdSec-Community gemeldet werden.
  • Skalierbarkeit – Sowohl kleine als auch große Umgebungen können von CrowdSec profitieren.

Architektur und Aufbau

  • CrowdSec-Agent – Dieser analysiert Logdateien mithilfe von Parsern und erkennt sicherheitsrelevante Muster.
  • Parser – Parser wandeln rohe Logzeilen in strukturierte Daten um, um sie analysierbar zu machen.
  • Szenarien – Regeln beschreiben, welches Verhalten als verdächtig oder gefährlich gilt.
  • Entscheidungen (Decisions) – Sobald ein Szenario greift, wird eine Entscheidung über das weitere Vorgehen getroffen.
  • Bouncer – Externe Module setzen Entscheidungen technisch um, z. B. durch das Blockieren von IP-Adressen auf der Firewall oder im Webserver.

Arbeitsweise

  • Beobachtung – Der Agent liest kontinuierlich Logs aus definierten Quellen ein.
  • Bewertung – Anhand definierter Szenarien wird geprüft, ob ein Verhalten auffällig ist.
  • Aktion – Bei Bedarf wird eine Reaktion ausgelöst, z. B. eine IP-Sperre.
  • Rückmeldung – Optional wird eine anonymisierte Information zur beobachteten Aktivität an die zentrale CrowdSec-API gesendet.
  • Verbundschutz – Durch das Teilen von Informationen entsteht ein globaler Schutzmechanismus, von dem alle Teilnehmer profitieren.

Vorteile von CrowdSec

  • Open-Source und transparent – Der Quellcode ist offen und nachvollziehbar.
  • Anpassbar – Eigene Parser und Szenarien können leicht erstellt oder angepasst werden.
  • Community-getrieben – Die Qualität der Erkennung steigt durch die Teilnahme vieler Nutzer.
  • Modular – Durch den Einsatz verschiedener Bouncer ist die Integration flexibel.
  • Zukunftssicher – CrowdSec unterstützt moderne Sicherheitsarchitekturen und ist aktiv in Entwicklung.