Crowdsec Grundsätzliches: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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 modernes, quelloffenes Intrusion Prevention System (IPS), das auf dem Prinzip der kollaborativen Verteidigung basiert. Ziel ist es, Systeme vor unerwünschtem Zugriff und automatisierten Angriffen zu schützen, indem verdächtige Muster im Verhalten von Clients frühzeitig erkannt und entsprechende Gegenmaßnahmen eingeleitet werden.
 
 
= 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 = 
+
Im Zentrum von CrowdSec steht die Analyse von Logdateien verschiedenster Dienste. Hierbei kommen sogenannte Parser zum Einsatz, die strukturierte Informationen aus unstrukturierten Logzeilen extrahieren. Auf dieser Grundlage prüfen regelbasierte Szenarien, ob sicherheitsrelevante Ereignisse vorliegen. Ein Szenario ist dabei eine Beschreibung typischer Angriffsverläufe, wie z. B. Brute-Force-Versuche, verdächtige HTTP-Zugriffe oder Portscans. Werden solche Muster erkannt, kann CrowdSec automatisch eine Entscheidung treffen, beispielsweise eine IP-Adresse temporär oder dauerhaft blockieren.
== GPG-Schlüssel hinzufügen == 
 
* curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash 
 
  
== CrowdSec installieren == 
+
Diese Entscheidungen sind nicht nur lokal wirksam, sondern können anonymisiert an die CrowdSec-Community weitergegeben werden. So entsteht ein kollektiver Schutzschild, bei dem Angriffe, die an einem Ort erkannt werden, auch an anderen Standorten proaktiv abgewehrt werden können. Durch diese Community-getriebene Architektur profitieren auch kleinere Systeme von der Intelligenz der Gesamtheit.
* sudo apt install crowdsec crowdsec-firewall-bouncer -y
 
  
== Status prüfen == 
+
CrowdSec ist modular aufgebaut. Es besteht aus dem Agenten, der die Logdateien analysiert und Entscheidungen trifft, sowie optionalen Bouncern, die für die Durchsetzung der Entscheidungen zuständig sind. Ein Bouncer ist ein eigenständiges Modul, das Entscheidungen des Agents in konkrete Blockierungen umsetzt – beispielsweise durch Firewallregeln, Reverse-Proxy-Blockaden oder andere Integrationen.
* 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 == 
+
Die Architektur von CrowdSec ist so gestaltet, dass sie sich flexibel in unterschiedliche Umgebungen integrieren lässt. Ob Webserver, Mailserver, SSH-Zugang oder andere Dienste – überall dort, wo Logs entstehen, kann CrowdSec Angriffsversuche erkennen und entsprechende Maßnahmen ergreifen. Durch die Nutzung offener Standards und Schnittstellen lässt sich CrowdSec zudem gut mit bestehenden Monitoring- und Sicherheitssystemen verbinden.
<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 == 
+
CrowdSec verfolgt einen proaktiven Sicherheitsansatz: Anstatt nur auf erkannte Angriffe zu reagieren, geht es darum, Muster frühzeitig zu erkennen und durch koordinierte Verteidigung möglichst viele Systeme gleichzeitig zu schützen. Das macht CrowdSec besonders in Zeiten verteilter Angriffe und automatisierter Bedrohungen zu einem wichtigen Baustein für moderne IT-Sicherheitskonzepte.
* sudo systemctl restart crowdsec
 

Version vom 7. April 2025, 09:03 Uhr

CrowdSec - Open-Source Schutzsystem

CrowdSec ist ein modernes, quelloffenes Intrusion Prevention System (IPS), das auf dem Prinzip der kollaborativen Verteidigung basiert. Ziel ist es, Systeme vor unerwünschtem Zugriff und automatisierten Angriffen zu schützen, indem verdächtige Muster im Verhalten von Clients frühzeitig erkannt und entsprechende Gegenmaßnahmen eingeleitet werden.

Im Zentrum von CrowdSec steht die Analyse von Logdateien verschiedenster Dienste. Hierbei kommen sogenannte Parser zum Einsatz, die strukturierte Informationen aus unstrukturierten Logzeilen extrahieren. Auf dieser Grundlage prüfen regelbasierte Szenarien, ob sicherheitsrelevante Ereignisse vorliegen. Ein Szenario ist dabei eine Beschreibung typischer Angriffsverläufe, wie z. B. Brute-Force-Versuche, verdächtige HTTP-Zugriffe oder Portscans. Werden solche Muster erkannt, kann CrowdSec automatisch eine Entscheidung treffen, beispielsweise eine IP-Adresse temporär oder dauerhaft blockieren.

Diese Entscheidungen sind nicht nur lokal wirksam, sondern können anonymisiert an die CrowdSec-Community weitergegeben werden. So entsteht ein kollektiver Schutzschild, bei dem Angriffe, die an einem Ort erkannt werden, auch an anderen Standorten proaktiv abgewehrt werden können. Durch diese Community-getriebene Architektur profitieren auch kleinere Systeme von der Intelligenz der Gesamtheit.

CrowdSec ist modular aufgebaut. Es besteht aus dem Agenten, der die Logdateien analysiert und Entscheidungen trifft, sowie optionalen Bouncern, die für die Durchsetzung der Entscheidungen zuständig sind. Ein Bouncer ist ein eigenständiges Modul, das Entscheidungen des Agents in konkrete Blockierungen umsetzt – beispielsweise durch Firewallregeln, Reverse-Proxy-Blockaden oder andere Integrationen.

Die Architektur von CrowdSec ist so gestaltet, dass sie sich flexibel in unterschiedliche Umgebungen integrieren lässt. Ob Webserver, Mailserver, SSH-Zugang oder andere Dienste – überall dort, wo Logs entstehen, kann CrowdSec Angriffsversuche erkennen und entsprechende Maßnahmen ergreifen. Durch die Nutzung offener Standards und Schnittstellen lässt sich CrowdSec zudem gut mit bestehenden Monitoring- und Sicherheitssystemen verbinden.

CrowdSec verfolgt einen proaktiven Sicherheitsansatz: Anstatt nur auf erkannte Angriffe zu reagieren, geht es darum, Muster frühzeitig zu erkennen und durch koordinierte Verteidigung möglichst viele Systeme gleichzeitig zu schützen. Das macht CrowdSec besonders in Zeiten verteilter Angriffe und automatisierter Bedrohungen zu einem wichtigen Baustein für moderne IT-Sicherheitskonzepte.