Fail2Ban ist Linux-Admins und meinen Kursteilnehmern weitläufig bekannt. Das Programm analysiert die Log-Protokolle auf dem Server und zählt die Anzahl der Zugriffsversuche von IP-Adressen auf dem angegebenen Protokoll oder Dienst. Gibt es zu viele fehlgeschlagene Anmeldeversuche wird diese IP-Adresse für einen bestimmten Zeitraum über die Firewall automatisch gesperrt.
Ein sogenannter Jail wird für z.B. die SSH-Verbindung mit der Standardeinstellung von 5 Fehlversuchen innerhalb 10 Minuten aktiviert, danach wird die IP-Adresse für eine Stunde gesperrt und kann sich nicht mehr am System anmelden oder einen anderen Dienst aufrufen. Eine effektive Möglichkeit, um so Junk-Traffic von verschiedenen Scannern, Bots und DDoS-Attaken zu filtern.
Fail2Ban ist hier eines der besten Werkzeuge auf ihrem Gebiet. Doch jetzt scheint das neue Open-Source-Projekt CrowdSec eine moderne interessante Alternative zu sein. Es ist ein lokaler Ersatz für Fail2Ban.
CrowdSec bezeichnet sich selbst als "Sicherheitsautomatisierungs-Engine", die lokale Regeln verwendet, um IP-Adressen mit einer von Community-gesteuerten bösartigen IP-Datenbank zu erkennen.
Was bietet CrowdSec ?
- Erkennung von Angriffen auf allen Ebenen
- Einfache Installation und Wartung
- Integration mit anderen Komponenten und Plugins für bekannte Dienste wie Cloudflare
- Optionale öffentliche API: Metadaten können an einen zentralen API-Server gesendet werden, alle Benutzer können dann die schädlichen IP-Adressdaten ebenfalls blockieren
- Minimaler Arbeitsspeicher und CPU
Hinter CrowdSec steht ein französisches Unternehmen, ist in Go geschrieben und ist laut eigenen Angaben DSGVO-konform. Etwas, das heutzutage ein Plus für die Privatsphäre ist. Selbst, wenn die Option „Teamwork“ genutzt wird und um die gespeicherten Daten zu teilen, werden nur drei Parameter gesendet: der Zeitstempel, die IP-Adressen und die Richtlinie, gegen die du verstoßen hast.
CrowdSec besteht aus drei Hauptkomponenten:
- Dem CrowdSec-Dienst, der Protokolle, Angriffe usw. überwacht
- Die CLI-Schnittstelle zur Interaktion mit dem Dienst
- CrowdSec-Bouncer für die Durchsetzung von Blockierungen auf der Firewall
CrowdSec-Bouncer und unterstütze Distributionen
CrowdSec-Bouncer nutzt für die Blockierungen iptables und nftables. Neben Distributionen wie Debian, CentOS, RHEL, Fedora, Amzn Linux ist auch Docker, Kubernetes, Raspberry Pi und FreeBSD auf der offiziellen Supported-Liste.
Dem Bouncer stehen auch eine Vielzahl an vorgefertigten Richtlinien ("Bouncers") und Kollektionen zur Verfügung. So gibt es auch ein einfaches Tutorial für PHP-Entwickler, um auf die API-Schnittstelle zuzugreifen.
Wichtige Richtlinien und Kollektionen gibt es für
- WordPress, Magento, Nextcloud
- PHP
- Ingress
- NGINX, Apache, HAProxy, Traefik
- MySQL, MariaDB, PostgreSQL
- Cloudflare, Fastly
- SSH
- vsftpd, proftpd, pureftpd
- Proxmox
- uvm.
Wie verdient CrowdSec Geld?
Ziel von CrowdSec ist es, eine globale IP-Reputation-Plattform und eine KI-basierte Sicherheitsengine aufzubauen.
Das Unternehmen versucht, Nutzern einen kostenpflichtigen Zugang zu der „Cloud-API“ und der gemeinsam erstellten IP-Reputationsdatenbank anzubieten, so wie Installations und Wartungsservices durchzuführen. Nimmt man selbst als Anbieter von Informationen zu dieser Datenbank teil, so ist man von der Zahlung befreit. Nur CrowdSec-Nutzer, welche die Informationen aus ihren Protokollen nicht teilen möchten, zahlen für diesen Service.
Premium und Enterprise Tarife mit unterschiedlichen Support-Services, spezielle Service-Tools (z. B. Bereitstellung des Systems an mehreren Standorten von einem zentralen Standort), Einsatz von Data Mining und Machine Learning (zur Erkennung von Trends) und erweiterte Analysen von Cold Logs zu Ermittlungen (dies könnte jedoch in Europa wegen der DSGVO schwierig sein).
CrowdSec ist jedenfalls ein Open-Source-Tool unter der freien MIT-Lizenz, sodass die kommerziellen Pläne der Entwickler die Community nicht daran hindern, es zu verwenden und an ihre Bedürfnisse anzupassen. Der Vorteil, wenn eine Firma, die auch gute Einnahmen damit erzielen kann, dahinter steht ist auf jeden Fall, dass die Entwicklung nicht stillsteht und man dadurch im besten Falle immer mit zeitnahen Updates versorgt wird.
Wie funktioniert CrowdSec?
Installation je nach Distribution
Debian-basierte Systeme:
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
apt install crowdsec crowdsec-firewall-bouncer-iptables
RedHat-basierte Systeme:
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.rpm.sh | sudo bash
yum install crowdsec crowdsec-firewall-bouncer-iptables
bzw. dnf statt yum
Kubernetes:
helm repo add crowdsec https://crowdsecurity.github.io/helm-charts && helm repo update
helm install crowdsec crowdsec/crowdsec -f crowdsec-values.yaml -n crowdsec --create-namespace
Docker:
Im Docker Hub zu finden
Nun kann auch über das CLI Tool cscli CrowdSec konfiguriert werden. In meinem Youtube-Video zeige ich dir dazu einige Beispiele.
cscli
cscli decisions list
cscli decisions delete --id 800
cscli bouncers add wordpress-bouncer