Zum Hauptinhalt springen

Wie installiert und konfiguriert man CrowdSec auf OPNsense?

Veröffentlicht am:
.
7 min read
.
Für die Englische Version

CrowdSec ist ein leichtgewichtiges, Open-Source-Programm, das Personen mit gewalttätigen Tendenzen identifiziert und daran hindert, auf Ihre Systeme zuzugreifen. Das Design des Systems ist benutzerfreundlich und bietet einfachen Zugang, während es gleichzeitig starke Sicherheitsmaßnahmen bietet. Durch die Nutzung des CrowdSec-Plugins auf Ihrer OPNsense-Firewall können Sie die folgenden Aufgaben ausführen:

  • Implementieren Sie LAPI auf dem OPNsense-Server für zusätzliche Agenten und Bouncers.
  • Scannen Sie die Protokolle eines auf OPNsense eingesetzten Agents auf Angriffe
  • Verhindern, dass Eindringlinge das gesamte Netzwerk mit einem einzigen Firewall-Bouncer erreichen
  • Zählen Sie die Hub-Module (Parser, Szenarien usw.) und Entscheidungen in der OPNsense-Weboberfläche auf.

Das CrowdSec-Plugin erleichtert die Installation eines CrowdSec-Agenten/LAPI-Knotens und eines Firewall-Bouncers. Durch die Aktivierung auf der Seite "Einstellungen" ist der OPNsense-Server sofort geschützt. Dies geschieht durch den Empfang einer großen Anzahl von IP-Adressen, die zu aktiven Angreifern gehören, die umgehend auf Firewall-Ebene blockiert werden. Darüber hinaus werden die Protokolle des SSH-Dienstes und der OPNsense-Administratorschnittstelle überprüft, um potenzielle Fälle von Brute-Force-Angriffen zu erkennen. Wenn eine solche Situation eintritt, führt dies zu einem sofortigen Bann und wird an die CrowdSec Central API gesendet, einschließlich Datum, Szenario und IP-Adresse des Angreifers.

Zusätzliche Angriffsmuster können auf dem OPNsense-Server und seinen Plugins sowie auf jedem anderen Agenten, der mit demselben LAPI-Knoten verbunden ist, identifiziert werden. Alternative Methoden zur Behebung können verwendet werden, wie zum Beispiel die Implementierung eines Captcha-Tests, um Scraping-Versuche zu erkennen und zu verhindern.

In seiner grundlegendsten Konfiguration funktioniert das CrowdSec-Modul ausschließlich auf einem einzelnen Server und schützt nur die auf dem OPNsense-System gehosteten Dienste. Darüber hinaus schränkt es das Sperren bösartiger IP-Adressen ein, die von der CrowdSec-Community kuratiert werden. Dennoch kann CrowdSec mit mehreren Servern konfiguriert werden, sodass mehrere Agenten an einen einzigen lokalen API-Server berichten. Der lokale API-Server kann auf der OPNsense-Maschine ausgeführt werden; jedoch, wenn die Hardware-Ressourcen begrenzt sind und das Netzwerk ein erhebliches Volumen an Protokollen verarbeitet, könnte es möglich sein, die Belastung der OPNsense Firewall zu verringern, indem der lokale API-Server auf eine alternative Maschine übertragen wird.

In diesem Tutorial werden wir eine grundlegende CrowdSec-Installation auf einem einzelnen OPNsense-System durchführen, indem wir die folgenden Schritte befolgen:

  1. Installation des CrowdSec-Plugins
  2. Konfiguration von CrowdSec
  3. Hinzufügen von Firewall-Regeln
  4. Erstellen eines CrowdSec Console-Kontos (Optional)
  5. Hinzufügen privater Adressen zur Whitelist
  6. Hinzufügen zusätzlicher Blocklisten
  7. Testen von CrowdSec
Starten Sie noch heute kostenlos mit Zenarmor

Installation des CrowdSec-Plugins

Auf der OPNsense 22.1-Firewall können Sie das CrowdSec-Plugin ganz einfach installieren, indem Sie den folgenden Befehl in der Konsole ausführen:

pkg install os-crowdsec-devel

