diff --git a/CHANGELOG.md b/CHANGELOG.md index fd16f8c..2877559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ # CHANGELOG — Set-OPS +## 2026-10-05 (85) — Un passage entre locataires que rien ne justifiait + +**Trouvé en confrontant la frontière à la face réseau** (sous-étape 3 de la frontière, +`docs/conception-contextes.md`). Le relevé des sorties de Technolibre portait une règle +anormale : son runner (`serveur_ops`) pouvait sortir en 443 vers **tout le supernet de +Chezlepro**, et celui de Chezlepro vers tout celui de Technolibre, avec pour raison « cloner +le génome depuis la forge du site ». + +**Cause** : `roles/serveur_ops/meta/flux.yml` déclarait cette sortie vers le pair +`voisins_site`, écrite le 2026-08-24, quand la forge du génome vivait chez un locataire +voisin. Elle est au **site** depuis ; le pair n'avait pas suivi. Vu d'un locataire, +`voisins_site` désigne les **autres** locataires : la frontière, censée refuser par défaut +entre locataires, leur ouvrait un passage. + +**Ce que ça exposait** : peu, en pratique. Côté destination, les machines n'admettent le 443 +que depuis leur propre flotte et l'administration, dans leurs nftables comme dans le pare-feu +Proxmox. Mais une couche d'isolement ne tenait plus. Et la règle ne servait à rien : le +clonage du génome passe par la règle que déclare `serveur_forge_site` (chaque locataire vers +`10.37.33.11`, en 443). + +**Fait** : la sortie est retirée de `serveur_ops`, avec une trace dans le fichier. Registre +des flux régénéré (une ligne de moins) ; les flux générés des deux locataires ne changent pas +(une sortie n'y figure pas : leurs machines acceptent tout en sortie). + +**Simulé** (`make frontiere-plan`) : **2 règles périmées à retirer**, une par locataire, et +rien d'autre sur 338 règles et 12 routes. **Application à la frontière : décision de +l'exploitant** (`make frontiere-appliquer CONFIRMER=true`). + +**Même vestige, inactif** : `serveur_artefacts` déclare une sortie 3142 vers `voisins_site` +(« prendre le cache du site comme amont »). Le rôle n'est déployé chez aucun locataire (seul le +laboratoire le porte) : aucune règle n'en sort aujourd'hui. Signalé, non modifié. + +**Validation** : `make verifier` conforme, 88/88. + ## 2026-10-04 (84) — Étape 2 : la frontière, second temps (les entrées publiques) **Le chemin** (`docs/conception-contextes.md` §6), étape 2, frontière, second des trois temps : diff --git a/docs/registre-flux.md b/docs/registre-flux.md index 3812b87..532dd4d 100644 --- a/docs/registre-flux.md +++ b/docs/registre-flux.md @@ -86,7 +86,6 @@ | `serveur_ops` | ingress | 8090 | tcp | edge, admin | clair | Console d'exploitation servie par l'edge (TLS terminé à l'edge), et joignable depuis le plan d'administration là où il n'y a pas d'edge. Le GUI lui-même reste sur la boucle locale : c'est nginx qui authentifie devant. | | `serveur_ops` | egress | 22 | tcp | flotte | ssh | Piloter la flotte — c'est la raison d'être du poste. | | `serveur_ops` | egress | 443 | tcp | edge | tls-requis | Cloner et resynchroniser le génome depuis la forge de l'écosystème. | -| `serveur_ops` | egress | 443 | tcp | voisins_site | tls-requis | Cloner le genome depuis la forge du site, quand cet ecosysteme n'heberge pas la sienne. | | `serveur_ops` | egress | 8006 | tcp | externe | tls-requis | API de l'hyperviseur : créer et cloner les VM d'un écosystème descendant. | | `serveur_ops_site` | egress | 22 | tcp | fabric | ssh | Shell des hyperviseurs : ce que l'API ne couvre pas — configuration reseau, ponts, deplacement de disques. Un pouvoir distinct de l'API, donc declare a part. | | `serveur_ops_site` | egress | 22 | tcp | serveur_ops_tenant | ssh | Insemination : amorcer le runner d'un tenant — socle, moteur, plan, plancher de resolution — pour qu'il prenne ensuite le relais sur ses propres machines. Ne transporte aucun secret : la voute est remise par un humain. | @@ -136,4 +135,4 @@ - **starttls** : 6 flux - **tls** : 10 flux - **tls-cible** : 2 flux -- **tls-requis** : 36 flux +- **tls-requis** : 35 flux diff --git a/roles/serveur_ops/meta/flux.yml b/roles/serveur_ops/meta/flux.yml index 8c28105..7e647b9 100644 --- a/roles/serveur_ops/meta/flux.yml +++ b/roles/serveur_ops/meta/flux.yml @@ -50,15 +50,15 @@ flux: pair: externe chiffrement: tls-requis raison: "API de l'hyperviseur : créer et cloner les VM d'un écosystème descendant." - # LIRE LE GENOME CHEZ UN VOISIN. La forge du genome se mutualise par SITE : le moteur, - # les modeles et la fabric sont le meme contenu pour tous les tenants. Seul le plan - # `OPS-xxx` differe. + # LE GENOME SE CLONE A LA FORGE DU SITE — ET CE N'EST PLUS DECLARE ICI (2026-10-05). # - # La forge DE TRAVAIL d'un ecosysteme -- celle qui sert ses gens -- reste un service du - # tenant, et n'a rien a voir avec ce flux. - - sens: egress - port: 443 - protocole: tcp - pair: voisins_site - chiffrement: tls-requis - raison: "Cloner le genome depuis la forge du site, quand cet ecosysteme n'heberge pas la sienne." + # Ce fichier portait une sortie 443 vers `voisins_site`, ecrite quand la forge du genome + # vivait chez un locataire voisin (2026-08-24). Elle est au SITE depuis ; le pair n'avait + # pas suivi. `voisins_site` vu d'un locataire, ce sont les AUTRES locataires : la frontiere + # ouvrait donc le 443 du runner de chaque locataire vers tout le supernet de l'autre — un + # passage entre locataires que rien ne justifiait, la ou elle doit refuser par defaut. + # Trouve en confrontant la frontiere a la face reseau (docs/conception-contextes.md). + # + # Le clonage passe par la regle que declare `serveur_forge_site` (son entree depuis + # `voisins_site`, vue du site : ses locataires). La forge DE TRAVAIL d'un ecosysteme, + # celle qui sert ses gens, reste un service du tenant, sans rapport avec ce flux.