Sortie de CrowdSec 1.0.0

Tutoriel d’utilisation
L’équipe est fière de vous annoncer la sortie officielle de CrowdSec v.1.0.0 et de vous présenter toutes les améliorations apportées par cette nouvelle version ainsi que ses nouvelles fonctionnalités.

> La petite nouvelle : l’API locale 

L’architecture de CrowdSec 1.0 a évolué avec l’arrivée d’un service API Local REST.

Tous les composants de CrowdSec (daemon, client et bouncers) peuvent communiquer entre eux via une API REST, plutôt que de lire/écrire directement dans la base de données.

Seul le service API local interagit avec la base de données (SQLite, PostgreSQL ou MySQL) et cela comporte plusieurs avantages notamment au niveau des bouncers qui peuvent maintenant fonctionner en indépendance totale, utilisant l’API et non plus des accès directs à la base de données. Ainsi, les futurs changements dans le schéma de base de données n’auront plus d’impacts sur les bouncers.

Ce changement permet aussi de mettre en place des configurations distribuées sur plusieurs machines de manière totalement transparente. On peut imaginer une machine faisant tourner l’API locale, différents agents CrowdSec analysant les logs sur plusieurs machines et des bouncers également sur d’autres machines.

Cela apporte une bonne modularité au système CrowdSec et une certaine pérennité à la suite du projet et des déploiements chez ses utilisateurs.

> Installation de CrowdSec

Ce tutoriel sera pour mettre en place CrowdSec sur votre propre serveur (virtualisé ou non), en l’occurrence ici un Ubuntu 64bits, mais c’est également faisable sous Debian et RedHat.

On installe d’abord les dépendances :

 

 

 

Ensuite on va télécharger CrowdSec et lancer le script d’installation :

 

 

 

 

 

 

 

Une autre option est de passer par notre page GitHub et récupérer la dernière release du projet puis la décompresser.

L’assistant se démarre comme ceci :

Un assistant en curl va alors débuter. Il détecte les services en cours qui génèrent des logs et vous demande de sélectionner ceux dont vous ne voulez pas surveiller l’activité.

Dans ce cas, il a trouvé les logs Nginx, SSH et ceux du système Linux utilisé.

Il vous sera ensuite proposé de choisir les collections que vous souhaitez installer. Les collections sont des parseurs et scénarios pré-définis propres à vos outils. Ici on sélectionne donc la collection Linux et la collection Nginx.

À la fin de la procédure, CrowdSec est donc en place, notamment avec le daemon « CrowdSec » qui est donc capable de lire, parser, enrichir et appliquer les nouvelles règles heuristiques à votre système.

L’outil CrowdSec se compose de trois éléments principaux :

  • Le service CrowdSec, qui est le service persistant (daemon) qui effectue toute la surveillance des logs, suit les attaques, etc.
  • L’outil de ligne de commande, qui est l’interface CLI permettant d’interagir avec le service pour régler la configuration, bannir des IPs, obtenir des stats…etc
  • Et les bouncers, qui sont les intégrations avec d’autres outils qui permettent d’effectuer des actions comme bloquer une IP chez Cloudflare ou au niveau de votre service SSH.

> Lancer CrowdSec

Pour démarrer le démon CrowdSec, utilisez la commande :

> Interagir avec CrowdSec

Ensuite, pour utiliser CrowdSec, tout se passe via leur client :

Les commandes du client CrowdSec sont nombreuses, en voici une liste ci-dessous :

> Observer l’activité

À l’aide de la commande cscli, vous pouvez afficher les métriques récoltées par l’outil.

Cela vous affichera un tableau contenant de nombreuses informations comme le nombre d’attaques dans les différentes collections (modules)

  • http-backdoors-attempts
  • http-bad-user-agent
  • http-crawl-non_statics
  • http-path-traversal-probing
  • http-probing
  • http-sensitive-files
  • http-xss-probing
  • ssh-bf
  • ssh-bf-user-enum

> Activer l’interface web

Crowdsec propose une interface web Metabase qui vous permettra de visualiser l’ensemble des IPs analysées et les scénarios appliqués. Pour lancer cette interface, vous devrez installer Docker comme ceci :

