Das Thema ist schon ein gutes Stück älter aber wollte hier mal dazu beitragen.
Mein Setup ist etwas komplexer aufgebaut:
Ich habe CrowdSec direkt auf meiner OPNsense-Firewall installiert, wo es als sogenannte Local API (LAPI) fungiert. Diese LAPI ist der zentrale Baustein für meine verteilte Sicherheitsarchitektur. Alle anderen Server/Instanzen im Netzwerk nutzen diese zentrale CrowdSec-Instanz, um erkannte Angriffe oder verdächtiges Verhalten an die OPNsense zu melden. Die OPNsense-Firewall wiederum blockiert daraufhin netzwerkweit die IP-Adresse des Angreifers, also nicht nur für die betroffene Instanz, sondern für alle Systeme hinter der Firewall. So funktioniert CrowdSec bei mir als koordinierter Verteidigungsmechanismus.
Das Ganze funktioniert auch Standalone. Also ohne OPNsense, pfSense oder sonst was. Beispielsweise direkt auf einem Server mit iptables.
CrowdSec und Fail2Ban können problemlos parallel betrieben werden.
Es ist nicht notwendig, Fail2Ban zu deinstallieren oder zu deaktivieren. Beide Systeme arbeiten unabhängig voneinander und lassen sich problemlos nebeneinander nutzen.
Die CrowdSec-Installation ist erfreulich unkompliziert. Hier eine kurze Anleitung mit iptables:
1. CrowdSec Repository und Installationsscript laden
Das offizielle Installationsskript zieht automatisch alle nötigen Komponenten (Repo, Schlüssel, etc.):
Code: Select all
curl -s https://install.crowdsec.net | sudo sh
2. Security Engine installieren
Hier wird die eigentliche Erkennungsengine von CrowdSec installiert. Diese analysiert Logdateien, erkennt Angriffe und erstellt “Decisions” (z. B. Blockieren einer IP):
3. IPTables Bouncer installieren
Der sogenannte Bouncer ist dafür zuständig, erkannte Angreifer auch tatsächlich zu blockieren. Hier konkret per iptables. Voraussetzung dafür ist, dass iptables auch auf dem System installiert ist. (Alternativ gibt’s auch Bouncer für pfSense/OPNsense etc.) CrowdSec unterstützt sowohl IPv4 als auch IPv6.
Code: Select all
apt install crowdsec-firewall-bouncer-iptables
Dabei wird automatisch eine Anbindung an die Blocklisten von CrowdSec Threat Intelligence eingerichtet. Das heißt, bereits bekannte, bösartige IP-Adressen aus der globalen CrowdSec-Community werden sofort blockiert, auch wenn sie dein System noch gar nicht angegriffen haben.
4. Setup Wizard ausführen
Der Wizard erkennt automatisch installierte Dienste von KeyHelp (wie z. B. sshd, apache, postfix, etc.) und richtet dafür passende Logparser und Erkennungsregeln ein:
Code: Select all
sudo /usr/share/crowdsec/wizard.sh -c
Während der Einrichtung habe ich alle vorgeschlagenen Dienste ausgewählt, um möglichst viel Angriffsfläche abzudecken. Dadurch wird für jeden Dienst ein passender Parser aktiviert, der die jeweiligen Logdateien auswertet (z. B. /var/log/auth.log für SSH).
5. (Optional) Anbindung an die CrowdSec Console
Wer seine Sicherheitslage zentral überwachen möchte, kann den lokalen CrowdSec-Agenten mit der offiziellen CrowdSec Console verbinden. Dort sieht man alle erkannten Angriffe, Statistiken, blockierte IPs und mehr bequem über eine Weboberfläche. Dazu bei CrowdSec registrieren
https://app.crowdsec.net/. Nach dem Einloggen solltet ihr einen vorgefertigten API-Befehl finden. Etwa sowas wie:
Code: Select all
sudo cscli console enroll <API-KEY>
CrowdSec ist damit installiert, aktiv und blockiert zuverlässig. Durch die gemeinsame Nutzung profitiert jeder von der Schwarmintelligenz. Je mehr mitmachen, desto effektiver wird der Schutz für alle.
Nach nur zwei Tagen Laufzeit wurden bei mir bereits mehrere verdächtige Aktivitäten erkannt und vermutlich hunderte schädliche Anfragen automatisch im Vorfeld blockiert, dank der bereits zusätzlich zu CrowdSec vorhandenen Aliases und Firewall-Regeln in OPNsense.

Dabei war eine beachtliche Bandbreite an Angriffstypen vertreten:
