ITSkillsCenter
Cybersécurité

CrowdSec multi-serveurs avec LAPI central : tutoriel 2026

4 min de lecture

📍 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

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité