RousselTMLEARNING

TP · CrowdSec : de la découverte à l'expertise

TP 1 : Installer CrowdSec et détecter un brute force SSH avec correction

La correction est intégrée au TP (Voir les encadrés de couleur vert)

Ce que vous allez apprendre dans ce TP
  • Démarrer CrowdSec avec Docker
  • Déclarer les logs à lire
  • Lire alertes et décisions
  • Interroger la LAPI comme un bouncer

Introduction #

Ce que vous allez apprendre dans cette section
  • Démarrer CrowdSec avec Docker
  • Déclarer les logs à lire
  • Lire alertes et décisions
  • Interroger la LAPI comme un bouncer

Contexte. Votre serveur subit des tentatives de connexion SSH. Vous voulez voir CrowdSec les reconnaître, sans encore rien bloquer.

Prérequis : Docker, Docker Compose  ·  Durée estimée : 40 min

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Le fichier Compose

    Pourquoi ? Les volumes conservent configuration et base. Sans volume sur /var/lib/crowdsec/data, l'image refuse de démarrer.

    Créez compose.yaml.
    Voir la correction
    services:
      crowdsec:
        image: crowdsecurity/crowdsec:v1.8.2
        environment:
          COLLECTIONS: "crowdsecurity/linux crowdsecurity/nginx"
          DISABLE_ONLINE_API: "true"
          TZ: Europe/Paris
        ports:
          - "127.0.0.1:8080:8080"
          - "127.0.0.1:6060:6060"
        volumes:
          - ./acquis.d:/etc/crowdsec/acquis.d:ro
          - ./logs:/logs
          - crowdsec-config:/etc/crowdsec
          - crowdsec-data:/var/lib/crowdsec/data
    volumes:
      crowdsec-config:
      crowdsec-data:
  2. 2. Déclarer les logs

    Créez un fichier d'acquisition par source, puis démarrez.

    Voir la correction
    mkdir -p acquis.d logs && touch logs/auth.log logs/access.log
    cat > acquis.d/ssh.yaml <<'EOF'
    filenames:
      - /logs/auth.log
    labels:
      type: syslog
    EOF
    cat > acquis.d/nginx.yaml <<'EOF'
    filenames:
      - /logs/access.log
    labels:
      type: nginx
    EOF
    docker compose up -d
  3. 3. Vérifier l’installation

    Contrôlez les collections et les sources lues.

    Voir la correction
    docker compose exec crowdsec cscli version
    docker compose exec crowdsec cscli collections list
    docker compose exec crowdsec cscli metrics show acquisition
  4. 4. Simuler une attaque

    Pourquoi ? Seules les nouvelles lignes sont analysées : on les ajoute après le démarrage.

    Ajoutez huit échecs de connexion.
    Voir la correction
    for i in $(seq 1 8); do
      echo "$(LC_ALL=C date '+%b %e %H:%M:%S') srv sshd[100$i]: Failed password for root from 203.0.113.50 port 5$i ssh2" >> logs/auth.log
    done
    sleep 5
    docker compose exec crowdsec cscli alerts list
    docker compose exec crowdsec cscli decisions list

    Résultat attendu : crowdsecurity/ssh-bf et un ban de 4 h sur 203.0.113.50.

  5. 5. Interroger la LAPI

    Créez une clé de bouncer et demandez le statut de deux adresses.

    Voir la correction
    KEY=$(docker compose exec -T crowdsec cscli bouncers add labo -o raw)
    curl -s -H "X-Api-Key: $KEY" "http://127.0.0.1:8080/v1/decisions?ip=203.0.113.50"
    curl -s -H "X-Api-Key: $KEY" "http://127.0.0.1:8080/v1/decisions?ip=192.0.2.1"   # null

    Aucun bouncer n'est installé : rien n'est bloqué. C'est l'objet du TP 3.

Niveau de difficulté : ●○○○○ (1/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 40 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Poser une question

Articles recommandés

Installer et configurer CrowdSec : paquets, Docker, acquisition

Installer CrowdSec avec les paquets ou Docker, comprendre ses fichiers, déclarer les logs à lire,...

Protection des Applications

Découvrez comment sécuriser vos backends contre les abus et les attaques courantes. Guide pratiqu...

CrowdSec ou Fail2ban : quelles différences ?

Comparaison de CrowdSec et Fail2ban : détection, blocage, partage, performances, multi-serveurs, ...

Bouncers CrowdSec pour Nginx, Apache et HAProxy

Mettre en place les bouncers CrowdSec pour Nginx, OpenResty, Apache et HAProxy SPOA : configurati...

Collections, parsers et scénarios CrowdSec

Le Hub, les collections, le pipeline des parsers et les scénarios : installer, comprendre avec cs...

Protéger Traefik avec CrowdSec : le plugin bouncer

Mettre en place le bouncer CrowdSec dans Traefik : plugin, middleware, modes stream et live, IP r...

CrowdSec : comprendre le pare-feu collaboratif

Ce qu'est CrowdSec, comment il détecte et bloque les attaques : Security Engine, parsers, scénari...

Les bouncers CrowdSec : principes et bouncer pare-feu

Comprendre les bouncers CrowdSec : où bloquer, modes live et stream, clés d'API, API des décision...

Bouncers CrowdSec : Cloudflare, équipements réseau, Kubernetes et bouncer sur mesure

Bloquer au CDN avec Cloudflare Workers, alimenter pfSense ou MikroTik avec Blocklist Mirror, prot...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !