Set-OPS-Public/roles/serveur_debian/meta/flux.yml
Daniel Allaire 6786d15068 l heure vient de la frontiere : la derniere dependance vivante tombe
Mesure sur les quatorze : aucune sortie TCP vers une adresse publique, apt
par le cache, noms autoritaires en local, unattended-upgrades masked. Et
quatre pairs NTP publics par machine. Le role chrony posait le fuseau et
installait le demon sans jamais toucher a ses sources : le defaut de Debian
tenait depuis le premier jour, herite et jamais choisi.

L autorite est la frontiere, par decision de l exploitant. Elle etait deja
stratum 2 et ecoutait en 123 ; il ne manquait que le passage. 9 anciennes
regles port 123 vers !SETOPS_INTERNES retirees, 9 regles nommees vers
SETOPS_FRONTIERE posees : le changement resserre autant qu il centralise.

Deux chemins parce que la topologie en a deux. Un tenant n atteint pas la
frontiere par sa passerelle de zone — tenue par le SDN — mais par le lien de
transit. Une machine du site a la frontiere pour passerelle directe. Les deux
valeurs sont derivees de l underlay, via reseau_transit() plutot que d un
prefixe d adresse qui aurait menti chez le prochain hebergeur.

La patte face aux tenants manquait a opnsense_if_zones, pour la meme raison
que grappe-controle la veille.

Sonde horloge ecrite en meme temps : synchronisee ET contre la source
DECLAREE. Une machine peut etre parfaitement a l heure contre quatre serveurs
publics — c est exactement l etat d avant.

14 tenant + 7 site, toutes disciplinees, sources publiques = 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-11 12:08:13 -04:00

89 lines
4.3 KiB
YAML

---
# Flux réseau du socle Debian : le plan de gestion (SSH). Voir docs/flux-conception.md.
# CRITIQUE : sans cette règle, les nftables générés couperaient l'accès Ansible/SSH.
flux:
- sens: ingress
port: 22
protocole: tcp
pair: [flotte, externe]
chiffrement: ssh
raison: "Plan de gestion : administration et déploiement Ansible par SSH (inter-nœud ; l'accès depuis l'extérieur est filtré à l'OPNsense)."
# --- Sortie générale de la flotte ---
# Portée par le socle parce qu'elle vaut pour TOUS les hôtes, sans exception.
# Non déclarée, la frontière la bloquerait : son `block out` final est un vrai
# default-deny, et la flotte perdrait ses mises à jour et son horloge en silence.
- sens: egress
port: 443
protocole: tcp
pair: externe
chiffrement: tls-requis
raison: "Dépôts apt en HTTPS (Debian, Smallstep, Grafana, Icinga, Forgejo, Nextcloud) — sans quoi aucun correctif de sécurité n'entre."
- sens: egress
port: 80
protocole: tcp
pair: externe
chiffrement: clair
raison: "Dépôts apt en clair et redirections HTTP des miroirs (l'intégrité vient de la signature des paquets, pas du transport)."
# --- Decouverte de MTU de chemin (PMTUD) ---
# L'overlay EVPN plafonne a 1450 : tout ce qui traverse la frontiere depend de ces
# deux messages. Bloques, la connexion s'etablit, les petites requetes passent et les
# grosses reponses restent suspendues — la panne la plus couteuse a diagnostiquer.
- sens: ingress
port: frag-needed
protocole: icmp
pair: externe
chiffrement: n-a
raison: "ICMP « fragmentation nécessaire » entrant : sans lui, un distant ne peut pas nous demander de réduire nos paquets — les transferts se figent."
- sens: egress
port: frag-needed
protocole: icmp
pair: externe
chiffrement: n-a
raison: "ICMP « fragmentation nécessaire » sortant : c'est ainsi que nos hôtes signalent l'overlay à 1450 aux correspondants distants."
# LA FACE RECEPTRICE DU PING DE SUPERVISION.
#
# `serveur_icinga` declare l'egress ; le registre REFUSE un egress sans son ingress en
# face, et il a bien fait : c'est precisement l'oubli qui a coute cinq `TimeoutError`
# sur le rapport de sante quelques heures plus tot. Ici la garde l'a dit tout de suite.
- sens: ingress
port: echo-request
protocole: icmp
pair: serveur_icinga
chiffrement: n-a
partage: true
raison: "La supervision verifie que ce noeud repond (hostalive). Sans lui, elle le tient pour mort et supprime ses notifications."
# L'HEURE VIENT DE LA FRONTIÈRE, PAS D'INTERNET (2026-09-11).
#
# C'était `pair: externe` : les quatorze machines interrogeaient `2.debian.pool.ntp.org`,
# défaut de Debian jamais choisi — le rôle `chrony` posait le fuseau et laissait les
# sources telles quelles. Mesuré : quatre pairs publics par machine, sur les quatorze.
#
# C'était la DERNIÈRE dépendance vivante à Internet des opérations internes. Tout le
# reste sort déjà par le site : les paquets par son cache, les noms par son DNS, le
# génome par sa forge, l'état par son dépôt. L'heure, non.
#
# ET C'EST LA MAUVAISE À LAISSER TRAÎNER. step-ca émet des certificats à durée courte ;
# TLS refuse un certificat pas encore valide ; Loki rejette une ligne trop loin dans le
# futur ; les silences d'Icinga reposent sur des `ttl`. Une flotte dont les horloges
# divergent tombe en panne de l'intérieur, avec des symptômes qui ressemblent à tout
# sauf à une horloge. Et la dérive est lente : couper Internet ne casse rien le premier
# jour, ce qui laisse croire à une souveraineté qu'on n'a pas.
#
# La frontière est déjà `stratum 3`, synchronisée, et écoute en 123 sur chaque patte.
# Elle se discipline sur le pool public quand Internet est là ; la flotte, elle, ne sort
# plus. Même patron que le cache apt : un seul sort, les autres non.
#
# RESSERRE AUTANT QUE CENTRALISE : `pair: externe` autorisait le 123 vers N'IMPORTE
# QUELLE adresse d'Internet. La destination est désormais nommée.
- sens: egress
port: 123
protocole: udp
pair: frontiere
chiffrement: n-a
raison: >-
Synchronisation d'horloge (NTP) contre la frontière, autorité de temps de
l'écosystème. Une dérive fait échouer la validation des certificats step-ca
et l'authentification SSO.