Crowdsec: Ihre Server sichern – Installation und Konfiguration

In diesem Tutorial werde ich Ihnen erklären, wie Sie den Netzwerkbereich Ihrer Webserver mit Crowdsec absichern können.

Das Tutorial wurde unter Ubuntu 20.04 erstellt

Vorstellung von Crowdsec

Crowdsec ist ein Open-Source-Tool, mit dem Sie Ihre Server (Linuxbald auch Windows) „sichern“ oder vielmehr um eine zusätzliche Sicherheitsebene erweitern können, indem es Netzwerkangriffe (Port-Scans, SSH-Brute-Force-Angriffe, Web-Content-Scans …) erkennt und IP-Adressen zu sperren.

Wenn Sie fail2ban kennen: Crowdsec macht dasselbe, nur besser:

  • Es verbraucht sehr wenig Ressourcen
  • Gemeinsame Nutzung von IP-Adressen über eine Datenbank, die von allen Crowdsec-Nutzern gemeinsam genutzt wird
  • Einfach zu bedienen

Um den Austausch von Konfigurationen zwischen den Nutzern zu erleichtern, gibt es einen Hub (eine Art Marktplatz), auf dem Sie Konfigurationen zur Absicherung Ihres Servers finden.

Voraussetzungen für die Nutzung von Crowdsec

Eine der Voraussetzungen für die Nutzung von Crowdsec ist eine aktive Firewall (IPTABLE) auf Ihrem Server.

Wenn keine Firewall vorhanden ist, kann Crowdsec keine Regel zum Blockieren des Datenverkehrs hinzufügen.

Bevor Sie Ihre Firewall aktivieren, müssen Sie sicherstellen, dass eingehender Datenverkehr auf den Ports 80, 443 und 22 zugelassen ist.

Überprüfen Sie zunächst mit dem folgenden Befehl, ob die Firewall aktiv ist:

sudo ufw status

Ist diese deaktiviert, fügen wir zunächst die grundlegenden Regeln für eingehenden Datenverkehr hinzu: 22, 80 und 443:

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443

Für jede Regel (jeden Befehl) wird eine Bestätigungsmeldung angezeigt, die angibt, dass die Regel hinzugefügt wurde.

Nachdem die Regeln nun erstellt sind, aktivieren Sie ufw:

sudo ufw enable

Der Befehl fordert eine Bestätigung an

Nachdem ufw nun aktiviert ist, geben Sie den folgenden Befehl ein, um den Status und die Liste der Regeln anzuzeigen:

sudo ufw status verbose
UFW rules

Eine letzte Maßnahme vor der Installation von Crowdsec ist die Aktivierung der Firewall-Protokolle, da diese zur Erkennung von Angriffen analysiert werden.

Geben Sie den folgenden Befehl ein, um die Protokolle zu aktivieren:

sudo ufw logging on

Der Befehl gibt Folgendes zurück: Logging enabled.

Die Protokolle werden in der Datei gespeichert/var/log/syslog.

Um sicherzustellen, dass die Protokolle ordnungsgemäß gespeichert werden, kann man von einem anderen Server aus eine Telnet-Verbindung zu einem nicht geöffneten Port herstellen:

telnet ip 514
Check firewall / iptables log

Unser Server ist bereit, wir fahren nun mit der Installation von Crowdsec fort.

Crowdsec-Installation

Die Installation von Crowdsec ist sehr einfach. Während der Installation erkennt das Programm die verschiedenen Komponenten (Nginx, Apache2, MySQL …), die es überwachen kann, und konfiguriert sich „automatisch“.

1. Fügen Sie das Repository mithilfe des folgenden Skripts zu Ihrem Server hinzu:

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash

2. Aktualisieren Sie die Paketliste:

sudo apt update

3. Installieren Sie Crowdsec:

sudo apt install crowdsec

Auf dem folgenden Screenshot ist der Installationsvorgang zu sehen, bei dem die automatische Erkennung, Installation und Konfiguration für sshd und nginx erfolgt.

