Introduction
CrowdSec est un système de cybersécurité collaboratif qui utilise des mécanismes de détection et de prévention pour protéger votre infrastructure. Ce guide vous guidera à travers l'installation de CrowdSec ainsi que de son bouncer iptables sur une machine Debian 12, avec la complétion de la commande cscli
.
Prérequis
- Une machine Debian 12 avec un accès root ou sudo. Toutes les commandes présentées ci-dessous seront à exécuter en tant que
root
. - Une connexion internet active.
Étape 1 : Mise à jour du système
Avant de commencer l'installation, assurez-vous que votre système est à jour.
apt update
apt -y upgrade
Étape 2 : Installation de CrowdSec
-
Ajouter le dépôt CrowdSec
Téléchargez et ajoutez la clé GPG pour vérifier l'intégrité du dépôt :
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | bash
-
Installer CrowdSec
Installez le package CrowdSec :
apt install -y crowdsec
-
Vérifier l'installation
Assurez-vous que CrowdSec est correctement installé et en cours d'exécution :
systemctl status crowdsec
Étape 3 : Installation du Bouncer Iptables
Le bouncer iptables permet à CrowdSec de bloquer les adresses IP malveillantes directement au niveau du pare-feu. C'est lui qui applique les décisions prises par crowdsec.
-
Télécharger et installer le bouncer iptables
apt install -y crowdsec-firewall-bouncer-iptables
-
Configurer le bouncer
L'installation crée un fichier de configuration par défaut à
/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
. Vous pouvez vérifier et modifier ce fichier selon vos besoins. -
Démarrer et activer le bouncer
Assurez-vous que le bouncer est activé au démarrage et qu'il est en cours d'exécution :
systemctl enable crowdsec-firewall-bouncer systemctl start crowdsec-firewall-bouncer
-
Vérifier le bouncer
Vérifiez que le bouncer est correctement installé et en cours d'exécution :
systemctl status crowdsec-firewall-bouncer
Étape 4 : Activer la complétion de la commande cscli
La complétion de commande rend l'utilisation de cscli
plus efficace en permettant l'auto-complétion des commandes et options disponibles.
-
Installer les scripts de complétion
Pour
bash
, vous pouvez utiliser le script de complétion fourni par CrowdSec. Tout d'abord, assurez-vous quebash-completion
est installé :apt install -y bash-completion
-
Activer la complétion
Installez le script de complétion pour
cscli
:cscli completion bash > /etc/bash_completion.d/cscli
-
Recharger la configuration de bash
Rechargez votre configuration de bash pour que la complétion soit prise en compte :
source /etc/bash_completion.d/cscli
-
Vérifier la complétion
Testez la complétion automatique en tapant
cscli
suivi deTab
pour voir les options disponibles.
Étape 5 : Vérification de l'intégration
Pour vérifier que tout fonctionne correctement, vous pouvez consulter les journaux de CrowdSec et du bouncer iptables :
journalctl -u crowdsec
journalctl -u crowdsec-firewall-bouncer
Étape 6 (Option) : Configuration bantime
Par défaut, la décision qui est appliqué par le bouncer iptables est un ban de 4h. Bien évidement, il est possible de modifier ce comportement. Exemple pour passer cette durée à 24h :
-
Editez le fichier /etc/crowdsec/profiles.yaml
decisions: - type: ban duration: 24h
-
Recharger le service crowdsec
systemctl reload crowdsec
Étape 7 (Option) : Enrôlement de la console
Il est possible d'enrôler CrowdSec sur https://app.crowdsec.net/ pour avoir un jolie tableau de bord et une visualisation globale. L'autre intérêt, va être la possibilité d'ajouter des listes d'IP malveillantes maintenues par CrowdSec à nos instances. Coucou la liste disponible pour les JO 2024 🙂
-
Créer un compte sur https://app.crowdsec.net/
Validez votre compte en vous authentifiant sur la plateforme
-
Rendez vous dans le menu "Security Engines" > "Engines"
Cliquez sur "Add Security Engine".
-
Exécutez la commande d'enrôlement sur votre serveur
cscli console enroll -e context YOUR-ENROLL-KEY
Dans un contexte d'automatisation, il est possible de spécifier le nom d'hôte :
cscli console enroll --name $(hostname) YOUR-ENROLL-KEY
Voici l'aide de la commande : https://docs.crowdsec.net/docs/next/cscli/cscli_console_enroll/
-
Acceptez l'enrôlement sur la plateforme web de CrowdSec
-
Redémarrez le service crowdsec sur le serveur
systemctl restart crowdsec
Modification du port de l'API
Par défaut CrowdSec utilise le port TCP 8080 pour accéder à son API. Si ce port est déjà utilisé sur votre serveur, il est important de modifier la configuration de CrowdSec pour que l'API en utilise un autre.
Exemple pour utiliser le port TCP 6660 à la place du TCP 8080 :
-
Modifiez le fichier /etc/crowdsec/config.yaml
api: client: [...] server: [...] listen_uri: 127.0.0.1:6660
-
Modifiez le fichier /etc/crowdsec/local_api_credentials.yaml
url: http://127.0.0.1:6660
-
Modifier le fichier /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
api_url: http://127.0.0.1:6660/
-
Redémarrez les services crowdsec
systemctl restart crowdsec systemctl restart crowdsec-firewall-bouncer
Conclusion
Vous avez maintenant installé et configuré CrowdSec avec le bouncer iptables sur votre machine Debian 12, et activé la complétion de la commande cscli
. Ce système devrait maintenant aider à protéger votre infrastructure contre les adresses IP malveillantes. Assurez-vous de consulter régulièrement les journaux et de maintenir votre système à jour pour garantir une protection optimale.
3 commentaires