Seit OPNsense 22.7 können Sie die CrowdSec-Plugin-Weboberfläche ganz einfach installieren, indem Sie die folgenden Schritte befolgen:

  1. Navigieren Sie zum Menü SystemFirmwarePlugins.

  2. Geben Sie os-crowdsec in das Suchfeld ein.

    Abbildung 1. Installation des Crowdsec-Plugins

  3. Klicken Sie auf das +-Symbol neben os-crowdsec, um das Plugin zu installieren. Dann werden Sie zum Update-Menü-Tab weitergeleitet. Es wird drei Pakete bereitstellen:

    • os-crowdsec, das Plugin selbst
    • crowdsec
    • crowdsec-firewall-bouncer

    Abbildung 2. Installierte CrowdSec-Pakete

Parser, Szenarien und alle anderen CrowdSec Hub-Objekte werden routinemäßig aktualisiert. Standardmäßig sind die Sammlungen crowdsecurity/freebsd und crowdsecurity/opnsense installiert.

Konfiguration von CrowdSec

Nach der Installation des os-crowdsec-Plugins können Sie CrowdSec mit den folgenden Schritten konfigurieren:

  1. Navigieren Sie zu ServicesCrowdSecSettings im OPNsense UI.

  2. Klicken Sie auf die Registerkarte Settings.

  3. Aktivieren Sie das Kontrollkästchen Enable CrowdSec (IDS). Halten Sie diesen CrowdSec-Agenten aktiviert, um Angriffe zu erkennen und Warnungen vom CrowSec-Zentraldienst zu erhalten.

  4. Aktivieren Sie das Kontrollkästchen Enable LAPI. Lassen Sie diese CrowdSec Local API aktiviert, es sei denn, Sie verbinden sich mit einer LAPI auf einem anderen Gerät.

  5. Aktivieren Sie das Kontrollkästchen Enable Firewall Bouncer (IPS). Lassen Sie diesen Firewall-Bouncer aktiviert, um Pakete von den angreifenden IP-Adressen zu blockieren.

  6. Sie können die Option Enable log for rules auswählen, um die Protokollsammlung für die Blockregeln von CrowdSec zu aktivieren.

  7. Sie können die anderen Einstellungen als Standard belassen.

  8. Klicken Sie auf Apply.

Abbildung 3. CrowdSec-Einstellungen

CrowdSec generiert automatisch schwimmende Regeln, um alle eingehenden bösartigen IPv4/IPv6-IP-Adressen zu stoppen. Zusätzlich generiert es automatisch Blocklisten-Aliasnamen für IPv4 und IPv6, die Sie bei Bedarf in Ihren eigenen benutzerdefinierten Firewall-Regeln verwenden können.

Sie sollten CrowdSec-Firewall-Regeln ähnlich den unten angegebenen sehen, indem Sie im OPNsense-UI zu FirewallRulesFloating navigieren.

Abbildung 4. Schwebende Firewall-Regeln für CrowdSec

Sie sollten die CrowdSec-Aliasnamen crowdsec_blacklists und crowdsec6_blacklists sehen, indem Sie im OPNsense-UI zu FirewallAliases navigieren.

Abbildung 5. Firewall-Aliasnamen

Hinzufügen von Firewall-Regeln

Es ist ratsam, Firewall-Regeln einzurichten, um ausgehende Verbindungen zu den bösartigen IP-Adressen zu blockieren. Standardmäßig werden externe bösartige Verbindungen blockiert. Wenn jedoch ein Benutzer oder eine Maschine in Ihrem Netzwerk versucht, eine Anfrage an eine bösartige IP-Adresse zu stellen, wird die Verbindung erlaubt, es sei denn, Sie verbieten die Verbindung ausdrücklich. Um Floating-Regeln für die LAN/VLAN-Schnittstelle(n) zu erstellen, die Sie schützen möchten, können Sie die folgenden Schritte befolgen:

  1. Navigieren Sie zu FirewallRulesFloating in der OPNsense-Benutzeroberfläche.

  2. Klicken Sie auf die Schaltfläche Add mit dem +-Symbol oben rechts auf der Seite.

  3. Setzen Sie die Action-Option auf Block.

  4. Wählen Sie die Interface aus, die Sie schützen möchten, wie z.B. LAN.

  5. Setzen Sie die Direction auf in.

  6. Wählen Sie den Alias crowdsec_blacklists für die Destination-Option aus.

    Abbildung 6. Hinzufügen der Firewall-Regel-1

  7. Wählen Sie die Option Log packets that are handled by this rule.

  8. Geben Sie Description ein, wie z.B. Block Accessing CrowdSec Blacklist

    Abbildung 7. Hinzufügen der Firewall-Regel-2

  9. Klicken Sie auf Save.

    Sie müssen eine separate Regel für IPv4 und IPv6 erstellen, wenn Sie beide haben.

    Abbildung 8. Anwenden von Firewall-Regeln

  10. Klicken Sie auf Apply Changes, um die hinzugefügten Regeln zu aktivieren.

