CrowdSec (bans de la porte d'entrée)
CrowdSec tourne sur la VM 101 Coolify : il lit l'access log de Traefik
(/data/coolify/proxy/access.log) et les logs SSH, détecte les comportements
malveillants (scans, brute-force, exploits connus) et le bouncer pare-feu
bannit l'IP au niveau iptables — chaînes INPUT et DOCKER-USER, cette
dernière étant indispensable pour couvrir le 80/443 publié par Docker.
Installation et configuration : ansible/playbooks/crowdsec.yml (repo
infra). Particularité : la LAPI écoute sur 127.0.0.1:8081 (le 8080 est
pris par le conteneur Traefik). Prérequis : access log activé dans le compose
du proxy (UI Coolify → Servers → Proxy → Configuration).
Toutes les commandes ci-dessous s'exécutent sur la VM :
ssh root@10.9.73.90 (ou depuis dev-laravel).
Consulter
cscli decisions list # IP actuellement bannies
cscli alerts list # détections récentes (même sans ban)
cscli metrics # volumes parsés par source de log
ipset list crowdsec-blacklists-0 | head # le set réellement appliqué
Débannir une IP (faux positif)
cscli decisions delete --ip 1.2.3.4
Pour ne plus jamais bannir une IP (ex. IP fixe d'un proche, sonde de monitoring) :
cscli allowlists create perso -d "IP de confiance"
cscli allowlists add perso 1.2.3.4
Tester que le bannissement marche
cscli decisions add --ip 203.0.113.99 --duration 3m --reason "test"
sleep 15 && ipset list crowdsec-blacklists-0 | grep 203.0.113.99
cscli decisions delete --ip 203.0.113.99
(203.0.113.0/24 est une plage réservée à la documentation — jamais routée.)
Points d'attention
- Ne jamais tester avec l'IP du VPN/LAN : un ban de
10.9.73.0/24ou du sous-réseau WireGuard te couperait l'accès. En cas d'auto-ban : console Proxmox de la VM 101 →cscli decisions delete --ip <ton-ip>. - Les collections installées :
traefik,base-http-scenarios,http-cve,sshd. Pour en chercher d'autres :cscli hub list. - Après une mise à jour de Coolify, vérifier que les 3 lignes
accesslogsont toujours dans la config du proxy (sinon CrowdSec ne voit plus rien).