Crowdsec install

Crowdsec ist nun installiert und „betriebsbereit“.

Bevor wir zur Konfiguration und Installation eines Bouncers übergehen, zeige ich Ihnen, wie Sie mit dem cscli-Client arbeiten.

Verwendung des cscli-Clients – Crowdsec

Für Crowdsec steht ein Befehlszeilen-Client zur Verfügung, mit dem Sie das System konfigurieren und überwachen können.

Um die Liste der verfügbaren Befehle anzuzeigen, verwenden Sie den Befehl:

cscli
cscli

Mit dem Befehl „metric“ lassen sich verschiedene Statistiken zum Crowdsec-Dienst anzeigen:

cscli metrics
cscli

Wie auf dem Screenshot zu sehen ist, werden die verwendeten Quelldateien und deren Statistiken sowie die verschiedenen verwendeten Parser angezeigt, mit denen erkannt werden kann

Um die Protokolle anzuzeigen, die mit einer Regel übereinstimmen:

cscli alerts list
cscli alerts list

Um Details zu einem Alarm anzuzeigen:

cscli alerts inspect ID

Um die Liste der Sperrungen anzuzeigen:

cscli decisions list

Derzeit ist noch kein Bouncer installiert. Wenn Sie den Befehl jetzt ausführen, erhalten Sie folgende Meldung: No active decisions.

Sobald wir einen Bouncer installiert haben, werde ich Ihnen erklären, wie Sie eine IP-Adresse manuell sperren und wie Sie die Sperre wieder aufheben können.

Liste der Parser anzeigen:

cscli parsers list

Zur Erinnerung: Parser sind die Konfigurationen, die das Lesen und Interpretieren der Protokolle ermöglichen.

Liste der Szenarien anzeigen:

cscli scenarios list

Zur Erinnerung: Szenarien sind die Konfigurationen, die bestimmte Verhaltensweisen erkennen und die zu ergreifenden Maßnahmen festlegen.

Ein weiteres Element, das vorhanden sein kann, sind die Postoverflows

cscli postoverflows list

Postoverflows sind Konfigurationsdateien, die Whitelists enthalten, um Blockierungen bestimmter Dienste wie CloudFlare, Indexierungs-Bots usw. zu vermeiden.

Einen Bouncer installieren

Nun sehen wir uns an, wie man einen Bouncer installiert, mit dem wir Angriffe blockieren können.

Die Liste der Bouncer ist auf dem Crowdsec-Hub verfügbar. Es stehen mehrere Blocker zur Verfügung, die Sie einsetzen können:

  • Firewall / iptables, mit der Sie eine Sperre über die Server-Firewall einrichten können
  • WordPress, das mithilfe eines Plugins den Zugriff auf die Website verhindert
  • Nginx
  • Cloudflare

In diesem Tutorial werde ich Ihnen erklären, wie Sie den Bouncer „cs-firewall-bouncer“ einrichten.

Automatische Installation aus dem Repository

Es ist nun möglich, bestimmte im Repository verfügbare Bouncer automatisch zu installieren, was insbesondere für den Bouncer „cs-firewall-bouncer-iptables“ gilt.

Geben Sie den folgenden Befehl ein, um den Bouncer zu installieren:

sudo apt install crowdsec-firewall-bouncer-iptables

Manuelle Installation von iptables-Firewall-Bouncern

Rufen Sie die entsprechende Seite im Crowdsec-Hub oder auf GitHub auf:

Die folgenden Anweisungen gelten zum Zeitpunkt der Erstellung dieses Tutorials; der Bouncer kann sich inzwischen weiterentwickelt haben.

1. Laden Sie den Quellcode herunter:

wget https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.12/cs-firewall-bouncer.tgz

2. Das Archiv entpacken:

tar xzvf cs-firewall-bouncer.tgz

3. Wechseln Sie in den entpackten Ordner (je nach Version des Archivs anpassen):

