serveur_ops : retirer la sortie 443 vers voisins_site (passage inter-locataires)

Ecrite quand la forge du genome vivait chez un voisin ; elle est au site.
Vue d un locataire, voisins_site designe les autres locataires : la
frontiere ouvrait le 443 de chaque runner vers le supernet de l autre.
Le clonage passe par la regle de serveur_forge_site.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-10-05 01:38:18 -04:00
parent 3c16ef45cd
commit 56033afd00
3 changed files with 46 additions and 13 deletions

View file

@ -1,5 +1,39 @@
# CHANGELOG — Set-OPS # 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) ## 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 : **Le chemin** (`docs/conception-contextes.md` §6), étape 2, frontière, second des trois temps :

View file

@ -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` | 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 | 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 | 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` | 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 | 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. | | `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 - **starttls** : 6 flux
- **tls** : 10 flux - **tls** : 10 flux
- **tls-cible** : 2 flux - **tls-cible** : 2 flux
- **tls-requis** : 36 flux - **tls-requis** : 35 flux

View file

@ -50,15 +50,15 @@ flux:
pair: externe pair: externe
chiffrement: tls-requis chiffrement: tls-requis
raison: "API de l'hyperviseur : créer et cloner les VM d'un écosystème descendant." 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, # LE GENOME SE CLONE A LA FORGE DU SITE — ET CE N'EST PLUS DECLARE ICI (2026-10-05).
# les modeles et la fabric sont le meme contenu pour tous les tenants. Seul le plan
# `OPS-xxx` differe.
# #
# La forge DE TRAVAIL d'un ecosysteme -- celle qui sert ses gens -- reste un service du # Ce fichier portait une sortie 443 vers `voisins_site`, ecrite quand la forge du genome
# tenant, et n'a rien a voir avec ce flux. # vivait chez un locataire voisin (2026-08-24). Elle est au SITE depuis ; le pair n'avait
- sens: egress # pas suivi. `voisins_site` vu d'un locataire, ce sont les AUTRES locataires : la frontiere
port: 443 # ouvrait donc le 443 du runner de chaque locataire vers tout le supernet de l'autre — un
protocole: tcp # passage entre locataires que rien ne justifiait, la ou elle doit refuser par defaut.
pair: voisins_site # Trouve en confrontant la frontiere a la face reseau (docs/conception-contextes.md).
chiffrement: tls-requis #
raison: "Cloner le genome depuis la forge du site, quand cet ecosysteme n'heberge pas la sienne." # 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.