CrowdSec est une solution de sécurité collaborative qui permet de détecter et bloquer automatiquement les tentatives d’intrusion sur vos serveurs. Dans ce guide, nous allons voir comment installer, configurer et utiliser CrowdSec efficacement.
Qu’est-ce que CrowdSec ?
CrowdSec est un système de détection d’intrusion (IDS) moderne qui utilise l’intelligence collective pour protéger vos serveurs. Contrairement aux solutions traditionnelles, CrowdSec partage les informations sur les menaces avec la communauté, créant ainsi une base de données collaborative de signatures d’attaques.
Installation de CrowdSec
Ajout du dépôt et installation
# Ajouter le dépôt CrowdSec
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
# Installer CrowdSec
sudo apt install crowdsec
Configuration initiale
Pour relancer la configuration après installation :
/usr/share/crowdsec/wizard.sh -c
Configuration avancée
Fichier de configuration local
Créez ou modifiez le fichier /etc/crowdsec/config.yaml.local
pour personnaliser votre configuration. Voici un exemple qui désactive l’agent Prometheus :
#
# doc:
# https://docs.crowdsec.net/docs/configuration/crowdsec_configuration
#
common:
log_level: info
prometheus:
enabled: false
db_config:
use_wal: true
Installation d’un Bouncer
Important : CrowdSec seul ne bloque aucune adresse IP. Pour bloquer effectivement les adresses malveillantes, vous devez installer un bouncer.
Bouncer IPTables
sudo apt install crowdsec-firewall-bouncer-iptables
Application des changements
sudo systemctl restart crowdsec
Vous pouvez trouver d’autres bouncers sur le hub CrowdSec.
Test du système
Simulation d’une attaque
Pour tester si le blocage fonctionne, exécutez plusieurs fois cette requête depuis une machine externe :
curl -I https://www.votre-site.fr -H "User-Agent: OpenVAS"
Vérification du blocage
Vérifiez que l’IP est bien bannie :
sudo cscli decisions list
Commandes utiles
Gestion des décisions
Voir les IP bannies :
sudo cscli decisions list
Débloquer une IP spécifique :
sudo cscli decisions delete --ip x.x.x.x
Supprimer toutes les décisions :
sudo cscli decisions delete --all
Vérification du firewall
Voir les règles iptables :
sudo iptables -L -n -v
Lister les IP bannies IPv4 :
sudo ipset list crowdsec-blacklists
Lister les IP bannies IPv6 :
sudo ipset list crowdsec6-blacklists
Gestion des collections et mises à jour
Lister les collections :
sudo cscli collections list
Mettre à jour les scénarios :
sudo cscli hub update
sudo cscli hub upgrade
Scénarios et règles de détection
Principe des scénarios
Les scénarios CrowdSec utilisent le concept de “leaky bucket” avec trois paramètres principaux :
- capacity : nombre d’événements dans le bucket avant débordement
- leakspeed : fréquence à laquelle un événement quitte le bucket
- blackhole : durée de silence du bucket après débordement
Scénarios WordPress
CrowdSec fournit trois scénarios spécialement conçus pour WordPress :
1. Détection de brute force sur wp-login.php
type: leaky
name: crowdsecurity/http-bf-wordpress_bf
description: "detect wordpress bruteforce"
filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.file_name == 'wp-login.php' && evt.Parsed.verb == 'POST' && evt.Meta.http_status == '200'"
groupby: evt.Meta.source_ip
capacity: 5
leakspeed: 10s
blackhole: 5m
2. Détection d’énumération d’utilisateurs
type: leaky
name: crowdsecurity/http-wordpress_user-enum
description: "detect wordpress probing : authors enumeration"
filter: "evt.Meta.log_type == 'http_access-log' && Upper(evt.Parsed.http_args) contains 'AUTHOR='"
groupby: evt.Meta.source_ip
capacity: 5
leakspeed: "10s"
blackhole: 5m
3. Détection de sondage wp-config.php
type: leaky
name: crowdsecurity/http-wordpress_wpconfig
description: "detect wordpress probing : variations around wp-config.php by wpscan"
filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.file_name contains 'wp-config.php'"
groupby: evt.Meta.source_ip
capacity: 5
leakspeed: "10s"
blackhole: 5m
API locale et intégration
CrowdSec dispose d’une API locale (LAPI) qui permet d’interagir programmatiquement avec le système. Cependant, l’ajout de décisions via l’API peut être complexe.
Ressources utiles
Alternatives et automatisation
Pour automatiser l’installation de CrowdSec, vous pouvez utiliser des outils comme Ansible. Cette approche est particulièrement utile pour déployer CrowdSec sur plusieurs serveurs.
Conclusion
CrowdSec représente une approche moderne et collaborative de la sécurité des serveurs. Grâce à sa facilité d’installation et sa configuration flexible, il constitue un excellent complément à votre stratégie de sécurité. N’hésitez pas à explorer les différents bouncers et scénarios disponibles sur le hub pour adapter CrowdSec à vos besoins spécifiques.
La force de CrowdSec réside dans sa communauté : plus il y a d’utilisateurs, plus la détection des menaces est efficace pour tous. Rejoignez cette communauté et contribuez à rendre Internet plus sûr !
Pour aller plus loin, consultez la documentation officielle CrowdSec et explorez le hub des scénarios et bouncers.