Aller au contenu

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/24 ou 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 accesslog sont toujours dans la config du proxy (sinon CrowdSec ne voit plus rien).