CrowdSec LAPI
Local API von CrowdSec — der zentrale Kommunikationspunkt zwischen CrowdSec-Agents und Bouncern, der Entscheidungen über gesperrte IPs verwaltet und weitergibt.
Aktualisiert: 23. Februar 2026
Was ist die CrowdSec LAPI?
Die CrowdSec LAPI (Local API) ist die zentrale REST-API-Schnittstelle innerhalb der CrowdSec-Architektur. Sie verbindet die drei Hauptkomponenten des Systems miteinander: Agents (die Angriffe erkennen), Bouncers (die sie blockieren) und den optionalen Anschluss an die globale CrowdSec Central API (CAPI). Die LAPI läuft standardmäßig auf Port 8080 auf demselben Host wie der CrowdSec-Agent.
Ohne funktionierende LAPI können Bouncers keine Sperrentscheidungen abrufen — ein Bouncer, der seine LAPI nicht erreicht, blockt im schlimmsten Fall gar nichts oder verhält sich nicht deterministisch. Das Verständnis der LAPI ist deshalb essenziell für die fehlersuche in CrowdSec-Installationen.
Kurzprofil CrowdSec LAPI
- Typ: Interne REST-API (Architekturkomponente)
- Port: 8080 (Standard)
- Protokoll: HTTP/HTTPS + API-Key-Authentifizierung
- Clients: Agents (schreiben Entscheidungen), Bouncers (lesen Entscheidungen)
- Upstream: Verbindet sich mit CrowdSec CAPI (Central API) für Community-Daten
- Docs: doc.crowdsec.net/docs/local_api
Wie funktioniert die CrowdSec LAPI?
Die LAPI ist der "Mittelsmann" in der CrowdSec-Kommunikation. Ihr Datenfluss:
Log-Datei
↓
CrowdSec Agent
(erkennt Angriffsmuster)
↓
LAPI ←→ CrowdSec CAPI (Community-Blocklisten)
↓
Bouncer (Traefik / Nginx / Firewall)
(blockt gesperrte IPs)
Agent → LAPI: Wenn der Agent ein Angriffsszenario als ausgelöst betrachtet, sendet er eine Decision (Entscheidung) an die LAPI. Die Decision enthält die Angreifer-IP, den Angriffstyp und die Sperrdauer.
Bouncer → LAPI: Der Bouncer fragt bei jeder HTTP-Anfrage (oder in einem definierten Intervall) die LAPI: „Hat die IP X.X.X.X eine aktive Sperre?" Die LAPI antwortet mit der aktuellen Decision-Liste.
LAPI ↔ CAPI: Die LAPI synchronisiert sich regelmäßig mit der globalen CrowdSec CAPI. Sie empfängt Community-Blocklisten (IPs, die weltweit als Angreifer erkannt wurden) und meldet lokal erkannte Angreifer (anonymisiert) zurück.
API-Key-Authentifizierung: Jeder Bouncer authentifiziert sich bei der LAPI mit einem individuellen API-Key:
# Key erstellen:
cscli bouncers add traefik-bouncer
# Ausgabe: API key for 'traefik-bouncer': abc123def456...
# Key anzeigen / löschen:
cscli bouncers list
cscli bouncers delete traefik-bouncer
CrowdSec LAPI in der WordPress-Praxis
Für einen WordPress-Server mit Traefik als Reverse Proxy ist das typische Setup:
# docker-compose.yml (Ausschnitt)
services:
crowdsec:
image: crowdsecurity/crowdsec
ports:
- "127.0.0.1:8080:8080" # LAPI nur lokal erreichbar!
volumes:
- crowdsec-db:/var/lib/crowdsec/data
- /var/log/traefik:/var/log/traefik:ro
bouncer-traefik:
image: fbonalair/traefik-crowdsec-bouncer
environment:
CROWDSEC_BOUNCER_API_KEY: "${BOUNCER_KEY}"
CROWDSEC_AGENT_HOST: "crowdsec:8080" # LAPI-Adresse
Der Bouncer erreicht die LAPI über crowdsec:8080 im Docker-internen Netzwerk. Der Port sollte nicht nach außen exponiert werden (daher 127.0.0.1:8080 für Host-Binding).
Häufige Fehlerquelle — 401 Unauthorized: Der häufigste LAPI-Fehler ist ein ungültiger oder abgelaufener Bouncer-API-Key:
# Fehler im Bouncer-Log:
# [ERROR] 401 Unauthorized - invalid api key
# Fix: neuen Key erstellen
docker exec crowdsec cscli bouncers delete traefik-bouncer
docker exec crowdsec cscli bouncers add traefik-bouncer
# Neuen Key in docker-compose.yml / .env eintragen
docker-compose restart bouncer-traefik
Multi-Server-Setup: In Umgebungen mit mehreren Servern (z.B. mehrere Web-Server hinter einem Load Balancer) kann eine einzige LAPI-Instanz von mehreren Agents und Bouncers genutzt werden. Die LAPI-URL wird dann über ein privates Netzwerk oder VPN erreichbar gemacht:
# Bouncer auf Server B, LAPI auf Server A:
export CROWDSEC_AGENT_HOST="10.0.0.1:8080"
CrowdSec LAPI diagnostizieren
# LAPI-Status prüfen:
cscli lapi status
# Verbindung zur CAPI prüfen:
cscli capi status
# Alle registrierten Bouncers:
cscli bouncers list
# Alle registrierten Agents (Machines):
cscli machines list
# LAPI-Log in Docker:
docker logs crowdsec | grep -i lapi
Was passiert, wenn die LAPI ausfällt?
Wenn die LAPI nicht erreichbar ist, verhält sich jeder Bouncer anders — abhängig von seiner Konfiguration:
- Traefik-Bouncer (Standard): Lässt alle Anfragen durch (fail-open). Das ist in der Regel das richtige Verhalten für Web-Traffic — besser Angreifer passieren lassen als legitime Nutzer blockieren.
- Firewall-Bouncer: Behält die zuletzt geladene Sperrliste bei, bis die LAPI wieder erreichbar ist.
LAPI-Ausfälle in Docker-Umgebungen entstehen oft durch Container-Neustarts in der falschen Reihenfolge. Mit depends_on in docker-compose.yml kann die Startsequenz gesteuert werden:
bouncer-traefik:
depends_on:
crowdsec:
condition: service_healthy
Häufige Fragen
Was ist der Unterschied zwischen LAPI und CAPI? Die LAPI (Local API) läuft auf deinem eigenen Server und koordiniert deine lokalen CrowdSec-Komponenten. Die CAPI (Central API) ist der zentrale CrowdSec-Server in der Cloud, der anonymisierte Signals von allen teilnehmenden Instanzen aggregiert und Community-Blocklisten verteilt. Deine LAPI spricht mit der CAPI — Bouncers sprechen nie direkt mit der CAPI.
Muss die LAPI verschlüsselt werden?
In Single-Server-Docker-Setups kommunizieren LAPI und Bouncers über das interne Docker-Netzwerk ohne TLS — das ist akzeptabel, solange der Port nicht nach außen exponiert wird. In Multi-Server-Setups über ein öffentliches Netzwerk sollte HTTPS/TLS aktiviert werden. Die LAPI unterstützt TLS-Konfiguration über die profiles.yaml.
Wie viele Bouncers kann eine LAPI bedienen? Es gibt keine harte Obergrenze. In der Praxis hängt es von der Hardware ab. Für typische WordPress-Setups mit einem Traefik-Bouncer und einem Firewall-Bouncer ist eine einfache LAPI-Instanz mehr als ausreichend. Großinstallationen mit Dutzenden Bouncers können Lastprobleme zeigen; dann empfiehlt CrowdSec ein dediziertes Setup.
Verwandte Begriffe
CIDR · DDoS