Initial vault setup
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
---
|
||||
title: CrowdSec
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, networking, security, ids, ips, bouncer, go, collaborative]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=networking, https://github.com/crowdsecurity/crowdsec]
|
||||
---
|
||||
|
||||
# 🛡️ CrowdSec
|
||||
|
||||
> **Moteur de sécurité comportementale et collaborative** : analyse logs, détecte les attaques, bloque via bouncer, et partage les IOC avec la communauté. Le successeur moderne et open source de Fail2Ban, avec une dimension crowd-sourced.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [crowdsec.net](https://crowdsec.net) |
|
||||
| **GitHub** | [crowdsecurity/crowdsec](https://github.com/crowdsecurity/crowdsec) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Go |
|
||||
| **Étoiles** | 9 800 ⭐ |
|
||||
| **Dernière MAJ** | 2026-05-28 |
|
||||
| **Catégorie** | [[cat-networking\|Networking]] |
|
||||
|
||||
## Description
|
||||
|
||||
CrowdSec est un **security engine** écrit en Go qui reprend la philosophie de [[app-fail2ban]] (parser les logs, détecter des patterns, bloquer) mais y ajoute trois innovations majeures : (1) une **logique de décision** plus fine via un DSL de scénarios, (2) un **bouncer** qui applique la décision (ban iptables, nginx, Cloudflare…), et (3) un **partage d'IOC anonymisé** avec la communauté. Quand votre instance bannit une IP qui scanne votre SSH, cette IP est signalée à l'API centrale et protégée sur des milliers d'autres instances en quelques secondes.
|
||||
|
||||
L'architecture est modulaire : un **agent** lit les logs et déclenche des alertes, des **scénarios** (collections YAML) décrivent les comportements suspects, un **bouncer** (plugin) applique la remédiation. Plus de 400 scénarios couvrent SSH, HTTP, WordPress, nginx, Traefik, Linux, Kubernetes, etc. La console web [[app-crowdsec-manager]] offre un dashboard de visualisation, alertes et gestion multi-instances.
|
||||
|
||||
Le modèle économique est **open core** : le moteur est MIT, certains bouncers avancés (API premium, blocklists géographiques, console SaaS) sont payants. Pour un homelab, l'**édition community** est largement suffisante.
|
||||
|
||||
## Installation
|
||||
|
||||
### Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
crowdsec:
|
||||
image: crowdsecurity/crowdsec:latest
|
||||
container_name: crowdsec
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- COLLECTIONS=crowdsecurity/sshd crowdsecurity/nginx crowdsecurity/linux crowdsecurity/wordpress
|
||||
- PARSE_ACQUIS_TIMEOUT=2s
|
||||
volumes:
|
||||
- cs-config:/etc/crowdsec
|
||||
- cs-data:/var/lib/crowdsec/data
|
||||
- /var/log:/var/log:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- monitoring
|
||||
|
||||
# Bouncer qui bloque au niveau pare-feu
|
||||
bouncer-traefik:
|
||||
image: fbonalair/crowdsec-traefik-bouncer:latest
|
||||
container_name: crowdsec-bouncer
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- CROWDSEC_BOUNCER_API_KEY=${CROWDSEC_BOUNCER_API_KEY}
|
||||
- CROWDSEC_AGENT_HOST=crowdsec:8080
|
||||
networks:
|
||||
- monitoring
|
||||
|
||||
volumes:
|
||||
cs-config:
|
||||
cs-data:
|
||||
|
||||
networks:
|
||||
monitoring:
|
||||
driver: bridge
|
||||
```
|
||||
|
||||
### Installation manuelle (Debian)
|
||||
|
||||
```bash
|
||||
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
|
||||
sudo apt install crowdsec
|
||||
sudo cscli collections install crowdsecurity/sshd crowdsecurity/nginx
|
||||
sudo systemctl enable --now crowdsec
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Fichier principal : `/etc/crowdsec/config.yaml`. Acquisition des logs (exemple) :
|
||||
|
||||
```yaml
|
||||
source: journalctl
|
||||
journalctl_filter:
|
||||
- _SYSTEMD_UNIT=sshd.service
|
||||
labels:
|
||||
type: syslog
|
||||
---
|
||||
source: file
|
||||
filenames:
|
||||
- /var/log/nginx/access.log
|
||||
- /var/log/nginx/error.log
|
||||
labels:
|
||||
type: nginx
|
||||
```
|
||||
|
||||
Commandes CLI (`cscli`) :
|
||||
|
||||
```bash
|
||||
cscli decisions list # bannissements actifs
|
||||
cscli decisions delete --id 42 # débannir
|
||||
cscli alerts list # alertes brutes
|
||||
cscli hub list # scénarios disponibles
|
||||
cscli hub install crowdsecurity/wordpress
|
||||
```
|
||||
|
||||
API exposée sur `localhost:8080`, à ne pas exposer publiquement.
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open Source
|
||||
|
||||
- [[app-fail2ban]] — Ancêtre, plus simple, pas collaboratif, Python
|
||||
- [[app-crowdsec-manager]] — Console web officielle (visualisation)
|
||||
- **Wazuh** (fork OSS d'OSSEC) — SIEM complet, plus lourd
|
||||
- **Suricata / Zeek** — NIDS réseau, niveau paquet
|
||||
- **OSSEC** — HIDS historique (C, plus de développement)
|
||||
|
||||
### Propriétaire (ce que CrowdSec remplace)
|
||||
|
||||
- **Cloudflare Bot Management** — WAF commercial, pay-as-you-go
|
||||
- **AWS GuardDuty** — IDS managé, facturation au Go
|
||||
- **Datadog Security Monitoring** — SaaS d'observabilité sécurité
|
||||
- **Fail2ban Cloud (Cognito)** — Fork commercial de Fail2Ban
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **Inscrire son instance** sur crowdsec.net (compte gratuit) pour bénéficier du partage d'IOC mondial.
|
||||
- **Ne pas exposer l'API 8080** sur Internet : la clé API sert à authentifier les bouncers.
|
||||
- **Choisir ses collections avec soin** : trop de scénarios = faux positifs et charge CPU.
|
||||
- **Whitelist** vos IP de monitoring/administration dans `postoverflows/s02-enrich/whitelist.yaml`.
|
||||
- **Surveiller la latence API** : si crowdsec.net est down, la décision locale continue mais l'enrichissement IOC est KO.
|
||||
- **Bouncer Traefik** : protège tous les services derrière Traefik sans config par service.
|
||||
- **Consulter le dashboard** : la console [[app-crowdsec-manager]] expose le top des attaques, l'efficacité des scénarios et les faux positifs.
|
||||
|
||||
## Ressources
|
||||
|
||||
- [Site officiel](https://crowdsec.net)
|
||||
- [Documentation](https://docs.crowdsec.net)
|
||||
- [Hub de scénarios](https://hub.crowdsec.net)
|
||||
- [GitHub](https://github.com/crowdsecurity/crowdsec)
|
||||
- [Forum communautaire](https://discourse.crowdsec.net)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-networking|Networking]] — Catégorie parente
|
||||
- [[cat-security|Sécurité]] — Catégorie transversale
|
||||
- [[app-fail2ban]] — Comparaison directe avec CrowdSec
|
||||
- [[app-crowdsec-manager]] — Console web d'administration
|
||||
- [[app-traefik]] — Reverse-proxy pair avec le bouncer
|
||||
- [[recettes-docker-compose|Recettes Docker Compose]]
|
||||
- [[securisation-home-lab]] — Stratégie défense en profondeur
|
||||
Reference in New Issue
Block a user