Dienste im Internet anzubieten, selbst wenn dies nicht-öffentlich geschieht, birgt immer ein Risiko, so dass man diese Systeme absichern muss. Ein Kandidat dafür ist Crowdsec.
Einleitung
Wenn man Dienste im Internet öffentlich anbietet, ist es vorprogrammiert, dass früher oder später Angriffe auf diesen Rechner erfolgen. Sei es nur zum ausprobieren, ob da ein Port offen ist oder es wird ein tatsächlich Scan auf Schwachstellen gestartet.
Hier empfiehlt es sich also in jedem Fall ein solches System abzusichern. Aber selbst wenn man keine öffentlichen Dienste anbietet, kann es nicht schaden, hier an die Sicherheit zu denken.
Firewalls
Früher habe ich zum Beispiel meine Nextcloud mit der UFW Firewall abgesichert und zusätzlich mit dem unter Linux üblichen Programm fail2ban dafür gesorgt, dass zum Beispiel Brutforce Attacken auf einen SSH Login zum Beispiel keinen Erfolg hatten.
Bereits mit der ProxMox Installation, aber erst recht mit der OPNSense Installation ergeben sich hier neue Optionen.
CrowedSec
CrowdSec basiert da drauf, dass wie bei Fail2an bestimmte Versuche als Szenarien erkannt werden und dann der jeweilige Rechner ausgeschlossen wird Hier wird aber die Intelligenz der Menge genutzt. Also werden solche Angriffe an eine zentrale API gemeldet und von dort aus kann weiter entschieden werden, wie mit solchen Angriffen umgegangen wird.
Ich hatte vorher CrowedSec auf Proxmox laufen, aber mit der Installation der OPNSense macht es natürlich Sinn diiese Installation auf der Firewall selbst durchzuführen.
CrowdSec Plugin
Für die OPNSense existiert ein Plugin für CrowdSec, so dass die Firewall selbst die lokale API bereitstellt. Da ich aber mehrere Systeme laufen habe, sollten diese auch mit CrowdSec abgesichert werden und ihre Ergebnisse an die lokale API abliefern.
Die Installation des Plugins ist eigentlich relativ einfach. Allerdings muss man dann auf der Kommando Zeile mit dem VI Editor in der Konfiguration noch eine Ergänzung vornehmen (use_wal:true)
Bei meiner Installation musste da etwas schief gelaufen sein, da ich auf einmal mehrere CrowdSec Firewall Bouncer in der Prozessliste hatte. Auch eine neue Installation half nicht. Aber zum guten Schluss habe ich dann einen Verzeichnis /var/db/crowdsec entdeckt, dass ich dann vor der neuen Installation ebenfalls gelöscht hab .
Die Clients
Auf den anderen Rechnern oder Containern, die Nextcloud und andere Dienste beherbergen, wird natürlich ebenfalls CrowdSec installiert.
Das System erkennt dabei automatisch, welche Dienste installiert sind. Also zum Beispiel ein NGinx oder ein SSH oder eben auch nur Linux allgemein dafür werden die entsprechenden Regeln installiert Und dann auch die Bouncer.
Diese holen sich dann die Regeln über die lokale API, also in dem Fall die Firewall selbst.
Blocklisten
CrowdSec verwaltet dabei unter anderem IP V4 Blocklisten also eine Liste von IP Adressen, die ja grundsätzlich als böse oder angriffslustig gelten. Und das sind immerhin im IPV vier Bereich um die 20.000 IP V4 Adressen.
Damit werden schon mal grundsätzlich problematische IP Adressen vom System ausgeschlossen und kommen erst gar nicht weiter, während die andern, dann zumindestens später über die Decisions dann gegebenenfalls ausgeschlossen werden.
Fazit
Kaum war das System installiert, gab es schon die ersten Bands also Ausschlüsse von IP Adressen aus verschiedenen Ländern, die wohl ausprobieren wollten, ob wir Firewall angreifbar ist.
Bis auf den kleinen Fehler bei der Erstinstallation war die Installation eigentlich problemlos und es gibt eine sehr gute Dokumentation für eine verteilte API in einem lokalen Netzwerk, wenn ein Rechner wie die open Cents oder auch ein anderer Rechner, die lokale API für verschiedene Systeme im Netzwerk bereitstellen soll.
Wenn man da oben sehen konnte, hat CrowdSec bei mir schon einige Angriffe abgewehrt und insofern bin ich froh über dieses System.
ciao tuxoche