URL: https://linuxfr.org/news/sortie-de-crowdsec-1-0-tutoriel-d-utilisation Title: Sortie de CrowdSec 1.0 : tutoriel d’utilisation Authors: CrowdSec Ysabeau đŸ§¶, BenoĂźt Sibaud et Davy Defaud Date: 2020ćčŽ12月13æ—„T13:31:37+01:00 License: CC By-SA Tags: linux, cybersĂ©curitĂ©, sĂ©curitĂ©, communautĂ©, tutoriel, open_source et crowdsec Score: 21 Le mois dernier, [nous vous prĂ©sentions CrowdSec](https://linuxfr.org/news/crowdsec-la-cybersecurite-collaborative-open-source-et-gratuite-pour-linux), un logiciel de sĂ©curitĂ© gratuit et open source dĂ©ployable sur votre serveur, qui permet de dĂ©tecter et bloquer les adresses IP malveillantes et de les partager avec toute la communautĂ© d’utilisateurs. [Alors que la release de la v.1.0 est dĂ©sormais disponible](https://github.com/crowdsecurity/crowdsec/releases/tag/v1.0.0), et en attendant le paquet Debian qui arrivera trĂšs bientĂŽt, nous vous invitons Ă  dĂ©couvrir les nouvelles fonctionnalitĂ©s de la solution. ---- [CrowdSec : la cybersĂ©curitĂ© collaborative, open source et gratuite pour GNU/Linux](https://linuxfr.org/news/crowdsec-la-cybersecurite-collaborative-open-source-et-gratuite-pour-linux) [CrowdSec 1.0](https://github.com/crowdsecurity/crowdsec/releases/tag/v1.0.0) [Documentation technique](https://doc.crowdsec.net/?_ga=2.45763236.1005702224.1607860915-2134917204.1597756444) ---- 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 prĂ©sente plusieurs avantages notamment concernant les _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_. ![Le schĂ©ma de la base de donnĂ©es](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/Capture-de%CC%81cran-2020ćčŽ12月10æ—„-a%CC%80-17.01.06.png?zoom=2&resize=564%2C361&ssl=1) 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 journaux sur plusieurs machines et des _bouncers_ Ă©galement sur d’autres machines. Cela apporte une meilleure modularitĂ© au systĂšme CrowdSec et une certaine pĂ©rennitĂ© Ă  la suite du projet et des dĂ©ploiements chez ses utilisateurs. Installer CrowdSec ================== Ce tutoriel est pour mettre en place CrowdSec sur votre propre serveur (virtualisĂ© ou non), en l’occurrence ici un Ubuntu 64 bits, mais c’est Ă©galement rĂ©alisable sous Debian et Red Hat. On installe d’abord les dĂ©pendances avec la commande : sudo apt-get installa bash gettext whiptail curl wget Ensuite on va tĂ©lĂ©charger CrowdSec et lancer le script d’installation : > curl - https://api.github.com/repos/crowdsecurity/crowdsec tar xvzf crowdsec-release.tgz cd crowdsec-v* sudo ./wizard.sh -i Une autre option est de passer par le dĂ©pĂŽt GitHub et [rĂ©cupĂ©rer la derniĂšre version publiĂ©e du projet](https://github.com/crowdsecurity/crowdsec/releases/tag/v1.0.0) puis la dĂ©compresser. L’assistant se dĂ©marre via la commande ceci : sudo ./wizard.sh -i Un assistant en curl va alors dĂ©buter. Il dĂ©tecte les services en cours qui gĂ©nĂšrent des jaurnaux et vous demande de sĂ©lectionner ceux dont vous ne voulez pas surveiller l’activitĂ©. Dans ce cas, il a trouvĂ© les journaux de Nginx, SSH et ceux du systĂšme GNU/Linux utilisĂ©. ![Services dĂ©tectĂ©s](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/5.png?resize=768%2C446&ssl=1) ![Journaux dĂ©tectĂ©s](https://i1.wp.com/crowdsec.net/wp-content/uploads/2020/12/6-1.png?resize=768%2C451&ssl=1) Il vous sera ensuite proposĂ© de choisir les collections que vous souhaitez installer. Les collections sont des analyseurs et scĂ©narios prĂ©dĂ©finis propres Ă  vos outils. Ici, on sĂ©lectionne donc la collection Linux et la collection Nginx. ![SĂ©lection des collections](https://i2.wp.com/crowdsec.net/wp-content/uploads/2020/12/7.png?zoom=2&resize=596%2C276&ssl=1) À la fin de la procĂ©dure, CrowdSec est donc en place, notamment avec le dĂ©mon « CrowdSec » qui est donc capable de lire, analyser, enrichir et appliquer les nouvelles rĂšgles heuristiques Ă  votre systĂšme. L’outil CrowdSec se compose de trois Ă©lĂ©ments principaux : - le service CrowdSec (_daemon_) qui effectue toute la surveillance des journaux, suit les attaques, etc. ; - l’outil de ligne de commande, qui est l’interface CLI permettant d’interagir avec le service pour configurer, bannir des adresses IP, gĂ©nĂ©rer des statistiques, etc. ; - les bouncers, qui sont les intĂ©grations avec d’autres outils qui permettent d’effectuer des actions comme bloquer une adresse IP chez Cloudflare ou au niveau de votre service SSH. Utiliser CrowdSec ================= Lancer CrowdSec --------------- Pour dĂ©marrer le dĂ©mon CrowdSec, utilisez la commande : systemctl start crowdsec Interagir avec CrowdSec ----------------------- Pour utiliser CrowdSec, tout se passe via cette commande : cscli Les commandes du client CrowdSec sont nombreuses, en voici une liste ci-dessous : - utilisation : - `cscli` [commande] - commandes disponibles : - `alerts`: Manage alerts - `bouncers`: Manage bouncers - `capi`: Manage interaction with Central API (CAPI) - `collections`: Manage collections from hub - `config`: Allows to view current config - `dashboard`: Manage your metabase dashboard container - `decisions`: Manage decisions - `help`: Hep about any command - `hub`: Manage Hub - `lapi`: Manage interaction with local API (LAPI) - `machines`: Manage local API machines - `metrics`: Display crowdsec prometheus metrics. - `parsers`: Install/Remove/Upgrade/Inspect parser(s) from hub - `postoverflows`: Install/Remove/Upgrade/Inspect postoverflow(s) from hub - `scenarios`: Install/Remove/Upgrade/Inspect scenario(s) from hub - `simulation`: Manage simulation status of scenarios Observer l’activitĂ© ------------------- À l’aide de la commande `cscli metrics`, vous pouvez afficher les mĂ©triques rĂ©coltĂ©es par l’outil. ![Les mĂ©triques rĂ©coltĂ©es par Crowdsec](https://i2.wp.com/crowdsec.net/wp-content/uploads/2020/12/11.png?resize=1024%2C909&ssl=1) Cela 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 utilise une interface web Metabase qui vous permettra de visualiser l’ensemble des adresses IP analysĂ©es et les scĂ©narios appliquĂ©s. Pour lancer cette interface, vous devrez installer Docker avec la commande : apt install docker.io Puis initialiser le dashboard avec la commande : cscli dashnoard setup Vous aurez alors en retour un point d’accĂšs avec un port (`http://IP:3000`) ainsi qu’un nom d’utilisateur et un mot de passe. Connectez‐vous Ă  l’interface Web puis entrez le nom d’utilisateur et le mot de passe. ![Animation montrant l’interface Web](https://i2.wp.com/crowdsec.net/wp-content/uploads/2020/12/13.gif?resize=768%2C361&ssl=1) Bannir une adresse IP --------------------- Avec le client CrowdSec, vous pouvez avec la commande `ban`, ajouter ou supprimer manuellement des adresses IP Ă  bloquer. Et la commande `ban list` vous permet de lister les adresses IP bloquĂ©es sur votre systĂšme. cscli decisions list Ajouter un bannissement manuellement pendant 24 heures : cscli decisions add --ip 1.2.3.4 --duration 24h Ajouter un bannissement sur une adresse IP et rĂ©clamer un CAPTCHA, un bannissement ou une limitation : cscli decisions add --ip 1.2.3.4 --duration 24h --type Ajouter un bannissement sur une tranche complĂšte d’adresses IP : cscli decisions add --range 1.2.3.0/24 Lister et retirer des rĂšgles de blocage --------------------------------------- ### Lister les rĂšgles de blocage Pour visualiser vos rĂšgles : cscli decisions list ![cscli decisions list](https://i2.wp.com/crowdsec.net/wp-content/uploads/2020/12/19.png?w=1238&ssl=1) ### Retirer un blocage Vous pouvez dĂ©faire vos blocages manuels. Si vous voulez supprimer le bannissement de l’adresse IP 1.2.3.4 : cscli decisions delete -i 1.2.3.4 Supprimer le bannissement du sous‐rĂ©seau 1.2.3.0/24 : cscli decisions delete -r 1.2.3.0/24 Ou pour supprimer toutes les rĂšgles de bannissement exigeant un CAPTCHA : cscli decisions delete --type captcha Installation d’un bouncer ------------------------- Par dĂ©faut, CrowdSec ne bloque pas les adresses IP dĂ©tectĂ©es. Pour ce faire, il faudra vous rendre sur le Hub et [installer le _bouncer_ de votre choix (un bloqueur si vous prĂ©fĂ©rez)](https://hub.crowdsec.net/browse/#bouncers). On trouve des _bouncers_ pour WordPress, Cloudflare, Nginx ou pour des pare‐feux comme Netfilter (iptables) ou nftables. Ici le test se fera sur cs-firewall-bouncer qui va nous permettre de « connecter » CrowdSec avec iptables. On l’installe avec la commande : apt install iptables Puis on tĂ©lĂ©charge le _bouncer_ Firewall de CrowdSec via l’archive ici. Et pour l’installer : tar xvzf cs-firewall-bouncer.tgz sudo ./install.sh ![Installation du bouncer](https://i1.wp.com/crowdsec.net/wp-content/uploads/2020/12/24.png?w=1206&ssl=1) Avant de lancer le service, pensez Ă  bien Ă©diter le fichier de configuration suivant pour y ajouter l’URL de l’API et la clef qui lui correspond. Pensez Ă©galement Ă  bien prĂ©ciser le mode choisi : iptables ou nftables. nano/etc/crowdsec/cs-firawall-bouncer/cs-bouncer.yaml ![Fichier de configuration](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/25.png?w=1220&ssl=1) L’adresse de l’API est `http://localhost:8080` et pour gĂ©nĂ©rer une clef d’API toute neuve, entrez la commande suivante : cscli bouncers add LE-NOM-DE-VOTRE-BOUNCER ![Commande cscli bouncers](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/26.png?w=1284&ssl=1) Puis lancez le _bouncer_ : systemctl starts cs-firewall-bouncer Et pour vĂ©rifier le statut de votre _bouncer_ utilisez le paramĂštre « _status_ » : systemctl status cs-firewall-bouncer ![systemctl status cs-firewall-bouncer](https://i2.wp.com/crowdsec.net/wp-content/uploads/2020/12/28.png?w=1230&ssl=1) Puis, pour consulter la liste des _bouncers_ connectĂ©s Ă  l’API locale : cscli bouncers list Installer des collections, scĂ©narios et analyseurs -------------------------------------------------- Vous pouvez Ă©galement visualiser les scĂ©narios et analyseurs (_parsers_) en place, en installer de nouveaux, les supprimer ou les mettre Ă  jour. Commande : cscli parsers|scenarios|collections|postoverflows ![Collection](https://i1.wp.com/crowdsec.net/wp-content/uploads/2020/12/30.png?resize=1024%2C780&ssl=1) 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 : cscli scenarios install crowdsecurity/ssh-bf Il faut ensuite relancer CrowdSec : systemctl reload crowdsec Vous pouvez ensuite visualiser les scĂ©narios en place : cscli scenarios list ![cscli scenarios list](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/33.png?resize=663%2C232&ssl=1) Et pour obtenir le dĂ©tail d’un scĂ©nario : cscli scenarios inspect crowdsecurity/ssh-bf ![Liste des scĂ©narios](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/34.png?resize=1200%2C919&ssl=1) Pour mettre Ă  jour un scĂ©nario : cscli scenarios upgrade crowdsecurity/ssh-bf Enfin, pour supprimer un scĂ©nario : cscli scenarios remove crowdsecurity/ssh-bf N’oubliez pas de relancer CrowdSec : systemctl reload crowdsec Mise Ă  jour ----------- Pour mettre Ă  jour l’ensemble de vos scĂ©narios, analyseurs, collections et _postoverflows_ via le Hub, utilisez la commande : cscli hub update En procĂ©dant ainsi, CrowdSec ne se contente pas de dĂ©tecter les attaques en utilisant vos journaux, mais peut Ă©galement dĂ©clencher une palette d’actions une fois que quelque chose est dĂ©tectĂ©, comme : - bloquer les adresses IP dans Cloudflare ; - exĂ©cuter vos propres scripts ; - Ă©tablir un blocage dans netfilter ou iptables ; - refuser l’accĂšs d’une IP Ă  Nginx ; - bloquer un accĂšs Ă  votre WordPress ; - et d’autres. Gestion des alertes ------------------- Les alertes peuvent Ă©galement ĂȘtre listĂ©es comme ceci : cscli alerts list ![Lister les alertes](https://i0.wp.com/crowdsec.net/wp-content/uploads/2020/12/39.png?w=1314&ssl=1) Pour obtenir plus de dĂ©tails sur une alerte en particulier, il faut utiliser la commande suivante en remplaçant le X par l’identifiant de l’alerte : cscli alerts inspect X Et pour supprimer une alerte : cscli alerts delete X Pour plus de dĂ©tails, se reporter Ă  la [documentation technique de CrowdSec](https://doc.crowdsec.net/?_ga=2.45763236.1005702224.1607860915-2134917204.1597756444).

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /