diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ae9b31..670719b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # CHANGELOG — Set-OPS +## 2026-09-29 (42) — Le WAF des frontaux passe en blocage + +**Avant de basculer, le journal d'audit relu** : chez Chezlepro, la seule transaction signalée +était l'injection de test ; chez Technolibre, les requêtes du prototype (dont `?q=bonjour` +marqué 920350 parce qu'il visait une adresse IP brute). Aucune requête légitime signalée — sur +un trafic encore mince, ce qui est dit dans la déclaration. + +**Par locataire** (`group_vars/serveur_web_frontal.yml` : `serveur_web_frontal_waf_mode: "On"`), +pas dans le défaut du rôle : un nouveau locataire commence en détection et observe. + +**Éprouvé depuis l'Internet, sur `essai.chezlepro.ca`** : page et recherche normales → 200 ; +injection SQL → 403 ; script injecté (XSS) → 403 ; remontée de répertoires → 400 (nginx la +refuse avant même le WAF). La sonde `frontal` dit désormais le mode en clair (« blocage », +« détection seule »). + +Un faux positif se corrige par une exclusion ciblée du CRS +(`REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf`), pas en revenant en détection. + ## 2026-09-29 (41) — Le chemin public éprouvé de bout en bout : Internet → `.61` → WAF → dorsal → forge du site **Le contenu vient de la forge du site.** Organisation `essais` (distincte du génome), dépôt diff --git a/roles/serveur_web_frontal/templates/sonde-frontal.sh.j2 b/roles/serveur_web_frontal/templates/sonde-frontal.sh.j2 index 6664200..1685f60 100644 --- a/roles/serveur_web_frontal/templates/sonde-frontal.sh.j2 +++ b/roles/serveur_web_frontal/templates/sonde-frontal.sh.j2 @@ -9,7 +9,7 @@ # refuse fait echouer `nginx -t`). set -uo pipefail -MODE='{{ serveur_web_frontal_waf_mode }}' +MODE='{{ {'On': 'blocage', 'DetectionOnly': 'detection seule', 'Off': 'ETEINT'}.get(serveur_web_frontal_waf_mode, serveur_web_frontal_waf_mode) }}' EXPOSITIONS="{{ serveur_web_frontal_expositions | default([]) | map(attribute='fqdn') | unique | sort | join(' ') }}" systemctl is-active --quiet nginx || { echo "Le frontal (nginx) n'est pas actif : les services publics sont injoignables."; exit 2; }