Erstellen eines CrowdSec Console-Kontos (Optional)

Um Ihr CrowdSec-Abenteuer zu beginnen, wird empfohlen, ein Konsolenkonto zu erstellen. Dies wird Ihnen Zugang zu zusätzlichen Funktionen verschaffen, die sich leicht in Ihre Sicherheits-Engine integrieren lassen.

Die CrowdSec-Konsole fungiert als webbasierte Schnittstelle, die es Ihnen ermöglicht, alle Ihre CrowdSec-Instanzen von einem einzigen Hub aus effizient zu überwachen. Um ein CrowdSec Console-Konto zu erstellen, können Sie die folgenden Schritte ausführen:

  1. Registrieren Sie sich unter https://app.crowdsec.net/signup und bestätigen Sie Ihre E-Mail-Adresse.

    Abbildung 9. CrowdSec-Anmeldeseite

  2. Fügen Sie Ihren OPNsense-Knoten zur Konsole hinzu, nachdem Sie ein Konto erstellt haben, indem Sie den auf der Seite "Engines" angezeigten Befehl ausführen, die Standardseite, die beim Einloggen geladen wird:

    cscli  console  enroll  <your-unique-code>

    Abbildung 10. Einmaligen Code zur Registrierung der Sicherheits-Engine verwenden

  3. Wenn Sie die Webseite nach Ausführung des vorhergehenden Befehls (über das SSH-Terminal auf Ihrem OPNsense-System) aktualisieren, werden Sie zur Anmeldung auf https://app.crowdsec.net aufgefordert. Klicken Sie auf die Schaltfläche Accept enroll.

    Abbildung 11. Registrierung der Sicherheitsengine

  4. Starten Sie crowdsec neu, nachdem Sie die Anmeldung akzeptiert haben, indem Sie zur Seite SystemDiagnosticsServices navigieren oder den folgenden Befehl ausführen:

    service crowdsec reload

    Abbildung 12. Neustart des CrowdSec-Dienstes

    Sobald die Registrierung abgeschlossen ist, wird Ihr OPNsense-Knoten in der CrowdSec-Konsole sichtbar sein.

    Abbildung 13. OPNsense im CrowdSec-Portal anzeigen

Hinzufügen privater Adressen zur Whitelist

CrowdSec kann in bestimmten Umständen die interne IP-Adresse Ihres Clients blockieren, wenn es Aktivitäten beobachtet, die einem Brute-Force-Angriff ähneln. Als Vorsichtsmaßnahme wird empfohlen, eine zusätzliche Whitelist einzuführen, um solche Vorfälle zu verhindern. Die Whitelist fungiert als Schutzmaßnahme, die unbeabsichtigte Blockierungen verhindert und einen reibungslosen Betrieb im gesamten Netzwerk gewährleistet.

Sie können private IP-Adressen zur Whitelist hinzufügen und das Crowdsec-Plugin neu laden, indem Sie den folgenden Befehl in Ihrer OPNsense-CLI ausführen:

cscli parsers install crowdsecurity/whitelists

Starten Sie dann den Crowdsec-Dienst neu, indem Sie den folgenden Befehl ausführen, damit die neue Konfiguration wirksam wird:

service crowdsec reload

YAML-Konfigurationsdatei der Whitelist privater IP-Adressen ist wie folgt:

name: crowdsecurity/whitelists

description: "Whitelist events from private ipv4 addresses"

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"

# expression:

# - "'foo.com' in evt.Meta.source_ip.reverse"

Sie können den Whitelist-Parser anzeigen, indem Sie zu ServicesCrowdSecOverviewParsers im OPNsense-UI navigieren.

Abbildung 14. Anzeigen des Whitelist-Parsers

Hinzufügen zusätzlicher Blocklisten

Im CrowdSec-Paket ist eine Hub-Sammlung vorinstalliert, die speziell für OPNsense entwickelt wurde. Diese Sammlung bietet einen Schutz gegen potenzielle Angriffe, die auf das System abzielen könnten.

