Déploiement de Crowdsec sur une machine Linux

Imprimable, PDF & Email

Nous continuons avec Crowdsec! nous avons déjà vu dans des documents précédents les concepts de base et comment le déployer de manière centralisée et même dans un Windows, donc aujourd’hui, nous allons voir les étapes que nous devons suivre si nous voulons installer l’agent Crowdsec sur un ordinateur Linux pour le protéger des menaces externes.

 

Comme vous pouvez l’imaginer, L’installation dépendra de la distribution utilisée par la machine, Ce document sera basé sur l’installation sur un serveur Ubuntu, Je crois me souvenir d’un Nginx qui servait une page web. Alors, allons-y, habituellement, il est entendu que nous le ferons sur un serveur Linux, qui a un service publié et que nous voulons protéger; et ne doit pas nécessairement être publié sur Internet. Nous commencerons par installer le moteur de sécurité Crowdsec pour vous, qui est l’agent qui sera en charge du traitement de vos logs, Prenez vos décisions… Ensuite, nous installerons le videur (o Volet remédiation) pour votre pare-feu Linux, de votre système d’exploitation (iptables dans ce cas), au cas où nous serions intéressés à agir et que nous pourrions y enregistrer des règles, bloquer l’accès temporaire aux adresses IP malveillantes. Et nous finirons par l’enregistrer dans la console Crowdsec.

Avec cela, nous l’aurons presque, comme le post va continuer, sera facultatif, Mais si vous voulez une gestion centralisée, Vous devrez prendre quelques mesures supplémentaires; Et c’est tout, Un de vos choix. Si vous avez besoin, Vous devez vous lire vous-même avant Le post précédent.

Cet article a la structure suivante:

 

 

Installation de l’agent Crowdsec

 

Ce que j’ai dit, cette installation est basée sur un serveur Ubuntu, Si vous avez une autre distribution, Consultez le Site officiel. Nous avons commencé par installer les dépôts officiels de Crowdsec en utilisant:

curl -s https://install.crowdsec.net | sueur sh

 

Et nous avons installé Crowdsec, que, comme nous le savons déjà,, Il détectera les services que nous pouvons utiliser sur la machine et téléchargera également ses collections pour les protéger, Commencé:

sudo apt install crowdsec

 

 

Installation du videur iptables Crowdsec Firewall

 

Une fois l’agent Crowdsec installé, nous savons également que si nous n’installons pas de videur nous ne pourrons pas effectuer d’actions sur cette machine, Nous allons donc installer ce composant de correction, dans mon cas étant Ubuntu j’utilise iptables, Nous procédons donc à son installation:

sudo apt install crowdsec-firewall-bouncer-iptables

 

 

Enregistrement de Crowdsec ou de la console Crowdsec

 

J’imagine que nous aurons déjà un compte en https://app.crowdsec.net nous savons que nous pouvons le créer pour gérer tous nos Crowdsec à partir d’une console GUI de manière centralisée, Non requis, et nous avons une version communautaire avec laquelle vous pouvez également faire beaucoup de choses, Y compris, puis afficher les alertes de la machine, Votre statut, Nous pouvons les abonner à différentes listes de blocage…. Nous continuons à ajouter notre Crowdsec, sur ce Linux. Nous copions la commande que nous devons exécuter.

 

Et nous l’avons collé sur une console système, Courir:

sudo cscli console enroll xxxxxxxxxxxxxxxxxx

 

Nous retournons à la console Crowdsec et acceptons le jet,

 

 

À propos du moteur nouvellement ajouté, Nous modifions le nom et nous en mettrons un qui fait référence à qui il s’agit,

 

Habituellement, Nous indiquons le nom de la machine, et nous donnons “Mettre à jour”,

 

Et si nous voulons, La prochaine chose à faire peut être d’ajouter des listes de blocage, pour cela, Nous pouvons presser votre “Listes de blocage”,

 

Si nous sommes déjà inscrits à une liste de blocage, Nous pouvons le sélectionner parmi “Gérer”

 

Et cliquez sur “Ajouter un moteur de sécurité” Pour ajouter cette machine à cette liste de blocage,

 

 

Nous choisissons un type d’action et confirmons. Machine abonnée!

N’oubliez pas qu’après avoir enregistré Crowdsec sur la console, vous devez redémarrer le service Crowdsec que vous avez.

sudo systemctl restart crowdsec

 

 

Collections

 

Comme nous le savons déjà. par défaut, Crowdsec, lorsqu’il est installé sur une machine, recherche les services que nous avons installés et essaie de les protéger, Dans ce cas, sur mon Linux, seul celui de la base m’a détecté, C’est, l’OS et le SSHd. Si j’avais eu un Nginx, par exemple, j’aurais installé ses collections, ou pour Grafana… pour lister les collections:

Liste des collections Sudo CSCLI

 

Nous pourrons rechercher d’autres collections dans votre Hub, les collectes faites par eux ou par la communauté, qui peuvent protéger d’autres services que nous avons, comme si par exemple on avait installé Nginx a posteriori et qu’on voulait sa collection, Exécuter:

