📍 Article principal du cluster : CrowdSec 2026 : guide complet.
Pour une ESN gérant 8 VPS clients, ou une PME avec serveurs production + staging + dev + monitoring, l’architecture LAPI central centralise les décisions : une IP bannie sur VPS A est bannie sur tous. Vue unifiée Console, gestion simplifiée. Ce tutoriel détaille l’architecture validée chez plusieurs ESN à Casablanca, Tunis, et Abidjan.
Prérequis
- 5+ VPS Linux (Hetzner, OVH).
- VPN privé entre les VPS (Tailscale, Headscale, ou WireGuard).
- CrowdSec installé sur chaque (voir tutoriel installation).
- Niveau attendu : avancé.
- Temps estimé : 1-2 heures.
Étape 1 — Architecture cible
VPS LAPI central : héberge le LAPI + base SQLite ou Postgres centralisée. Recommandé : Hetzner CX22 dédié à cette fonction.
VPS agents : analysent leurs logs, envoient alertes au LAPI central, lisent les décisions. Pas de LAPI local.
Bouncers : sur chaque VPS, lisent décisions du LAPI central via API.
Étape 2 — Préparer le LAPI central
Sur le VPS dédié :
nano /etc/crowdsec/config.yaml
api:
server:
listen_uri: 0.0.0.0:8080
profiles_path: /etc/crowdsec/profiles.yaml
online_client:
credentials_path: /etc/crowdsec/online_api_credentials.yaml
db_config:
type: sqlite
db_path: /var/lib/crowdsec/data/crowdsec.db
# Ou Postgres pour 50+ agents
# type: postgresql
# host: ...
# port: 5432
systemctl restart crowdsec
Étape 3 — Sécuriser l’accès LAPI
Le LAPI ne doit pas être exposé publiquement. Options :
- Tailscale : tous agents sur tailnet, LAPI sur 100.64.0.X.
- WireGuard : VPN privé entre VPS.
- Cloudflare Tunnel : LAPI accessible uniquement via tunnel signé.
Recommandation : Tailscale, simplicité.
Étape 4 — Inscrire chaque agent au LAPI central
Sur chaque VPS agent :
# Désactiver LAPI local
nano /etc/crowdsec/config.yaml
# Sous api:server: : enabled: false
# Créer credentials pour LAPI central
cat > /etc/crowdsec/local_api_credentials.yaml << EOF
url: http://100.64.0.5:8080 # Tailscale IP du LAPI central
login: agent-vps-X
password: A_GENERER_VIA_LAPI_CENTRAL
EOF
Étape 5 — Sur le LAPI central, créer machine pour chaque agent
# Sur LAPI central
cscli machines add agent-vps-1 --auto
cscli machines add agent-vps-2 --auto
cscli machines add agent-vps-3 --auto
# Note password retourné, copier dans config agent
Étape 6 — Inscrire les bouncers au LAPI central
Sur chaque VPS avec bouncer (firewall, Caddy, Nginx) :
# Sur LAPI central : créer bouncer key
cscli bouncers add bouncer-vps-1 --auto
# Note la clé
# Sur VPS agent : pointer bouncer vers LAPI central
nano /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
api_url: http://100.64.0.5:8080
api_key: VOTRE_CLE
Étape 7 — Vérifier la communication
# Sur LAPI central
cscli machines list
# Doit lister tous les agents avec validated=true
cscli bouncers list
# Doit lister tous les bouncers
Étape 8 — Tester le partage décisions
# Sur agent VPS-1, simuler attaque
ssh badpass@VPS-1 # x10
# Sur LAPI central
cscli alerts list
# Doit montrer alerte de VPS-1
cscli decisions list --type ban
# Doit montrer ban actif
# Sur VPS-2 (autre agent), vérifier que décision est appliquée
cscli decisions list
# Doit aussi voir le ban (téléchargé du LAPI central)
Étape 9 — Console unifiée
Inscrire le LAPI central à la Console :
cscli console enroll -e context VOTRE_TOKEN_CONSOLE
La Console affiche désormais alertes de tous les agents en vue unifiée.
Étape 10 — Backup centralisé
Sauvegarder régulièrement la base SQLite ou Postgres du LAPI central. Sans elle, perte de l’historique alertes et décisions actives.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Agent ne joint pas LAPI | Tailscale pas up | Vérifier tailscale ping |
| Machine pas validée | Pas de --auto au create |
cscli machines validate agent-vps-X |
| Décisions pas propagées | Bouncer ne pull pas | Vérifier ticker_interval |
| SQLite saturée | 50+ agents sur SQLite | Migrer vers Postgres |
| Auth password échoue | Caractère spécial mal échappé | Réinitialiser password |
| Console n’affiche que LAPI | Agents pas enrollés | Enroll chaque machine séparément |
Adaptation au contexte ouest-africain
Trois précisions. VPN entre datacenters : Hetzner Falkenstein + OVH Roubaix + Africa Data Centres Lagos. Tailscale reliera tous, latence acceptable. Coût total : 1 LAPI central (4,51 €) + 8 agents (déjà existants), aucun coût supplémentaire. Audit consolidé : pour ESN avec multiple clients, vue unifiée des incidents simplifie le reporting trimestriel.
Tutoriels frères
FAQ
Limite agents par LAPI ? SQLite : 20 agents confortables. Postgres : 500+.
Failover LAPI central ? CrowdSec ne supporte pas HA natif. Solution : 2 LAPIs en réplication Postgres + DNS round-robin.
Console suffit pour tout ? Pour < 50 machines oui. Au-delà, scripting cscli.
Multi-tenant ESN ? Pas de tenancy CrowdSec. Workaround : LAPI séparé par client.
Migration SQLite → Postgres ? Procédure documentée, comptez 30 min.
Pour aller plus loin
- 🔝 Retour au pilier : Guide complet CrowdSec 2026
- Documentation Multi-server : docs.crowdsec.net