Crowdsec plutôt que Fail2Ban

Bonjour à toute l’équipe,

Avez-vous connaissance du projet CrowdSec (sources : https://crowdsec.net/the-solution/github/) ?
Et serait-il possible d’envisager le remplacement de Fail2Ban par cet outils plus performant ?
Sans aucun caractère d’urgence, bien sûr, mais cela pourrait être bien, si tel est le cas, de le mentionner sur la feuille de route, non ?
Fail2ban n’est pas simplement en “perte de vitesse” : les attaques sont de plus en plus nombreuses, et l’emploi d’ou outillage (comme Fail2Ban) en secours du FW n’est plus à démontrer …

L’installation sur mon Yunohost personnel s’est tellement bien passé (j’ai eu de la chance ?)
et la plus value si grande que j’aimerai que le plus grand nombre puisse en profiter …

C’est un système qui compte sur ses utilisateurs : il est plus performant si le nombre de participants est élevé (à la Waze, en fait …).

Merci d’avoir lu jusque là, et pardon si j’ai froissé quelqu’un !

1 Like

Si on veut parler de sécurité un peu sérieusement, ce serait cool d’avoir des références pour ettayer les propos car sinon c’est aussi sérieux que “j’ai un pote qui m’a dit que”.

En l’état, le projet a l’air d’avoir 6 mois, ce qui est vraiment pas ouf. Fail2ban a surement ses problèmes, mais a minima c’est un logiciel qui est là depuis longtemps et qui est bien connu. Sur le README du projet cité, c’est littéralement marqué “en beta” partout.

En outre, je vois du champ lexical de business partout sur le site, alors ça inspire pas spécialement confiance … tant mieux si ça permet d’établir une solution pérenne et plus performante que fail2ban sur le long terme, mais ça peut aussi dire que le projet peut se péter la gueule dans 3 mois par manque d’investissements et compagnie. Ça pose aussi la question du business-model sur le long terme et de à quel point le projet va réellement rester libre/éthique.

Donc si d’ici quelques années le bouzin devient un peu l’état de l’art et vraiment “le nouveau fail2ban”, stable et idéalement inclu dans Debian, oui. En attendant nope.

6 Likes

Ok!
Pas de débat !
Cependant, on parle de cet OVNI encore en béta dans pas mal de publications (Korben, Le Courrier du hacker, etc …) et ne souhaitais que porter à la connaissance de la communauté que ça marchait bien pour moi.

Merci pour ta réponse

Bonjour,

Je suis Philippe du projet CrowdSec.
Merci de votre intérêt dans la solution.

Quelques réponses pour vous :

  • “j’ai un pote qui m’a dit que” : la solution est jeune, certes, mais l’équipe a entre 10 et 20 de pentests, secops, devops ou admin dans les pattes selon les profils. Thibault, mon co fondateur était avec moi chez NBS, où nous faisons de l’hébergement sécurisé et du pentest. Il a aussi déjà écrit qq soft open source, dont NAXSI, Snuffleu Paggus, PHP Malware Finder, etc.

  • “Beta” : En effet nous somme plutôt plus prudent que moins. Mais la version 1.0 est sortie depuis, cependant durant l’alpha et la beta, nous n’avons pas eu de crash, de memory leak ou de pb de sécurité. c’était plus des erreurs de parsing, de conf, des choses normales pour un projet jeune, mais réglé depuis.

  • “Business” : Si Fail2ban ne bénéficie plus que du support d’une personne (Sergey), c’est en bonne partie car Cyril (l’auteur original) l’a conçu comme un TP pour apprendre le Python et que justement, ce n’est pas suivi par une boite. Oui, nos devsecops sont payés, bien payés et on assume. Par contre, la communauté n’a rien à craindre coté license (c’est du MIT), coté monétisation (on ne fait payer que ceux qui ne participent pas au moteur d’élaboration de la réputation d’IP) ou encore durabilité (on a des fonds, jusqu’en décembre 2021 et on lève notre tour de seeding en ce moment). Vu que c’est du MIT, si nous trahissions notre parole n’importe qui pourra le forker et utiliser le temps et le savoir faire que nous avons mis dedans, sans que nous ayons mot à y dire.

  • “Debian”: le package devrait arriver en testing fin janvier (Debian Go Packaging Team / packages / crowdsec · GitLab) et on espère être intégré à la Bullseye en Juillet.

En espérant avoir répondu à certaines de vos questions,
l’équipe de CrowdSec.

3 Likes

Bonsoir à tous,

C’est chouette ce topic, car j’ai écouté l’épisode de No Limit Secu (un podcast) sur Crowsec et je me disais que ça pourrait être une idée à creuser de l’intégrer à Yunohost. Mais @EricHemmy m’a devancé :clap: :wink:

Sinon, j’allais répondre à tes bonnes intérogations @Aleks en faisant référence au-dit podcast, mais l’invité de cet épisode s’est aussi invité ici. C’est plutôt sympa je trouve*. Bienvenue Philippe @CrowdSec !!

Lien : CrowdSec - NoLimitSecu

*Ben oui, j’imagine que Philippe ne vient pas lever des millions de sous-sous en prenant la peine de poster un message sur le forum de Yunohost :grin:

@Aleks Je te suis sur l’avis de prudence.

Merci pour le welcome @nath5394.

On a une roadmap chargée, avec pas mal de packages a faire pour plein de distro, mais l’équipe essaye de se rendre disponible pour aider les personnes qui souhaitent contribuer/porter/packager/etc. Sur Gitter ou sur Discourse.

Je me rend moi aussi disponible, autant que je le peux, pour chaque communauté. Si on a une marque d’intérêt, alors le minimum, tant que cela est humainement possible, c’est la réciprocité.

Coté millions, on y est pas encore mais on lève des fonds, car il faut fueler la bête en attendant que des business viennent acheter nos offres premium, et surtout en attendant que celles-ci soient développées :slight_smile: On a commencé par le libre, le reste viendra en son temps. Déjà, faisons un bon soft. Pas de stress cependant, on a des ronds pour tenir tranquillement jusqu’à fin 2021 et on aura levé bien avant ca.

Quand à la prudence, c’est une vertue cardinale en matière de sécurité.

Au plaisir la Yuno team.

4 Likes

Bonjour, je n’avais point vu que ce projet avait été déjà mentionné sur le forum.
Donc désolé du topic que j’ai créé et effacé.

@Aleks je comprends ton point de vue. Après étant plus volontaire sur ce genre de question, je ne serais pas parti du principe crowdsec plutôt que fail2ban comme l’initiateur du topic l’a fait. Cependant, ils ont une API. Il y a manifestement de la bonne volonté derrière car le gars s’est quand même déplacé jusqu’ici, on pourrait par exemple faire profiter notre infra sur base volontaire de chacun à travers une app qui fournirait les ips blackliste par fail2ban ou un autre moyen vers leurs API… le but étant quand même de former une base de données mondiale libre d’accès (idée que j’appelle de mes vœux depuis longtemps). Ne fut ce que ça je pense que ce serait relativement cool à mettre en place et déjà une implication à minima non?

Ensuite je n’ai pas regardé comment fonctionne le projet pour la partie réellement firewall, mais avant de penser à un transitional package avec un pur et simple replacement de fail2ban, potentiellement il y a peut-être moyen de combiner les deux tu ne penses pas ?
Même si oui je sais ça ajoute de la lourdeur mais je vais répéter ce qu’on ne cesse d’enseigner en cybersec, toujours mettre deux pare-feu en série plutôt qu’un seul. L’exemple récent de breach d’ubiquiti avec unifi en est un bon à ce niveau-là. Mais on pourrait tout autant parler de solarwinds aussi, même si c’est un exemple plus complexe.

Et l’on sait tous ici que fail2ban a toujours un léger délai de réactivité ou même fait parfois, même si très rarement, des erreurs d’interprétations de logs.

Que dis-tu de ce compromis ? Peut-on se pencher dessus ensemble ou bien cela ne t’intéresse absolument pas ?
D’ailleurs qui est intéressé par évaluer l’incorporation de différentes fonctionnalités de crowdsec au sein d’app ou de package a yunohost ?

@CrowdSec et bienvenu en retard évidemment. Moi je suis très intéressé par votre projet. Je regarderai votre doc dans la semaine et voir ce qu’il est possible de faire sur base de mes propositions que j’ai fait précédemment

Moi je suis intéressé ! @boistordu as-tu commencé quelque chose ? J’ai peu de temps en ce moment, mais je suis chaud pour suivre le sujet et en parler. Je pense que pour commencer un package serait pas mal.

Bon visiblement mes mails ne sont pas passés.

Donc non j’ai encore rien commencé. Pas eu le temps, je commence seulement à explorer et à essayer de comprendre comment ils fonctionnent.
J’ai essayé de les contacter mais pas de réponses donc soit ils ont pas vu mes mails/tickets soit ils sont trop occupés.

Mon problème actuellement c est d essayer de comprendre comment ils ont agencé leurs agents et comment ça s’intègre dans le système et/ou si ça remplace des parties spécifiques du système.

J ai pris le temps de regarder un peu leur API et je pense qu’il y a moyen de faire quelque chose et de l incorporer directement à fail2ban et en sens inverse de report les ip de nos chers botnets qui essayent tous les jours de tester nos versions ssh pour voir si ce sont pas des versions dotées de 0 day. Certaines fonctions de l api mélangent clairement pour moi beaucoup trop de choses donc celles là risquent de poser souci. Mais y en a d’autres qui sont « small is beautiful » donc ça ça irait.

Mais incorporer tel quel comme ça leur paquet ça je pense pas qu en l état ça soit une bonne idée non. Y a beaucoup trop d agents qui pourraient ne pas jouer correctement le jeu avec le restant du système ou poser des soucis en bloquant des accès alors qu ils ne devraient pas.
Qu’est ce que toi tu en penses @nath5394 ? Tu as déjà eu le temps de tester un peu ?

Et en petite remarque, je dirais même que j ai réussi à trouver un usecase ou un type d installation Ubuntu où l installation de leur paquet foire à cause de ce que j y ai installé. Donc cela montre bien que ça est à prendre avec des pincettes. (Même si je n’ai pas encore eu le temps d’investiguer plus que ça encore le problem)

Pareil pas eu le temps de tester. Mais c’est vrai que je serais parti avec le paquet directement et un bouncer qui cause à iptable. D’ailleurs Y’a eu une dépêche très didactique sur LinuxFR récemment. Voici le lien : Comment configurer une installation CrowdSec multiserveur - LinuxFr.org

Je suis pas sur que ce soit une bonne idée de partir sur leur paquet avec tous les bouncers. On ne sait même pas comme je te disais à quel niveau ça s organisé en terme hiérarchie système. Ça pourrait très bien rentrer en conflit avec une tonne d autres appli dispo dans le magasin de yunohost.

Donc oui moi je veux bien partir du paquet mais pas dans l état actuel de la Docu

Sauf si évidemment tu arrives à répondre exactement à toutes mes questions concernant l agencement de crowdsec, ses modules et le système

j’ai pris le temps de tester Crowdsec sur mon yunohost brique-internet

Contexte :

  • Armbian 5.10.60-sunxi #21.08.2 - armv7l
  • golang 1.11

ma brique ne me sert qu’à faire du monitoring d’autre machine, du coup les apps installées sont Kuma, Adguard, Grafana, aucune autre app est installée, c’est important car si je n’ai pas eu d’impact négatif, c’est aussi par rapport au fait que la brique n’a que 3 app installées, ce qui n’est pas un test suffisant.

les étapes que j’ai fait :

  1. Désinstallation de golang 1.11 et installation de golang 1.17
  2. téléchargement des sources de crowdsec depuis leur repo github
  3. éxécution de Make à l’intérieur du dossier source

à ce moment là j’avais cscli dans mon path et donc j’ai procédé comme ceci :

  • installation du Firewall bouncer à partir de APT (iptables)
  • ensuite j’ai lancé le wizard, qui a détecté tous mes domaines, applications utilisant nginx
    ainsi que les différents services tel que mysql, auth, syslog (acquis.yml)
  • ipset create crowdsec-blacklists hash:ip timeout 0 maxelem 150000
  • ipset create crowdsec6-blacklists hash:ip timeout 0 family inet6 maxelem 150000
  • iptables -I INPUT 1 -m set --match-set crowdsec-blacklists src -j DROP
  • ip6tables -I INPUT 1 -m set --match-set crowdsec6-blacklists src -j DROP

Une fois ici, j’active les services crowdsec.service et crowdsec-firewall-bouncer.service

ce qui crée une machine (cscli machines list)
ensuite crowdsec met en place la clef API pour le seul bouncer que j’utilise
et via cscli lapi status et cscli capi status, je confirme l’accès API à crowdsec

ensuite j’ai fait le tour dans /etc/crowdsec/

  • acquis.yml
  • config.yml
  • profile.yml
  • local_api_credentials.yaml
  • bouncers/crowdsec-firewall-bouncer.yaml

pour vérifier que tout est en ordre, clef API générée correctement ajoutée, que l’IP utilisée et le port match sur tous les fichiers yml et que les logs que je veux parser le seront une fois les services activés.

Bouncers :

  • pas besoin de bouncers nginx ou autre dans mon cas d’utilisation, en effet, vu que le bouncer firewall est entrain d’opérer avant même que les requêtes atteignent Ngxinx, si un bouncer nginx est installé avec un bouncer firewall, celui ci n’aura rien à faire à moins que le bouncer firewall est désactivé, il suffit d’installer ensuite via cscli, les scenarions, configurations et postoverflows qui font sens par rapport aux apps/contexte utilisé par yunhost (mysql, apache, nginx, sshd, en gros la collection linux)

surveillance de crowdsec :

  • multitail -s 3 -c /var/log/crowdsec.log -c /var/log/crowdsec_api.log -c /var/log/crowdsec-firewall-bouncer.log

systemctl status crowdsec.service et crowdsec-firewall-bouncer.service


whitelist ton ip :

installe un postoverflow :

  • cscli collections install crowdsecurity/rdns

met le hub à jour :

  • sudo cscli hub update (si une des listes est “broken”, faire d’abord un hub upgrade, puis à nouveau hub update)
  • sudo cscli hub upgrade (mise à jours des collections/parsers)

Crowdsec propose aussi un dashboard, basé sur metabase, tournant en local (je ne l’ai pas mise en place dans cette mise en place, à la place j’ai utilisé cscli console enroll depuis https://app.crowdsec.net ou encore cette possibilité : How to configure metabase dasbhoard without docker | CrowdSec


et voilà !

4 Likes