diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b59bd4..6d266c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ # CHANGELOG — Set-OPS +## 2026-10-01 (56) — Le registre des flux sait dire « seulement si » ; la sonde au site + +**Le registre ne savait pas exprimer une condition.** La sonde `connectivite` montrait, chaque +minute, des ports ouverts vers rien : la vigie (8080) et la console (8090) en SSO, liées à +`127.0.0.1` derrière la passerelle — le code le savait (« la règle devient simplement sans +objet »). `seulement_si: {variable, egal}` ou `{variable, non_vide: true}`, évalué PAR +ÉCOSYSTÈME (variables d'hôte, `group_vars`, défauts du rôle) dans les trois générateurs — +nftables, Proxmox, frontière. Une expression Jinja indéterminable garde le statu quo ; une +variable absente partout compte comme vide pour `non_vide`. + +| Flux | Condition | Effet | +|---|---|---| +| vigie 8080 | `serveur_icingaweb2_nginx_bind == ""` | retiré chez les locataires (SSO) ; gardé au site | +| console 8090 | `serveur_ops_gui_auth == locale` | idem | +| forge 3000 | `serveur_forgejo_tls == false` | retiré au site (TLS propre sur 443) | +| AXFR 5300 | `dns_public_site` non vide | retiré au site (pas d'instance publique) ; gardé chez les locataires | + +Appliqué : locataires — nftables, et Proxmox (8 règles, 2 groupes de sécurité vides retirés), +`connectivite` 13/13 au vert des deux côtés, l'edge à 27/27 ; site — nftables, ses deux +« coupures » (`site-dnspub-01 → site-dns-01:5300`, `site-edge-01 → site-forge-01:3000`) +disparues avec leurs règles. **Pas encore appliqué** : le plan de la FRONTIÈRE, qui retire +8 règles d'administration vers 8080/8090 et 2 alias orphelins (en attente de l'exploitant). + +**Un défaut latent trouvé au passage** : la console du SITE tourne en `locale` depuis le +2026-09-15, mais son plan ne le disait pas — et le défaut du rôle est `oidc`. Le prochain +déploiement du site l'aurait liée à `127.0.0.1` derrière une passerelle inexistante. Le plan +le déclare désormais (`serveur_ops_gui_auth: locale`). + +**La sonde au site** (simulée d'abord, `--check --diff`) : la simulation a montré que le chemin +de la liste pointait hors du dépôt (inventaire dynamique : même surcharge que le ruleset), que +la tâche aurait changé les droits de `/etc/setops` (la liste, qui n'a rien de secret, va dans +`/usr/local/lib/setops/`), et que l'activation du minuteur échouait en simulation. Corrigés, +puis déployés : les 9 machines rapportent ; reste une information — `site-mon-01:465/587`, le +relais du site n'offre pas la soumission. + ## 2026-09-30 (55) — Première reconstruction sans un seul arrêt ; le pare-feu jugé par une sonde à la minute **Chezlepro, quatrième reconstruction, lancée par l'exploitant** (`reconstruire-locataire`,