Durch die Verwendung der verschiedenen Blocklisten, die die CrowdSec Security Engines anbieten, können Sie das Risiko von Angriffen, die von bösartigen IP-Adressen ausgehen, die nicht in der Liste von OPNsense aufgeführt sind, verringern. Vorhandene Blocklisten fungieren als wirksame Barrieren und stärken Ihr Netzwerk gegen etablierte böswillige Bedrohungen. 3 kostenlose Blocklisten-Abonnements im kostenlosen Plan erlaubt

Zusätzliche Blocklisten sind über die Crowdsec-Website zugänglich, indem Sie die folgenden Schritte ausführen:

  1. Gehen Sie zu AccountSecurity EnginesBlocklists in der CrowdSec-Konsole.

    Abbildung 15. Anzeigen von Blocklisten im CrowdSec-Portal

  2. Wählen Sie die Blocklisten aus, die Ihren Bedürfnissen entsprechen, wie z.B. die Firehol BotScout-Liste. Dies wird Sie zur Detailseite der Sperrliste weiterleiten.

    Abbildung 16. Hinzufügen der Sicherheits-Engine

  3. Klicken Sie auf die Schaltfläche + Add Security Engine(s) am unteren Rand der Seite.

  4. Wählen Sie Ihre Security Engine und wählen Sie Ban. Dies wird alle in der Sperrliste aufgeführten IPs sperren. Diese Behebung wird auf alle ausgewählten Sicherheits-Engines angewendet. Es wird innerhalb von bis zu 2 Stunden nach Ihrem nächsten Community-Blocklist-Zugriff wirksam sein.

    Abbildung 17. Speichern von Blocklisten für die Sicherheitsengine

  5. Klicken Sie auf Save.

  6. Starten Sie Crowdsec neu, nachdem Sie die Anmeldung akzeptiert haben, indem Sie zur Seite SystemDiagnosticsServices navigieren.

  7. Sie können die abonnierten Blocklisten in Ihrem CrowdSec-Konto einsehen. Außerdem sollten Sie diese Listen in Ihren OPNsense-Aliasen sehen.

    Abbildung 18. Abonnierte Blocklisten für die Sicherheitsengine

Testen von CrowdSec

Um die ordnungsgemäße Funktion aller CrowdSec-Komponenten zu überprüfen, führen Sie einfach den angegebenen Befehl aus, indem Sie ihn mit Ihrer verbindenden IP-Adresse ersetzen.

cscli decisions add -t ban -d 2m -i your_ip_address

Ihre SSH-Sitzung wird nicht mehr reagieren und Sie werden gewaltsam von der Firewall getrennt. Sie werden vorübergehend für zwei Minuten nicht in der Lage sein, eine Verbindung dazu herzustellen (unter Verwendung derselben IP-Adresse). Es ist ratsam, eine zusätzliche IP-Adresse für die Verbindung bereitzuhalten, falls unvorhergesehene Probleme auftreten.

Abbildung 19. Anzeigen von CrowdSec-Alarmen auf OPNsense

Sie sollten Warnungen ähnlich den oben genannten sehen, indem Sie im OPNsense UI zu ServicesCrowdSecOverviewAlerts navigieren.

Diese Methode zu verwenden ist sicherer, als es selbst mit Brute-Force zu versuchen. Die standardmäßige Sperrdauer beträgt 4 Stunden, und CrowdSec analysiert die Protokolle von Anfang an. Daher hat es die Fähigkeit, dich zu sperren, selbst wenn du 10 fehlgeschlagene SSH-Anmeldeversuche innerhalb von 30 Sekunden, zwei Stunden vor seiner Installation, hattest.

Um eine umfassende Übersicht über alle verfügbaren Flags zu erhalten, verwenden Sie den folgenden Befehl:

cscli decisions add --help.

Was sind die Hauptmerkmale von CrowdSec?

Ein charakteristisches Merkmal von CrowdSec ist seine Abhängigkeit von Bedrohungsinformationen, die aus der Community gesammelt und von anderen CrowdSec-Nutzern geteilt werden. Dies ermöglicht es CrowdSec, schnell auf aufkommende Bedrohungen zu reagieren. CrowdSec hat die Fähigkeit, böswillige Aktivitäten auf jedem Netzwerkssystem, auf dem es eingesetzt wird, zu beobachten, zu benachrichtigen und zu blockieren. Alternative Intrusion Prevention System (IPS)-Plattformen verlassen sich auf Signaturen oder Regeln, um bekannten bösartigen Datenverkehr zu blockieren, aber CrowdSec nutzt Bedrohungsintelligenz, die die Gemeinschaft kollektiv zusammengestellt hat, um einen Reputationswert für IP-Adressen zu berechnen. Untrusted IP-Adressen können Einschränkungen bei ihrem Zugriff auf geschützte Ressourcen begegnen. Infolgedessen bietet CrowdSec Schnelligkeit, Effektivität und Effizienz beim Schutz einer Vielzahl von Netzwerkressourcen.

