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_.  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Ă©.   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.  Ă 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.  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.  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  ### 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  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  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  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  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  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  Et pour obtenir le dĂ©tail dâun scĂ©nario : cscli scenarios inspect crowdsecurity/ssh-bf  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  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).