Puis initialiser le dashboard avec la commande :

Vous aurez alors en retour un point d’accès avec un port (http://IP:3000) ainsi qu’un login et un mot de passe. Connectez-vous à l’interface web puis entrez le login et le mot de passe.

> Bannir une IP

Avec le client CrowdSec, vous pouvez avec la commande « ban », ajouter ou supprimer manuellement des IPs à bloquer. Et la commande « ban list » vous permet de lister les IPs bloquées sur votre système.

Ajouter un ban manuellement pendant 24 heures :

Ajouter un ban sur une ip et réclamer un captcha / un ban / un throttle :

Ajouter un ban sur une rangée complète d’IPs :

> Lister les règles de blocage

Pour visualiser vos règles :

> Retirer un blocage

Vous pouvez défaire vos blocages manuels. Si vous voulez supprimer le ban de l’IP 1.2.3.4 :

Supprimer le ban de la rangée 1.2.3.0/24 :

Ou pour supprimer toutes les règles de bannissement exigeant un captcha :

> Installation d’un bouncer

Par défaut, CrowdSec ne bloque pas les IPs détectées alors si vous voulez les bloquer, il faudra vous rendre sur le hub et installer le bouncer de votre choix (un bloqueur si vous préférez).

On trouve des bouncers pour WordPress, Cloudflare, Nginx ou pour des Firewalls comme iptables ou nftables.

Ici le test se fera sur cs-firewall-bouncer qui va nous permettre de « connecter » CrowdSec avec iptables. On l’installe comme ceci :

Puis on télécharge le bouncer Firewall de CrowdSec via l’archive ici. Et pour l’installer :

Avant de lancer le service, pensez bien à éditer le fichier de configuration suivant pour y ajouter l’URL de l’API et la clé qui lui correspond. Pensez également à bien préciser le mode choisi : iptables ou nftables.

L’URL de l’API est http://localhost:8080 et pour générer une clé API toute neuve, entrez la commande suivante :

Puis lancez le service du bouncer :

Et pour vérifier la status de votre bouncer utilisez le paramètre « status » comme ceci :

Puis, pour consulter la liste des bouncers connectés à l’API local, faites :

> Installer des parseurs, des collections, des scénarios etc.

Vous pouvez également visualiser les scénarios / parseurs en place, en installer de nouveaux, les supprimer ou les mettre à jour.

Pour installer une nouvelle configuration, vous pouvez le faire en ligne de commande. Par exemple, pour installer le scénario ssh-bf présent sur le Hub :

N’oubliez pas de relancer CrowdSec :

Vous pouvez ensuite visualiser les scénarios en place :

Et pour obtenir le détail d’un scénario en particulier :

Pour mettre à jour un scénario :

Enfin, pour supprimer un scénario :

N’oubliez pas de relancer CrowdSec :

> Mise à jour

Pour mettre à jour l’ensemble de vos scénarios, parseurs, collections et postoverflows via le Hub, utilisez la commande :

En procédant ainsi, CrowdSec ne se contente pas de détecter les attaques en utilisant vos logs, mais peut également déclencher une palette d’actions une fois que quelque chose est détecté, comme par exemple.

  • Bloquer les IPs dans Cloudflare
  • Exécuter vos propres scripts
  • Établir un blocage dans netfilter / iptables
  • Refuser l’accès d’une IP à Nginx
  • Bloquer un accès à votre WordPress
  • Et d’autres

> Gérer les alertes

Les alertes peuvent également être listées comme ceci :

Pour obtenir plus de détails sur une alerte en particulier, il faut utiliser la commande suivante en remplaçant le X par l’ID de l’alerte :

Et pour supprimer une alerte :

Pour plus de détails, la documentation technique de CrowdSec peut être consultée ici.

Nous serions heureux de connaître votre avis sur cette nouvelle version. Voici quelques liens utiles :

Source: Korben.info (https://korben.info)

Related Posts

Privacy Preferences
When you visit our website, it may store information through your browser from specific services, usually in form of cookies. Here you can change your privacy preferences. Please note that blocking some types of cookies may impact your experience on our website and the services we offer.