Skip to content

Instantly share code, notes, and snippets.

@stephdl
Last active December 23, 2025 13:20
Show Gist options
  • Select an option

  • Save stephdl/141284093b54151ad388e94dea7c31c4 to your computer and use it in GitHub Desktop.

Select an option

Save stephdl/141284093b54151ad388e94dea7c31c4 to your computer and use it in GitHub Desktop.
Installer crowdsec sur debian avec son bouncer

Guide d'Installation CrowdSec sur Debian

Table des matières

  1. Prérequis
  2. Installation du Repository
  3. Installation de CrowdSec
  4. Installation du Bouncer iptables
  5. Paramétrage des Collections
  6. Gestion des Collections
  7. Dépannage utile

CrowdSec est un système de détection et blocage d'intrusions open-source qui analyse vos logs en temps réel pour identifier les attaques (brute-force, SQL injection, scanning, etc.). Il crée automatiquement des décisions de blocage (ban des IPs malveillantes) et les applique via iptables/nftables ou d'autres bouncers. C'est comme un pare-feu comportemental collaboratif : il protège votre serveur ET partage les menaces détectées avec une communauté pour protéger tous les autres.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un système Debian 10 ou supérieur
  • Un accès root ou des droits sudo
  • Une connexion Internet stable
  • iptables installé (généralement présent par défaut)

Installation du Repository

Ajouter la clé GPG de CrowdSec

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash

Cette commande télécharge et exécute le script d'installation automatique du repository CrowdSec. Le script :

  • Ajoute la clé GPG officielle
  • Configure les sources apt
  • Met à jour le cache des packages

Vérifier l'ajout du repository

cat /etc/apt/sources.list.d/crowdsec_crowdsec.list

Vous devriez voir une ligne pointant vers le repository packagecloud.

Mettre à jour les listes de packages

sudo apt update

Installation de CrowdSec

Installer le package principal

sudo apt install crowdsec

Démarrer le service CrowdSec

sudo systemctl start crowdsec
sudo systemctl enable crowdsec

Vérifier le statut

sudo systemctl status crowdsec

Pour vérifier que CrowdSec fonctionne correctement :

sudo cscli version

Cela affiche la version installée et l'état du service.

Installation du Bouncer iptables

Le bouncer iptables applique les décisions de CrowdSec en bloquant les IPs via iptables.

Installer le bouncer

sudo apt install crowdsec-firewall-bouncer-iptables

Configurer le bouncer

Le fichier de configuration se trouve à :

/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml

Vérifier la configuration par défaut :

cat /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml

Démarrer le bouncer

sudo systemctl start crowdsec-firewall-bouncer.service
sudo systemctl enable crowdsec-firewall-bouncer.service

Vérifier le statut

sudo systemctl status crowdsec-firewall-bouncer.service

Vérifier les bouncers actifs

sudo cscli bouncers list

Paramétrage des Collections

Les collections sont des ensembles de parseurs, scénarios et postprocesseurs. CrowdSec les utilise pour détecter les menaces.

Fichier de configuration principal

La configuration de CrowdSec se trouve à :

/etc/crowdsec/config.yaml

Structure des acquisitions

la commande cscli setup permet de definir quels logs sont lus

Vous pourrez les verifier

ls -lR /etc/crowdsec/acquis.d/

cette commande devra etre faite apres chaque installation d'un service, les fichiers d'acquisition servent a donner la cible des logs a lire.

Exemple de configuration pour un serveur debian:

cat /etc/crowdsec/acquis.d/setup.sshd.yaml 
#
# Configuration generated by "cscli setup".
# Please check your non-generated configuration files to make sure
# the log sources are not acquired twice. This includes
# the file acquis.yaml created by crowdsec <= 1.7.0.
#
# cscli-checksum: 2536c85258d4efc265e4627ced7e2903

journalctl_filter:
  - _SYSTEMD_UNIT=ssh.service
labels:
  type: syslog
source: journalctl
cat /etc/crowdsec/acquis.d/setup.postfix.yaml 
#
# Configuration generated by "cscli setup".
# Please check your non-generated configuration files to make sure
# the log sources are not acquired twice. This includes
# the file acquis.yaml created by crowdsec <= 1.7.0.
#
# cscli-checksum: 63dc0aef180c8549bb3e67535fc9a977

filenames:
  - /var/log/mail.log
  - /var/log/maillog
labels:
  type: syslog
source: file
cat /etc/crowdsec/acquis.d/setup.linux.yaml 
#
# Configuration generated by "cscli setup".
# Please check your non-generated configuration files to make sure
# the log sources are not acquired twice. This includes
# the file acquis.yaml created by crowdsec <= 1.7.0.
#
# cscli-checksum: a380e4b3fc5e43e510e8287a3fcbe374