cd cs-firewall-bouncer-vX.Y.ZZ/

4. Das Installationsskript ausführen:

sudo ./install.sh

Während der Installation werden Sie aufgefordert, diesen zu installieren ipset, falls er noch nicht vorhanden ist.

Die Konfiguration des Bouncers befindet sich in der Datei: /etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml.

Öffnen Sie die Datei und überprüfen Sie, ob sie im iptables-Modus ist:

cat /etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml

Verwenden Sie den folgenden Befehl, um den Bouncer anzuzeigen:

sudo cscli bouncers list

Überprüfen Sie den Status des Bouncers:

sudo systemctl status cs-firewall-bouncer

Ab sofort werden Angriffe Linuxje nach Szenario von der Firewall blockiert.

Eine Komponente mit cscli und dem Hub installieren

In diesem Abschnitt werde ich Ihnen erklären, wie Sie eine Komponente des Hubs mithilfe des Clients (cscli) installieren.

Da ich Crowdsec auf einem Webserver installiert habe, werden wir nun die Whitelist für Crawler einrichten.

Auf der Konfigurationsseite des CrowdSec-Hubs finden Sie die auszuführende Befehlszeile.

sudo cscli postoverflows install crowdsecurity/seo-bots-whitelist

Wenn Sie nicht das Root-Konto verwenden, müssen Sie „sudo“ voranstellen

Laden Sie die Konfiguration neu, damit die Änderungen übernommen werden:

sudo systemctl reload crowdsec

Sie wissen nun, wie Sie eine Konfiguration mit dem Client installieren.

Es gibt weitere Befehle, mit denen Sie die Konfiguration aktualisieren oder deinstallieren können.

Aktualisierung:

cscli hub update

Deinstallation:

cscli {composant} remove {nom_du/composant}

Entscheidungen bearbeiten

Es ist möglich, Entscheidungen manuell zu beeinflussen, um eine IP-Adresse zu sperren oder die Sperre aufzuheben.

Eine IP-Adresse sperren:

sudo cscli decisions add --ip 172.69.32.87

Die IP-Adresse 172.69.32.87 wird für einen Zeitraum von 4 Stunden gesperrt.

Eine IP-Adresse für 24 Stunden sperren:

sudo cscli decisions add --ip 172.69.32.87 --duration 24h

Einen IP-Adressbereich sperren:

sudo cscli decesions add --range 172.69.0.0/16

Um eine Sperre aufzuheben, muss „add“ durch „delete“ ersetzt werden:

sudo cscli decisions delete --ip 172.69.32.87
sudo cscli decesions delete --range 172.69.0.0/16

Zusammenfassung

Mit diesem Tutorial verfügen Sie nun über alle notwendigen Informationen, um Crowdsec zu installieren, zu konfigurieren und zu verwalten, um Ihren Server zu sichernLinux.

Seit ich diese Software entdeckt habe, installiere ich sie persönlich anstelle von fail2ban, da mir der Community-Charakter und die einfache Bedienung sehr gut gefallen.

Weitere Tutorials zu Crowdsec werden folgen, in denen ich Ihnen erkläre, wie Sie Dateiquellen hinzufügen und ein Szenario erstellen können.

Abschließend sei noch erwähnt, dass es ein auf einem Image basierendes Dashboard gibt undDocker dass es möglich ist, eine MySQL-/PostgreSQL-Datenbank zu verwenden, um Entscheidungen zwischen mehreren Ihrer Server zu bündeln.

Romain Drouche
Romain Drouche
Systemarchitekt | MCSE: Kerninfrastruktur
IT-Infrastrukturexperte mit über 15 Jahren Berufserfahrung. Aktuell tätig als Projektmanager für Systeme und Netzwerke sowie als Experte für Informationssystemsicherheit (ISS), nutze ich mein Fachwissen, um die Zuverlässigkeit und Sicherheit technologischer Umgebungen zu gewährleisten.

Schreibe einen Kommentar