Collections CSCLI Installer CrowdSecurity/NGINX

 

Et nous devrions ajouter dans votre fichier d’approvisionnement '/etc/crowdsec/acquis.yaml’ El contenido de abajo, no os preocupéis que en el Hub viene detallado en cada caso qué hay que hacer, nous corrigeons les chemins des logs Nginx… et le service serait également protégé.

Noms:
  - /var/log/nginx/access.log
  - /Étiquettes var/log/nginx/error.log:
  type: Gitans
---

 

Ainsi que par exemple si ce Nginx dans cet Ubuntu sert Nextcloud, Eh bien, nous devrions aussi y mettre sa collection, et ainsi intégrer et prévenir tout accès abusif, lire et traiter les journaux Nextcloud pour ensuite prendre des décisions.

CSCLI Collections install crowdsecurity/nextcloud

 

Et nous ajoutons ce qui suit au fichier acquire.yaml (J’insiste pour que cela soit documenté dans le Hub):

Noms:
 - /Étiquettes var/log/nextcloud/nextcloud.log:
  type: Suivantcloud
---

Source: Reportedctl journalctl_filter:
  - "SYSLOG_IDENTIFIER=Nextcloud"
Étiquettes:
  type: syslog
---

 

N’oubliez pas de redémarrer le service Crowdsec lorsque vous avez effectué une modification substantielle:

sudo systemctl restart crowdsec

 

 

Liste blanche

La liste blanche, comme nous le savons déjà, nous aidera à exclure, par exemple, une adresse IP de l’interdiction ou du blocage par Crowdsec, il peut s’agir des adresses IP d’un point de contrôle, Équipement de saut, etc… Ainsi que parmi d’autres, nous pouvons également exclure des pays, Par exemple.

Nom: CrowdSecurity/Listes blanches Description: "Mettre en liste blanche les événements à partir d’adresses IPv4 privées"
Liste blanche:
  raison: "IP/plages IPv4/IPv6 privées"
  IP:
    - "127.0.0.1"
    - "::1"
    - "192.168.1.33"
  Cidr:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # expression:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

Le fichier se trouve dans '/etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml', et nous verrons que nous pouvons simplement ajouter n’importe quelle IP ou plage d’IP à la liste blanche d’exclusion..

Si l’on veut exclure des pays, Il faut d’abord installer l’analyseur GeoIP-Enrich qui va alimenter les logs avec des données de géolocalisation, tels que les pays, villes ou coordonnées GPS:

Les analyseurs CSCLI installent CrowdSecurity/GeoIP-Enrich

Et il suffira d’ajouter l’expression suivante dans le fichier de la liste blanche:

expression:
  - evt.Enriched.IsoCode == 'ES'

N’oubliez pas de redémarrer le service Crowdsec pour recharger ces modifications.

sudo systemctl restart crowdsec

Notifications

 

Notifications:
  - slack_default
  - splunk_default
  - http_default
  - email_default

Nous pouvons activer les notifications en modifiant le fichier '/etc/crowdsec/profiles.yaml', où nous pouvons annuler les commentaires et sélectionner le type de notification qui nous intéresse, Qu’est-ce qu’ils peuvent être pour Splunk, vers Slack, par email, ou avec HTTP (par exemple Telegram).

 

Si nous voulons, par exemple, des notifications par e-mail, dans le répertoire '/etc/crowdsec/notifications/’ nous modifierions le fichier YAML email.yaml (o slack.yaml ou splunk.yaml ou http.yaml), où nous allons configurer les paramètres de notre serveur de messagerie. Ceux d’entre nous de Telegram l’ont vu dans un post Vieillard.

 

 

Le tester

Nous finirons par l’essayer, n’est-ce pas ?? Si ce n’est pas le cas, comment pouvons-nous faire confiance à cela pour fonctionner? 🙂 Vous pouvez faire les mauvais examens d’entrée que vous voulez, ou validez-le avec un scanner de vulnérabilité, ou sur des sites web… Dans ce vieux document, vous avez un exemple avec Nikto.

Vous pouvez voir les décisions que votre machine a prises avec:

Liste des décisions du CSCLI

Dans ce cas, vous avez banni l’adresse IP 192.168.1.122 parce que j’ai mis un scanner de vulnérabilité pour le vérifier et il a immédiatement détecté qu’il suivait des choses qu’il ne devrait pas…

Ou depuis le serveur LAPI si nous l’avons enregistré (Et ensuite)

Docker Exec -it crowdsec-crowdsec-1 Liste des décisions CSCLI

Si nous avons déjà déployé le Crowdsec Mirror, nous pourrons vérifier que l’adresse IP bannie apparaît dans l’URL où nous publions notre liste de blocage HTTP://DIRECCION_IP_CROWDSEC_MIRROR:41412/Sécurité/Liste de blocage

Si nous voulons bannir une adresse IP, Nous le ferons avec:

décisions CSCLI ajouter --ip DIRECCIÓN_IP --reason "Description"

Si nous voulons annuler le bannissement d’une adresse IP, Nous le ferons avec:

Décisions CSCLI Supprimer --IP DIRECCIÓN_IP

