Dans ce tutoriel, je vais vous expliquer comment intégrer la liste des IPs bloqué de Crowdsec avec un firewall Fortigate de Fortinet.
Pour cette intégration, il n’y a pas besoin de Bouncer dédié au firewall, car de façon native, il est possible de récupérer une liste d’adresses IP et l’injecter dans les pares-feu de Fortinet.
Par contre un Bouncer supplémentaire est nécessaire, celui-ci va publié sur un service Web la liste des adresses IP.
Dans ce tutoriel, crowdsec et Crowdsec BLocklist Mirror sont déployés avec Docker
Installation et configuration de Blocklist Mirror
Crowdsec Blocklist Mirror est un bouncer pour Crowdsec qui va permettre de publié par un service Web, la liste des adresses IP bloquées.
Le bouncer est disponible en conteneur et c’est comme cela je vais vous expliquer comment le déployer.
Déploiement de Crowdsec blocklist Mirror avec Docker
Commencer par créer un dossier où l’on va stocker le fichier docker-compose.yml et le fichier de configuration.
Pour ma part je vais travailler dans le dossier : /contaienrs/crowdsec-blocklist-mirror
.
La première étape va être de générer une clé d’API pour crowdsec-blocklist-mirror.
La commande a exécuté varie en fonction de votre installation de Crowdsec :
Linux :
sudo cscli bouncer add BlocklistMirror
Docker :
sudo docker exec crowdsec-container-name cscli bouncer add BlocklistMirror
Docker compose (il faut se placer dans le répertoire où se trouve le fichier docker-compose.yml)
sudo docker compose exec crowdsec cscli bouncer add BlocklistMirror
Si vous utilisez Crowdsec en conteneur, dans le fichier docker-compose.yml
, il faut nommer le réseau (network).
Redémarrer les conteneurs pour la prise en compte :
sudo docker compose down -v && sudo docker compose up -d
Dans le dossier du conteneur crowdsec-blocklist-mirror
, on va commencer par créer le fichier de configuration :
sudo nano blockmirror.cfg
Voici le contenu du fichier de configuration :
Modifier la ligne 3 en indiquant la clé d’API que l’on créé au début et la ligne 4 pour indiquer l’url lapi de crowdsec.
Si vous utilisez le même contenur que moi, il faut indiquer : http://10.199.0.5:8080/
Créer le fichier docker-compose.yml
sudo nano docker-compose.yml
Voici son contenu :
Démarrer le conteneur :
sudo docker compose up -d
Une fois démarrer, afficher les logs pour vérifier que tout fonctionne :
sudo docker compose logs -f
Comment on peut le voir sur la capture ci-dessous, le conteneur a bien démarré et la liaison avec Crowdsec est bonne aussi, on voit cela au fait que le bouncers reçoient les « decisions »
Pour vérifier que le service web est accessible, lancer un navigateur Web et aller à l’url suivante : http://ip-server:41412/security/blocklist?ipv4only
On récupère une liste d’adresses IP.
Intégration de la liste d’adresses IP Crowdsec dans Fortigate
On va maintenant utiliser cette liste sur un firewall Fortigate.
Créer d’un connecteur externe
Pour récupérer la liste dans le pare-feu, on va créer un connecteur externe.
Depuis le menu de navigation du firewall, aller sur Security Fabric / External Connector 1.
Cliquer sur le bouton Create New 1.
Dans la liste des connecteurs, cliquer sur IP Address 1.
Nommer le connecteur 1, puis indiquer l’url 2 pour récupérer la liste des adresses IP (http://ip:41412/security/blocklist?ipv4only), désactiver l’authentification 3 et activer le connecteur 4. Cliquer ensuite sur le bouton OK 5 pour le créer.
Le connecteur est créé 1.
Lors de la création, patienter quelques minutes le temps que le firewall récupère la liste et il devrait passer au vert.
En cliquant sur le connecteur, les informations de celui-ci s’affiche dans une bulle.
Lors de la création du connecteur, on peut voir qu’il y avait 40 063 adresses IP dans la liste.
En cliquant sur le bouton View Entries, la liste des adresses s’affiche.
Le pare-feu Fortigate a maintenant la liste des adresses IP bloqués de Crowdsec, il va mettre à jour cette liste toutes les 5 minutes.
Créer une règle pour bloquer le trafic entrant
La dernière étape va être de créer une règle qui va bloquer tout le trafic.
Pour être efficace, je vous conseille de créer cette règle en première position.
Pour cela faire un clic droit sur la première règle, aller sur Insert Empty Policy / Above.
Une fois la règle créée, faire double clic dessus pour la configurer.
Voici la règle :
Dans le champ Source, il faut indiquer l’objet qui a été créé avec le connecteur externe, penser à activer les logs et à activer la règle.
Au bout de 3 minutes, on peut voir que la règle a déjà était utilisé 146 fois !
Pour accéder aux logs de la règle, depuis la liste des règles, faire un clic droit sur la règle et cliquer Show Matching Logs.
Depuis les logs, on peut voir la source, la destination et le service qui a été bloqué.
Bloquer le trafic sortant
Je ne vais pas reprendre la création de la règle ici, mais je vous conseille de faire le même type de règle pour bloquer le trafic sortant vers ses adresses IP.
Ne faites pas de filtrage de service pour voir tous les ports.
Le trafic sortant est même plus intéressant à analyser, car il pourrait indiquer que des ordinateurs dans votre réseau sont compromis, car cette liste contient aussi des serveurs C&C.
Vous savez comment exploiter la liste d’adresses de blocage Crowdsec sur un firewall fortinet.
Cette solution est particulièrement intéressante à mettre en place pour ce qui est publié sur Internet et qui n’est protéger par Crowdsec, comme les objets connectés par exemple.
Si vous observez de façon quotidienne le nombre de hit de la règle, vous pourrez vous apercevoir qu’il va diminuer avec le temps car vous allez devenir une cible « plus difficile ».
Si vous n’êtes pas utilisateur de Crowdsec et que vous souhaitez la mettre en place sur votre pare-feu Fortigate, vous pouvez utiliser cette liste : https://csblocklist.rdr-it.com/security/blocklist?ipv4only