filenames:
  - /var/log/messages
  - /var/log/syslog
  - /var/log/kern.log
labels:
  type: syslog
source: file

Vérifier la configuration

sudo cscli config show

Cela affiche la configuration globale active.

Gestion des Collections

Lister toutes les collections disponibles

Pour voir les collections disponibles dans le hub CrowdSec :

sudo cscli collections list --all

Cela affiche :

  • Les collections installées (marquées d'une coche ✓)
  • Les collections disponibles à installer
  • La description de chaque collection
  • L'auteur et la version

Consulter les détails d'une collection

sudo cscli collections inspect <nom-collection>

Exemple :

sudo cscli collections inspect crowdsecurity/apache2

Cela affiche les composants inclus dans la collection (parseurs, scénarios, etc.).

Installer une collection

Installation simple

Pour installer une collection officielle de CrowdSec :

sudo cscli collections install crowdsecurity/apache2

Installer plusieurs collections

sudo cscli collections install crowdsecurity/apache2 crowdsecurity/linux crowdsecurity/nginx

Collections courantes recommandées

  • crowdsecurity/apache2 : Détection pour Apache
  • crowdsecurity/nginx : Détection pour Nginx
  • crowdsecurity/sshd : Détection pour SSH
  • crowdsecurity/linux : Détection pour logs Linux génériques

Recharger les configurations après installation

Après avoir installé une nouvelle collection, rechargez CrowdSec :

sudo systemctl reload crowdsec

Ou redémarrez complètement :

sudo systemctl restart crowdsec

Désinstaller une collection

sudo cscli collections remove <nom-collection>

Exemple :

sudo cscli collections remove crowdsecurity/apache2

Mettre à jour les collections

Mise à jour de toutes les collections :

sudo cscli hub update
sudo cscli collections upgrade --all

Mise à jour d'une collection spécifique :

sudo cscli collections upgrade <nom-collection>

Vérifier l'état des collections

Pour voir quels parseurs et scénarios sont chargés :

sudo cscli parsers list
sudo cscli scenarios list

Dépannage utile

Voir les logs de CrowdSec

sudo tail -f /var/log/crowdsec.log

Voir les logs du bouncer

sudo tail -f /var/log/crowdsec-firewall-bouncer.log

Tester la détection

Vous pouvez scanner intentionnellement vos logs pour vérifier que les collections fonctionnent :

sudo cscli metrics

Vérifier les règles iptables appliquées

sudo iptables -L -n -v | grep -i crowd

Voir les ip bannies

sudo ipset -L

unban une ip

root@ns3081840:~# cscli decisions list 
╭────────┬──────────┬───────────────────┬───────────────────────────┬────────┬─────────┬───────────────────────────┬────────┬────────────┬──────────╮
│   ID   │  Source  │    Scope:Value    │           Reason          │ Action │ Country │             AS            │ Events │ expiration │ Alert ID │
├────────┼──────────┼───────────────────┼───────────────────────────┼────────┼─────────┼───────────────────────────┼────────┼────────────┼──────────┤
│ 120041 │ crowdsec │ Ip:174.138.5.139  │ crowdsecurity/ssh-slow-bf │ ban    │ NL      │ 14061 DIGITALOCEAN-ASN    │ 13     │ 3h45m19s   │ 49       │
│ 120040 │ crowdsec │ Ip:178.128.240.16 │ crowdsecurity/ssh-slow-bf │ ban    │ NL      │ 14061 DIGITALOCEAN-ASN    │ 14     │ 3h20m37s   │ 48       │
│ 120039 │ crowdsec │ Ip:187.33.154.222 │ crowdsecurity/ssh-bf      │ ban    │ ES      │ 49635 Cloudi Nextgen Sl   │ 7      │ 3h5m15s    │ 47       │
│ 120038 │ crowdsec │ Ip:164.92.221.79  │ crowdsecurity/ssh-slow-bf │ ban    │ NL      │ 14061 DIGITALOCEAN-ASN    │ 12     │ 2h39m46s   │ 46       │
│ 105037 │ crowdsec │ Ip:195.178.110.30 │ crowdsecurity/ssh-slow-bf │ ban    │ BG      │ 48090 Techoff Srv Limited │ 23     │ 49m41s     │ 44       │
│ 90036  │ crowdsec │ Ip:134.199.195.98 │ crowdsecurity/ssh-slow-bf │ ban    │ US      │ 14061 DIGITALOCEAN-ASN    │ 12     │ 1m28s      │ 42       │
╰────────┴──────────┴───────────────────┴───────────────────────────┴────────┴─────────┴───────────────────────────┴────────┴────────────┴──────────╯
1 duplicated entries skipped
root@ns3081840:~# cscli decisions remove -i 174.138.5.139
INFO 1 decision(s) deleted    

Ressources additionnelles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment