CrowdSec v.1.0.0 - lokale Alternative zu Fail2Ban





Hallo. Wir, das CrowdSec-Projektteam, freuen uns, die Veröffentlichung von CrowdSec 1.0.0 bekannt zu geben. Diese Version ist äußerst wichtig, da das gesamte Projekt nicht nur einige neue Funktionen hinzugefügt hat, sondern auch große architektonische Änderungen erfahren hat, um schneller, größer und stärker zu werden.



Zunächst freuen wir uns, Ihnen die wichtigste Änderung in diesem Patch vorstellen zu können - die Einführung der lokalen REST-API. Dank ihm hat das gesamte Projekt seine Architektur grundlegend geändert, um die Interaktion von Komponenten auf lokaler Ebene zu vereinfachen und zu erleichtern. Die Benutzerfreundlichkeit hat jedoch insgesamt nicht gelitten - die Verwendung von CrowdSec ist immer noch einfach und angenehm.



Für diejenigen, die CrowdSec nicht kennen oder sich fragen, wie das französische Startup auf Habré gelandet ist, machen wir einen kleinen Exkurs:
, , , Fail2Ban: «CrowdSec — Fail2Ban ».



, , IT-. . , — .



, . , , . 1.0.0 :)


Wie es war und wie es wurde



Die Hauptsache bei der Veröffentlichung von Version 1.0 war die Einführung von Änderungen an der Architektur, die aufgrund der Einführung der lokalen REST-API in die Arbeit erfolgten. Aus architektonischer Sicht besteht unser System aus drei Hauptkomponenten:



  • ein ständig laufender CrowdSec-Dienst, der Protokolle, Angriffe usw. überwacht;

  • Befehlszeile, Schnittstelle für die Interaktion mit dem Dienst;

  • Integrationsmodule (Bouncer), um das Blockieren angreifender Adressen sicherzustellen.


Unten sehen Sie ein Diagramm, wie CrowdSec zuvor funktioniert hat:







Wie Sie dem Diagramm entnehmen können, haben mindestens drei Elemente des Systems ständig direkt auf die Datenbank zugegriffen. Im Diagramm sind diese Richtungen mit roten Kreisen markiert (cwcli-DB, Ausgabe-Plugins-DB, Bouncers-DB). Gleichzeitig bedeutet "Türsteher" mindestens fünf Module, die ständig zwischen der Reputationsdatenbank und der Datenbank gesperrter IP-Adressen kommunizieren.



Wenn Sie ein Projekt von Grund auf neu entwickeln, sind diese Krücken eine einfache, schnelle und kostengünstige Möglichkeit, einen funktionierenden Prototyp eines Systems zu erstellen. Wenn wir jedoch über Stabilität und Arbeitsgeschwindigkeit sprechen, sind so viele Zugriffspunkte auf die Datenbank nicht die beste Lösung. Diese Architektur des Projekts führte zu einer Reihe von Einschränkungen, auf die wir in den Phasen der Weiterentwicklung von CrowdSec gestoßen sind. Deshalb wollten wir sie so schnell wie möglich loswerden.



Nach der Neugestaltung des Projekts auf architektonischer Ebene kamen wir zu dem Schluss, dass die beste Option eine lokale REST-API ist, über die die Kommunikation der oben genannten Komponenten und der Datenbank bereits erfolgt.



Als Ergebnis haben wir die folgende Architektur erhalten:







Jetzt kommunizieren alle internen Module ausschließlich über die REST-API miteinander und mit der Datenbank.



Der Hauptvorteil der API gegenüber der alten Implementierung ist die Vereinfachung der Module (Bouncer) gegenüber der alten Version von CrowdSec. Wenn der Bouncer früher direkt auf verschiedene Datenbanken zugegriffen hat, benötigt er jetzt dank der Arbeit über die REST-API nur eine HTTP-Get-Anforderung mit einem API-Token. Alle anderen Arbeiten finden auf der API-Seite statt.



CrowdSec-Cloud-Schema



In der klassischen Ansicht wird davon ausgegangen, dass auf einem der Computer der CrowdSec-Serverteil bereitgestellt ist, der über die neue API Module auf anderen Computern innerhalb des vom Administrator definierten Netzwerks verwalten kann. Auf Wunsch kann der Benutzer seine eigene Datenbank mit gesperrten Adressen verwenden oder gegen Bezahlung auf unsere Datenbank zugreifen. Das Erstellen eines einzigen Kommunikationspunkts zwischen der lokalen REST-API und unserer eigenen API bietet jedoch eine neue Möglichkeit: den Betrieb von CrowdSec auf einem Modell in der Nähe von Cloud-SaaS.



Jetzt muss der Administrator keinen vollwertigen CrowdSec-Serverteil mit einer lokalen REST-API auf seinem Computer bereitstellen. Stattdessen kann es unsere externe zentrale CrowdSec-API verwenden und nur Bouncer verwenden, um das Netzwerk zu sichern.



zusätzlich



Für diejenigen, die CrowdSec bereits verwendet haben, empfehlen wir Ihnen, die vollständige Liste der Änderungen in Version 1.0.0 gegenüber Version 0.3.x auf GitHub zu lesen .



Neuen Benutzern wird empfohlen, auf Informationen aus unserem Repository auf GitHub zu verweisen .



Wir möchten darauf hinweisen, dass CrowdSec ein Open-Source-Tool ist, das unter der kostenlosen MIT-Lizenz veröffentlicht wird. Somit kann jeder es absolut kostenlos nutzen. Das Projekt wurde noch nicht monetarisiert , wir befinden uns im Stadium der Entwicklung unserer eigenen Verbotsliste und Tarifpläne. Auf unserer Website hub.crowdsec.net Speziell für neue Benutzer werden Sammlungen, Konfigurationen und vorgefertigte Türsteher gesammelt, um die Anpassung zu erleichtern und CrowdSec zu verwenden.






Hier in den Kommentaren können Sie Fragen zu unserem Projekt stellen. Die Verwendung von Englisch vereinfacht die Kommunikation - wir müssen Google.Translate nicht verwenden oder russischsprachige Freunde bitten, Ihre Nachricht für uns zu übersetzen.



All Articles