CrowdSec
Plugin CrowdSec non officiel, sans lien avec CrowdSec : alertes, bannissements et principales menaces de votre API locale dans l'administration EmDash.
Extension
CrowdSec
Plugin CrowdSec non officiel, sans lien avec CrowdSec : alertes, bannissements et principales menaces de votre API locale dans l'administration EmDash.
Description
Plugin non officiel. Il n’est ni affilié à CrowdSec, ni approuvé ou pris en charge par CrowdSec.
CrowdSec dans l’administration EmDash, lu depuis votre API locale CrowdSec avec une connexion machine qui lui est propre.
Sur le tableau de bord : une carte CrowdSec avec les alertes des dernières 24 heures comparées aux 24 précédentes, les bannissements en vigueur actuellement, les alertes par nature (WAF, défi anti-bot, comportement) et les principaux scénarios.
Page CrowdSec : 7, 30 ou 90 jours d’alertes par nature et de bannissements émis par jour, avec les principaux scénarios, adresses sources, pays, organisations AS et chemins visés.
Alertes : un explorateur des alertes stockées. Des périodes allant d’une heure à tout l’historique conservé ou depuis votre dernière visite, des onglets par nature, deux ventilations avec histogrammes, des filtres par plage d’adresses, pays, scénario, comportement, réseau, chemin ou moteur, des alertes regroupées par adresse, et le détail en direct de chaque alerte.
Décisions : les décisions que LAPI applique actuellement, lues en direct et triées par expiration.
Graphiques de trafic : le trafic malveillant écarté par le bouncer de pare-feu, réparti entre liste de blocage communautaire, vos propres détections et bannissements manuels, sa part dans l’ensemble du trafic, les requêtes web inspectées et bloquées, le défi anti-bot, et les bannissements actifs par source. À partir des métriques de votre propre moteur et de votre bouncer, jamais du cloud de CrowdSec.
Outils MCP : un résumé, les principales menaces, un explorateur d’alertes, le trafic, les décisions actives et les alertes d’une adresse, plus trois outils qui modifient des données.
Modifications facultatives : avec Autoriser les modifications activé, les administrateurs peuvent bannir une adresse ou une plage pour une durée fixe, supprimer une décision et supprimer d’anciennes alertes. Un bannissement ne couvre jamais votre propre adresse, celle du site, celle de l’hôte LAPI, vos adresses protégées, l’espace privé ni une adresse figurant sur une liste d’autorisation.
Les jours suivent votre fuseau horaire. Il faut un LAPI CrowdSec accessible depuis le site.
Installation
Vous avez besoin de CrowdSec 1.7 ou ultérieur avec son API locale sur un nom d’hôte HTTPS public (EmDash refuse les adresses privées), et de EMDASH_ENCRYPTION_KEY défini sur le site (npx emdash secrets generate en génère une).
- Sur l’hôte CrowdSec, créez une machine pour le plugin :
sudo cscli machines add emdash-crowdsec --auto -f /root/emdash-crowdsec.yaml. Le fichier contient son ID et son mot de passe. - Publiez LAPI derrière un proxy inverse qui n’admet que l’adresse du serveur EmDash et uniquement ces routes :
POST /v1/watchers/login,GET /v1/alerts,GET /v1/alerts/. Pour les modifications, ajoutez aussiPOST /v1/alerts,DELETE /v1/alerts/,DELETE /v1/decisions/etPOST /v1/allowlists/check. N’admettez jamaisDELETE /v1/decisionssans identifiant. Exemptez le chemin de tout défi anti-bot. Le README contient des exemples nginx et Traefik pour un hôte unique. - Installez le plugin depuis le registre. Sa seule autorisation est l’accès réseau : vers l’URL de votre LAPI, et vers
cloudflare-dns.comtant que les modifications sont activées. - Dans Plugins, ouvrez les réglages du plugin : saisissez l’URL de LAPI (sans
/v1), l’ID et le mot de passe de la machine, et votre fuseau horaire. Enregistrez. - Ouvrez Plugins, CrowdSec, et sélectionnez Check setup. Corrigez tout ce qu’il signale.
- Pour autoriser les bannissements et les débannissements, activez Autoriser les modifications et ajoutez les adresses de votre serveur et de votre domicile à Adresses protégées.
Sur Cloudflare Workers, la synchronisation nécessite le déclencheur Cron décrit dans le guide de déploiement d’EmDash. Pour utiliser les outils MCP, activez l’accès Agent pour le plugin sous Plugins.
FAQ
Le plugin rend-il mon LAPI CrowdSec public ?
Non. EmDash n’autorise un plugin à appeler que des noms d’hôte HTTPS publics ; LAPI est donc joint par un chemin sur l’un d’eux, mais le proxy placé devant n’admet que l’adresse de votre serveur EmDash et uniquement les routes utilisées par le plugin. Tous les autres reçoivent un 403, et chaque requête exige aussi la connexion machine propre au plugin. LAPI lui-même continue d’écouter sur 127.0.0.1. Le README montre la configuration.
La connexion échoue avec « incorrect Username or Password », mais le mot de passe est correct.
LAPI refuse un User-Agent qui n’a pas la forme name/version. Un proxy qui remplace celui du plugin en est la cause.
La vérification de la configuration indique qu’une route a été refusée (403). Votre proxy ne l’admet pas pour le serveur EmDash. Ajoutez-la comme le montre le README.
Pourquoi les chiffres des premiers jours sont-ils faibles ? L’historique est lu en commençant par le plus récent, une fenêtre à la fois. La page l’indique tant qu’il est encore en cours de lecture.
Pourquoi la liste Décisions est-elle plus courte que cscli decisions list ?
Elle liste vos propres décisions. La liste de blocage communautaire et les autres listes en contiennent des milliers de plus, affichées sous forme d’un seul total au-dessus de la liste.
Pourquoi le classement des principaux éléments est-il approximatif ? Chaque jour ne conserve que ses 25 valeurs les plus fréquentes ; les plus rares sont donc sous-comptées.
Où sont les badges de réputation ? Le plugin n’interroge jamais le cloud de CrowdSec. L’explorateur affiche des indications locales : Banned now et Seen before.
Mon LAPI collecte les alertes de plusieurs hôtes. Chaque alerte conserve le moteur qui l’a déclenchée. Nommez-les dans le réglage Engine names.
Pourquoi ne puis-je pas supprimer cette alerte ? Supprimer l’alerte supprimerait ses décisions sans que les bouncers n’en soient informés. Supprimez la décision, puis l’alerte deux minutes plus tard.
Pourquoi mon bannissement a-t-il été refusé ? Le message nomme la règle. Le README les liste toutes.
D’où viennent les graphiques de trafic ? Des métriques de votre propre moteur et de votre bouncer de pare-feu, jamais du cloud de CrowdSec. Définissez leurs URL dans les réglages.
Dans quel fuseau horaire sont les jours ?
Celui du réglage Time zone, Australia/Sydney sauf modification. Un nom inconnu met la synchronisation en pause, et l’historique est conservé.
Sécurité
Signalez un problème de sécurité en privé via le formulaire d’avis de sécurité du dépôt : https://github.com/shanelord01/emdash-crowdsec/security/advisories/new
Ce que le plugin peut atteindre
Uniquement des requêtes réseau, vers deux endroits : l’URL de LAPI que vous saisissez et, tant que Autoriser les modifications est activé, cloudflare-dns.com pour rechercher les adresses du site et de l’hôte LAPI. Il n’a aucun accès à votre contenu, à vos utilisateurs ni à vos médias. Il n’utilise que les routes LAPI listées dans le README, jamais DELETE /v1/decisions avec un filtre, jamais de suppression d’alertes en masse, et ne suit aucune redirection ; le mot de passe n’est donc jamais envoyé à un autre hôte. Le HTTP en clair et les URL contenant des identifiants sont refusés.
Identifiants
Le mot de passe de la machine est enregistré chiffré avec EMDASH_ENCRYPTION_KEY. Le jeton LAPI n’est jamais stocké : chaque exécution se connecte et le garde en mémoire. Donnez au plugin une machine qui lui est propre, et publiez LAPI de sorte que seuls le serveur EmDash et uniquement les routes du plugin passent.
Qui peut faire quoi
Les éditeurs et les administrateurs voient la carte, les pages et les outils de lecture. Seuls les administrateurs peuvent modifier quoi que ce soit, et uniquement avec Autoriser les modifications activé. Sur les pages, le plugin vérifie lui-même le rôle. Les routes des outils d’écriture sont limitées aux administrateurs par EmDash.
Protections contre les bannissements
Un bannissement est refusé, avec le nom de la règle, lorsqu’il couvre l’adresse du demandeur (pour un outil MCP, la sortie du client), les adresses du site ou de l’hôte LAPI, une entrée de Adresses protégées, l’espace privé, de bouclage, de lien local, CGNAT (y compris le 100.64.0.0/10 de Tailscale), multicast ou réservé, une plage plus large que /16 ou /48, ou une entrée de liste d’autorisation CrowdSec, vérifiée en premier puisque LAPI l’ignore pour les bannissements manuels. Une IPv6 qui transporte de l’IPv4 est jugée d’après cette adresse IPv4, et Teredo est refusé. Une entrée protégée erronée fait refuser toutes les modifications.
Suppression des alertes
Une alerte n’est supprimée que lorsque ses décisions ont pris fin depuis plus de deux minutes, car sa suppression retire ses décisions sans que les bouncers n’en soient informés.
Journal des modifications
0.1.3
- Les pages sont regroupées dans un seul dossier CrowdSec dans la barre latérale (Overview, Alerts, Decisions) sur EmDash 1.2 et ultérieur. Leurs adresses sont inchangées, et les versions plus anciennes d’EmDash les listent une par une.
- Les bannissements actifs par source nécessitent le
level: fullde Prometheus du moteur. La section Metrics du README l’indique. - Aucune nouvelle autorisation et aucun changement des outils MCP.
0.1.2
- Les filtres de l’explorateur d’alertes tiennent sur une seule ligne et s’appliquent dès que vous les choisissez.
0.1.1
- La page des alertes CrowdSec devient un explorateur : des périodes allant d’une heure à tout l’historique, ou depuis votre dernière visite, des onglets par nature, deux ventilations commutables avec histogrammes, des filtres sous forme de pastilles, des alertes regroupées par adresse avec une vue de chaque adresse et le détail en direct de chaque alerte, et des indications Banned now et Seen before.
- Moteurs : chaque alerte conserve l’agent CrowdSec qui l’a déclenchée, sous forme de ventilation et de filtre, avec en plus une colonne et un graphique lorsqu’il y en a plusieurs, nommés dans le réglage Engine names.
- Un nouvel outil MCP,
alerts_explorer. EmDash redemande l’accès Agent lors de la mise à jour. - Les alertes stockées passent dans un journal d’alertes compact lors des premières synchronisations.
- Les données de démonstration sont supprimées : le plugin nécessite un LAPI accessible. Une installation qui les utilisait demande les réglages LAPI et efface ses lignes de démonstration une fois ceux-ci définis.
- Des durées plus courtes, des tableaux plus étroits, une page de 90 jours en barres de trois jours, et un échantillonneur de métriques qui suit ses réglages sans visite du tableau de bord.
0.1.0
Première version : la carte du tableau de bord, la page CrowdSec, les pages d’alertes et de décisions, une vérification de la configuration, des graphiques de trafic, huit outils MCP, ainsi que des bannissements, débannissements et suppressions d’alertes facultatifs pour les administrateurs, avec des protections pour vos propres adresses.
Historique complet : CHANGELOG.md.