Nous serons en mesure d’enquêter sur les alertes que nous avons reçues avec:

Liste d’alertes CSCLI

Avec la commande précédente, nous les listons, et maintenant en sélectionnant l’ID d’une alerte particulière et nous pourrons savoir quel fichier journal l’a générée, Ce que je faisais, Le chemin, Statut HTTP… Dans ce cas de l’image, il y a beaucoup 404 al path /apps/files_sharing/publicpreview/

CSCLI Alert Inspect ID_ALERTA [-d]

Et, si nous en avons besoin, créer notre propre fichier de liste blanche pour faire des exclusions en cas de faux positifs, pej à '/etc/crowdsec/parsers/s02-enrich/whitelist-permite-pdfs.yaml, Vous pouvez utiliser ces exemples d’expressions pour créer des filtres d’exclusion:

Nom: crowdsecurity/mylistablancapdfs description: "Ignorer les PDF"
Liste blanche:
  raison: "ignorer les PDF"
  expression:
    #- evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/'
    #- evt.Meta.http_status == '404' && evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/'
    - evt.Parsed.request contains '/apps/files_sharing/publicpreview/'

Comme d'habitude, sans oublier de redémarrer le service Crowdsec à chaque changement de configuration.

Enregistrement de Crowdsec sur notre serveur LAPI

 

API:
...
  Serveur:
    Activer: Faux
...

 

Nous devons désactiver le LAPI local, Modification du fichier '/etc/crowdsec/config.yaml', Nous avons ajouté l’option enable false.

 

Ensuite, nous nous enregistrons sur le serveur LAPI que nous avons déployé sur le réseau:

Sudo cscli lapi register -u HTTP://DIRECCION_IP_CROWDSEC_LAPI:8080 --Machine NOMBRE_MAQUINA

 

Sur le serveur LAPI, nous pourrons voir la demande d’enregistrement de la machine Linux, Nous listons avec:

Sudo Docker Exec -it CrowdSEC-CrowdSEC-1 Liste des machines CSCLI

 

Nous acceptons la demande d’inscription et la réinscrivons pour confirmer le statut:

Sudo Docker exec -it CrowdSEC-CrowdSEC-1 Les machines CSCLI valident NOMBRE_MAQUINA

 

Désormais, notre Crowdsec sur Linux communiquera et lira à partir du serveur LAPI toute décision, par conséquent, l’utilisation du serveur central. Si le reste des agents de Crowdsec faisaient de même, Tous auraient les mêmes informations en commun, et donc, lorsqu’une machine soupçonne une IP d’être malveillante, le reste des agents de Crowdsec le saura instantanément.

 

N’oubliez jamais de redémarrer Crowdsec après toute modification:

sudo systemctl restart crowdsec

 

 

Enregistrement du bouncer Crowdsec sur notre serveur LAPI

Et pour conclure, Nous devons également enregistrer les videurs que nous avons, dans ce cas, le videur de pare-feu Ubuntu, pour iptables; si nous voulons que ce videur lise à partir du LAPI central, Nous devons suivre ces étapes, Voici ce qui a été dit, lorsque quelqu’un ou quelque chose ajoute une adresse IP au LAPI central, ce pare-feu du système d’exploitation établira une règle refusant l’accès à ladite IP malveillante.

À partir du serveur LAPI, Nous pouvons d’abord si nous voulons lister les videurs avec lesquels nous nous sommes inscrits:

Sudo Docker exec -it crowdsec-crowdsec-1 cscli liste des videurs

Et pour enregistrer le pare-feu bouncer de cet Ubuntu, Exécuter:

sudo docker exec -it crowdsec-crowdsec-1 cscli bouncers ajouter NOMBRE_MAQUINA-FW

Nous notons la clé API qui nous a donné,

...
api_url: HTTP://DIRECION_LAPI_SERVER:8080
api_key: xxxxxxxxxxxxxxx
...

Nous éditons le fichier /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml et mettons l’IP du serveur LAPI, son port et la clé API qui nous a donné la commande précédente. Enregistrez le fichier et redémarrez le service de videur de pare-feu:

sudo systemctl restart crowdsec-firewall-bouncer

Et le FW de l’équipe Ubuntu enregistrée sortira, Nous le vérifions avec:

Sudo Docker exec -it crowdsec-crowdsec-1 cscli liste des videurs

J’espère que vous l’avez trouvé intéressant, Je voulais faire un guide pour 3 documents de base et avec cela il est réglé, nous avons déjà appris comment installer Crowdsec sur un ordinateur Linux, sur un Windows, Et nous avons généré une gestion centralisée où tous les agents se parlent et se disent s’il y a un attaquant, De plus, avec des listes publiées sur des pare-feu de périmètre ou internes afin qu’ils puissent également les bloquer et isoler tout attaquant potentiel. Eh bien, l’habituel, Il se fait tard, Regardez à quels moments… 😉 Passé une bonne semaine!

Articles recommandés

Auteur

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, N’hésitez pas à me contacter, J’essaierai de vous aider chaque fois que je le pourrai, Partager, c’est vivre ;) . Profiter des documents!!!