RousselTMLEARNING

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

TP 4 : Suivre les IP bannies et les attaques avec Prometheus 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
  • Répondre avec cscli
  • Exposer les métriques
  • Interroger Prometheus
  • Alerter sur la santé

Introduction #

Ce que vous allez apprendre dans cette section
  • Répondre avec cscli
  • Exposer les métriques
  • Interroger Prometheus
  • Alerter sur la santé

Contexte. Votre responsable veut savoir chaque semaine combien d'adresses sont bloquées et quelles attaques reviennent.

Prérequis : le TP 1  ·  Durée estimée : 40 min

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Les réponses immédiates

    Avec cscli, dans le labo du TP 1.

    Voir la correction
    docker compose exec crowdsec cscli decisions list
    docker compose exec crowdsec cscli alerts list --since 24h
    docker compose exec crowdsec cscli metrics show acquisition parsers scenarios
    docker compose exec crowdsec cscli metrics show bouncers
  2. 2. Ajouter Prometheus

    Ajoutez ce service au fichier Compose du TP 1.

    Voir la correction
    cat > prometheus.yml <<'EOF'
    global:
      scrape_interval: 15s
    scrape_configs:
      - job_name: crowdsec
        static_configs:
          - targets: ["crowdsec:6060"]
    EOF
    prometheus:
        image: prom/prometheus:v3.16.0
        ports:
          - "127.0.0.1:9090:9090"
        volumes:
          - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
  3. 3. Ouvrir et interroger

    Pourquoi ? Les métriques écoutent sur 127.0.0.1 par défaut : Prometheus, dans un autre conteneur, ne les verrait pas.

    Voir la correction
    docker compose exec crowdsec sh -c "sed -i 's/listen_addr: 127.0.0.1/listen_addr: 0.0.0.0/' /etc/crowdsec/config.yaml"
    docker compose restart crowdsec
    docker compose up -d prometheus
    curl -s http://localhost:6060/metrics | grep -E '^cs_(active_decisions|alerts)'
    curl -s http://localhost:9090/api/v1/query --data-urlencode 'query=sum by (reason) (cs_active_decisions)'
    curl -s http://localhost:9090/api/v1/query --data-urlencode 'query=sum by (source) (rate(cs_parser_hits_ko_total[5m]))'

    Rejouez l’attaque du TP 1 pour voir cs_active_decisions monter.

  4. 4. Alerter

    Écrivez deux règles de santé et validez-les.

    Voir la correction
    groups:
      - name: crowdsec
        rules:
          - alert: CrowdSecLogsNonLus
            expr: sum(rate(cs_filesource_hits_total[10m])) == 0
            for: 15m
            labels: {severity: warning}
            annotations:
              summary: "CrowdSec ne lit plus aucune ligne de log"
          - alert: CrowdSecLogsNonCompris
            expr: sum(rate(cs_parser_hits_ko_total[10m])) > 1
            for: 30m
            labels: {severity: warning}
            annotations:
              summary: "Beaucoup de lignes de log ne sont pas comprises"
    docker compose exec prometheus promtool check rules /etc/prometheus/rules.yml
    # SUCCESS: 2 rules found

Niveau de difficulté : ●●○○○ (2/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

Observabilité de CrowdSec : IP bannies, attaques bloquées, Prometheus et Grafana

Suivre CrowdSec : cscli metrics, IP bannies, attaques détectées, volume bloqué par les bouncers, ...

Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques

Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...

Traefik : les métriques avec Prometheus et OpenTelemetry

Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...

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...

CrowdSec en production : bonnes pratiques

Les réflexes pour exploiter CrowdSec en production : LAPI, clés, faux positifs, base de données, ...

Les types de métriques dans Prometheus

Découvrez en détail les quatre types de métriques supportés par Prometheus (Counter, Gauge, Histo...

CrowdSec ou Fail2ban : quelles différences ?

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

Installer et configurer CrowdSec : paquets, Docker, acquisition

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

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 !