CrowdSec hat die folgenden Hauptmerkmale:

  • Einfache Installation: Nahtlose und unkomplizierte Installation auf allen kompatiblen Systemen.

  • Optimierte tägliche Abläufe: Nutzen Sie cscli und das Hub für nahtlose Wartung und um die Aktualität Ihrer Erkennungsmethoden sicherzustellen.

  • Reproduzierbarkeit: Die Security Engine hat die Fähigkeit, sowohl Echtzeitprotokolle als auch archivierte Protokolle zu untersuchen, was die Identifizierung möglicher Fehlalarme, die Durchführung forensischer Analysen und die Erstellung von Berichten erleichtert.

  • Wahrnehmbarkeit: Bietet bedeutende Beobachtungen zur Funktionsweise des Systems:

    • Benutzer haben die Möglichkeit, Benachrichtigungen über die (Konsole) zuzugreifen und zu steuern.
    • Administratoren können ein benutzerfreundliches Befehlszeilenprogramm namens cscli verwenden.
    • Das Betriebspersonal hat die Fähigkeit, komplexe Prometheus-Analysen zu sehen.
  • API-zentriert: Alle Komponenten interagieren über eine HTTP-API, was die Einrichtung von Multi-Maschinen-Konfigurationen ermöglicht.

Was sind die CrowdSec-Komponenten?

CrowdSec besteht aus zwei Hauptkomponenten:

  1. Security Engine (Agent): Neben der Überwachung von Protokolldateien auf bösartige Aktivitäten liefern die Agenten der CrowdSec-Community spezifische Informationen.
  2. Bouncer: Der Zweck des Bouncers besteht darin, den Zugriff auf geschützte Ressourcen von IP-Adressen zu verhindern. Bouncer können spezifische Dienste, die in Ihrem Netzwerk betrieben werden, wie Webserver, anstatt das gesamte Netzwerk, vor bösartigen IP-Adressen schützen. Wenn der Bouncer in eine Firewall wie OPNsense integriert ist, wird er das gesamte Netzwerk schützen.

CrowdSec-Agenten und Bouncer tauschen über die lokale API (LAPI) crowdsourcede Intelligenzinformationen aus, die anschließend mit der zentralen API ausgetauscht werden. (CAPI). Das LAPI kann unter anderem auf einem Netzwerkserver oder der Firewall platziert sein. Es ist möglich, mehrere CrowdSec-Agenten und Bouncers in einem Netzwerk zu betreiben, die mit einem einzigen lokalen Server kommunizieren, der die CrowdSec LAPI in einer fortgeschrittenen CrowdSec-Installation beherbergt.

Wie funktioniert CrowdSec?

Die Laufzeit der CrowdSec Security Engine basiert auf den folgenden einfachen Ideen:

  1. Es liest Protokolle. (defined by the configuration of the data source).

  2. Diese Datensätze werden letztendlich angereichert, nachdem sie von Parsern analysiert wurden.

  3. Ein Vergleich wird zwischen den normalisierten Aufzeichnungen und den Szenarien, die der Benutzer implementiert hat, angestellt.

  4. Ein Szenario wird von CrowdSec "ausgelöst", das anschließend einen Alarm und eine oder mehrere damit verbundene Entscheidungen erzeugt.

    1. Primär zum Zweck der Rückverfolgbarkeit bleibt die Warnung auch nach Ablauf der Entscheidung bestehen.
    2. Die Entscheidung hingegen ist vorübergehend und legt den Handlungsverlauf fest, der als Reaktion auf die IP/Range/Nutzer, die das Vergehen begangen haben, umgesetzt werden soll.
  5. Die Daten (das Signal und die entsprechenden Entscheidungen) werden anschließend an die lokale API übermittelt und in die Datenbank eingegeben.

Die CrowdSec-Sicherheitsengine führt den Erkennungsprozess durch und speichert die daraus resultierenden Feststellungen. Remediation-Komponenten können diese Entscheidungen anschließend "verbrauchen" und die Behebung über die identische lokale API implementieren.