Protéger Guacamole avec Crowdsec

Dans cet article, je vous propose un scénario anti brute-force pour protéger Guacamole derrière un reverse proxy Nginx avec Crowdsec.

Voici le code du fichier yaml :

Lien du dépôt : RDR-IT / Crowndsec · GitLab

Prérequis au fonctionnement du scénatio

Le scénario a été testé et valider dans l’environnement suivant :

  • Guacamole sur un serveur dédié
  • Crowdsec installé sur un serveur dédié faisant office de reverse proxy avec Nginx.

Installation

Pour utiliser le scénario, créer un fichier yaml dans le dossier /etc/crowdsec/scenarios sur votre serveur et coller le code dedans.

Recharger Crowdsec pour la prise en compte :

sudo systemctl reload crowdsec

Vérifier la prise en compte du scénario avec la commande :

sudo cscli scenarios list

Fonctionnement du scénario

À chaque chargement de page, un appel à l’API de Guacamole est effectué avec la méthode POST et ceci même lors du chargement du formulaire d’authentification.

Le scénario analyse ces requêtes pour voir le résultat (code de retour) de la requête à l’API, si l’utilisateur n’est pas authentifié, le code est 403.

Le ban de l’adresse IP a lieu après 10 erreurs 403 sur une durée de 60 secondes.