Créer une bloque list depuis l'analyse #44
Labels
No labels
Optimization
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Dockerfiles/nginx-reverse-proxy-dashboard#44
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
base sur les regles Analysis, un mode à le Crowdsec qui permet de generer une liste d'IP douteuse, qui pourrait etre integre ajouter à la fonctionnalité Blocklist, il faut définir un seuil de de répetition pour boquer et aussi permettre de pas faire de remediation si on le souhaite, vu que ça tourne déjà en prod, pas defaut remediation est à false
v12.49.4 livré avec la nouvelle fonctionnalité.
Ce qui a été ajouté — une nouvelle source dans config/blocklists.yml, type: analyzer :
yaml
sources:
type: analyzer
threshold: 5 # nombre de déclenchements avant qu'une IP soit retenue
window_hours: 24 # fenêtre glissante de comptage
min_severity: medium # optionnel
remediation: false # false par défaut, comme demandé
Elle compte, sur /api/alerts de nginx-analyzer, combien de fois chaque IP a déclenché une règle d'Analyse (bruteforce, scan, flood, scraping, écart volumétrique, règles personnalisées) sur la fenêtre glissante, et retient celles qui dépassent le seuil — un mode "à la CrowdSec" entièrement local, sans dépendance externe.
Le point de sécurité central : remediation: false par défaut, et tant que ce n'est pas explicitement mis à true, la liste est calculée et visible (page Blocklists IP : badge "Analyse", compteur "détectées", badge "observation seule") mais ne bloque strictement rien — elle ne rejoint jamais la table geo appliquée par nginx. Une notification prévient quand même l'opérateur dès qu'une nouvelle IP franchit le seuil, pour qu'il puisse observer avant d'activer le blocage réel. Ça coexiste sans rien casser avec vos sources URL existantes, et une config actuelle sans type continue de fonctionner à l'identique.
Tests dédiés (seuil, sévérité, pagination, analyseur injoignable, remediation false→true, notification) + suite complète : TOUS LES TESTS PASSENT. Config d'exemple, README et CHANGELOG mis à jour, zip vérifié (360 fichiers, aucun fichier nouveau — tout est dans des fichiers existants).
v12.50.0 livrée — le redesign complet demandé après ton retour sur la v12.49.4.
Ce qui change :
Seuil + remédiation au niveau de chaque règle, plus sur une source globale : pour les règles intégrées (bruteforce/scan/flood/scraping/volumétrique/pays), un mini-formulaire dans la modale « Règles d'analyse » (Seuil, Fenêtre en minutes, case « Bloquer réellement », Durée en minutes) ; pour les règles perso (id ≥ 100), quatre nouveaux champs YAML (blocklist_threshold, blocklist_window_minutes, blocklist_remediation, blocklist_remediation_minutes).
Fenêtre en minutes partout (plus de window_hours), comme demandé.
Temps de remédiation (blocklist_remediation_minutes) : une fois bloquée, l'IP reste bloquée cette durée-là (renouvelée si elle continue de déclencher), indépendamment de la fenêtre de comptage. Laissé vide, comportement historique (bloquée tant qu'elle dépasse le seuil).
Liste blanche globale (whitelist: dans config/blocklists.yml, IP ou CIDR) : filet de sécurité appliqué après fusion de toutes les sources — jamais bloquée, quelle que soit la source qui l'aurait incluse. Pensé pour tes plages privées.
Opt-out de remédiation par vhost : # nginx-control-analyze-no-remediation: on dans le fichier de conf — garde les alertes visibles, retire juste ce vhost du comptage de blocage. Visible dans « Hôtes & directives ».
Les exceptions par vhost déjà existantes continuent de s'appliquer automatiquement, comme confirmé.
config/blocklists.yml's source type: analyzer est maintenant réduite à name/enable — elle agrège le résultat de toutes les règles ayant opté.
Tests : 129 tests backend passent (analyzer + dashboard, suites complètes), y compris les nouveaux cas (per-règle, whitelist, opt-out vhost, TTL de remédiation, migration de l'ancien format de rule_state).
Prochaine étape naturelle si besoin : affiner l'UI de la modale Règles une fois que tu l'auras testée en conditions réelles.