Set-OPS-Public/docs/registre-flux.md
Daniel Allaire 018d55ec6c supervision : le site rapporte aussi — et deux corrections pour que ca MARCHE
7 machines du site deployees, 0 echec au playbook — et CINQ rapports sur
sept en TimeoutError. Un playbook vert ne prouve pas qu une chose
fonctionne ; seul l essai de bout en bout l a dit.

1. LE PAIR DE LA FRONTIERE. Le role client declarait son egress 5665, la
politique de sortie etait accept, la regle d entree de l hote autorisait
la source — et les paquets mouraient ENTRE les deux. La frontiere filtre
l inter-zones du site et ne resout que les roles que les machines PORTENT
AU PLAN ; une integration universelle n y figure pas, elle est derivee.
pair: client_sante produisait donc une regle est-ouest correcte et AUCUNE
regle a la frontiere. Le pair devient serveur_debian — le vocabulaire du
depot pour « tout noeud », que le generateur traite deja comme tel, et
exact au sens strict. Six regles creees, zero retiree, une par patte de
zone.

2. LE RAPPORTEUR S ACCUSAIT LUI-MEME. Pendant l heure de blocage,
setops-sante.service a echoue ; une fois debloque, cinq machines ont
rapporte CRITIQUE en citant leur propre rapporteur, et systemd garde l
etat failed jusqu a un reset-failed. Sa propre unite est desormais exclue
du compte — non par complaisance : sa sante est deja mesuree, et mieux,
par la FRAICHEUR de ses envois. S il ne peut plus parler, le ttl perime le
service, ce qui se voit precisement quand il ne peut PAS ecrire.

ETAT FINAL : 7/7 au site, 14/14 au tenant, tous OK. Controle negatif
rejoue sur les deux flottes.

make prouver : CONFORME, 63 OK, 0 echec, 0 saute.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-09 20:48:36 -04:00

17 KiB

Registre des flux réseau — matrice d'audit (GÉNÉRÉ)

Généré par scripts/resoudre_flux.py (make flux) depuis les roles/*/meta/flux.yml. Ne pas éditer à la main. Matrice source→destination pour l'audit de sécurité et le label de certification. ingress = le rôle écoute ; egress = le rôle se connecte.

Rôle (propriétaire) Sens Port Proto Pair Chiffrement Raison
client_backup egress 22 tcp serveur_backup ssh Poussée des instantanés restic vers le dépôt hors-nœud, par SSH (clé dédiée).
client_journal ingress 12346 tcp localhost clair Interface de diagnostic locale d'Alloy — port declare pour rendre les collisions visibles.
client_journal egress 3100 tcp serveur_loki tls Expédition des journaux par Alloy vers le collecteur central Loki (HTTPS, cert step-ca).
client_metrique ingress 9100 tcp serveur_prometheus tls Scrape des métriques par Prometheus (node_exporter en HTTPS).
client_pki egress 8443 tcp serveur_step_ca tls-requis Émission/renouvellement des certificats par ACME et récupération de la racine auprès de l'AC interne.
client_resolveur egress 53 udp serveur_resolveur clair Résoudre auprès du résolveur de l'écosystème, et de personne d'autre.
client_resolveur egress 53 tcp serveur_resolveur clair Réponses longues et bascule TCP, obligatoires en DNS.
client_sante egress 5665 tcp serveur_icinga tls Depot d'un resultat passif sur l'API Icinga (process-check-result) : les unites systemd en echec du noeud. Le pair est authentifie par l'AC d'Icinga.
client_smtp egress 25 tcp serveur_postfix starttls Relais des notifications locales vers le MTA central (Postfix), STARTTLS.
serveur_artefacts ingress 3142 tcp flotte clair Toute la flotte prend ses paquets ici. En clair, et c'est correct : l'intégrité d'un dépôt apt vient de ses signatures, qu'apt vérifie de toute façon — un intermédiaire ne peut pas altérer un paquet sans se faire prendre.
serveur_artefacts egress 80 tcp externe clair Remplir le cache depuis les dépôts Debian amont (deb.debian.org, security).
serveur_artefacts egress 3142 tcp voisins_site clair Prendre le cache du site comme amont, plutot que d'aller chez Debian.
serveur_backup ingress 22 tcp client_backup ssh Dépôt restic servi par SSH (utilisateur restreint restic + clé) ; chaque client_backup pousse ses instantanés.
serveur_backup egress 5665 tcp serveur_icinga tls-requis Rapport passif des sauvegardes vers l'API Icinga : le depot est le seul a voir ce qui est reellement arrive.
serveur_backup_site ingress 22 tcp voisins_site ssh Les écosystèmes de ce site déposent leur état ici tant qu'ils n'ont pas leur propre dépôt. SFTP par un utilisateur restreint, jamais un compte d'administration : le site reçoit des octets chiffrés par restic, il ne peut pas les lire.
serveur_cache_site ingress 3142 tcp voisins_site clair Servir les caches des écosystèmes voisins. Debian n'est ainsi téléchargé qu'une fois pour tout le site, et le cache ne voit que des requêtes AGRÉGÉES — jamais quelle machine installe quoi.
serveur_cache_site egress 80 tcp externe clair Remplir le cache depuis les dépôts Debian amont. En clair parce que les dépôts apt sont signés : l'intégrité vient de la signature, pas du transport.
serveur_cache_site egress 443 tcp externe tls-requis Les dépôts tiers qui n'existent qu'en HTTPS (smallstep, Grafana, Icinga). Le cache les relaie pour que la flotte n'ait pas à sortir elle-même.
serveur_collabora ingress 9980 tcp edge clair Éditeur servi au navigateur via l'edge (WebSocket WOPI ; TLS terminé à l'edge).
serveur_collabora ingress 9980 tcp localhost clair Vérifications WOPI serveur→Collabora depuis Nextcloud co-localisé.
serveur_debian ingress 22 tcp flotte, externe ssh Plan de gestion : administration et déploiement Ansible par SSH (inter-nœud ; l'accès depuis l'extérieur est filtré à l'OPNsense).
serveur_debian ingress frag-needed icmp externe n-a ICMP « fragmentation nécessaire » entrant : sans lui, un distant ne peut pas nous demander de réduire nos paquets — les transferts se figent.
serveur_debian egress 80 tcp externe clair Dépôts apt en clair et redirections HTTP des miroirs (l'intégrité vient de la signature des paquets, pas du transport).
serveur_debian egress 123 udp externe n-a Synchronisation d'horloge (NTP). Une dérive fait échouer la validation des certificats step-ca et l'authentification SSO.
serveur_debian egress 443 tcp externe tls-requis Dépôts apt en HTTPS (Debian, Smallstep, Grafana, Icinga, Forgejo, Nextcloud) — sans quoi aucun correctif de sécurité n'entre.
serveur_debian egress frag-needed icmp externe n-a ICMP « fragmentation nécessaire » sortant : c'est ainsi que nos hôtes signalent l'overlay à 1450 aux correspondants distants.
serveur_dovecot ingress 24 tcp serveur_postfix tls-requis Remise LMTP depuis Postfix (edge-mta -> mailstore), en TLS vérifié (lmtp_tls_security_level=verify).
serveur_dovecot ingress 993 tcp externe tls-requis Accès courriel des utilisateurs (IMAPS). Frontière publique gérée à l'OPNsense.
serveur_dovecot ingress 12345 tcp serveur_postfix tls Authentification SASL déléguée : Postfix valide les identifiants de soumission contre Dovecot.
serveur_dovecot egress 636 tcp serveur_openldap tls-requis userdb/passdb : Dovecot résout et authentifie les comptes sur l'annuaire (LDAPS).
serveur_forge_site ingress 443 tcp voisins_site tls-requis Servir le génome aux écosystèmes de ce site : c'est de cette forge qu'ils clonent leur moteur, leurs modèles et la carte de la fabric (D-81). Sans ce flux, un écosystème neuf ne peut pas se reproduire.
serveur_forgejo ingress 3000 tcp edge clair Interface web + Git HTTP derrière un edge : le nginx termine le TLS et parle en clair à la forge. C'est le cas de tout tenant.
serveur_forgejo ingress derive tcp flotte tls Sans edge devant elle — la forge du SITE — elle sert son propre TLS sur le port du schéma (443), avec le certificat de la machine. derive parce que le port vient de serveur_forgejo_http_port : écrire 3000 en dur ici serait faux pour elle, et rien ne le signalerait puisque ce flux ne traverse pas la frontière.
serveur_forgejo egress 25 tcp serveur_postfix starttls Notifications courriel (relais via le MTA Postfix).
serveur_forgejo egress 443 tcp edge tls-requis Découverte OIDC et jetons auprès de Keycloak (via son FQDN publié à l'edge).
serveur_forgejo egress 5432 tcp serveur_postgresql tls-requis Base de données Forgejo (verify-full).
serveur_grafana ingress 3000 tcp edge clair Interface web servie via l'edge (TLS terminé à l'edge).
serveur_grafana egress 443 tcp edge tls-requis Authentification OIDC auprès de Keycloak (via son FQDN publié à l'edge).
serveur_icinga ingress 5665 tcp localhost clair API Icinga 2 consommée en local par Icinga Web 2 co-localisé.
serveur_icinga ingress 5665 tcp client_backup tls-requis Rapport passif de chaque detenteur d'etat sur SON depot distant : le depot du site heberge du chiffre et ne peut pas le juger.
serveur_icinga ingress 5665 tcp serveur_backup tls-requis Le depot de sauvegarde depose ses resultats passifs (portee : process-check-result sur « sauvegarde: * »).
serveur_icinga ingress 5665 tcp serveur_debian tls-requis Rapport passif de sante de chaque noeud (unites systemd en echec).
serveur_icinga egress 5432 tcp serveur_postgresql tls-requis Base relationnelle du moteur Icinga (verify-full).
serveur_icingaweb2 ingress 8080 tcp edge clair Interface web servie via l'edge (TLS terminé à l'edge ; SSO possible via oauth2-proxy).
serveur_icingaweb2 egress 636 tcp serveur_openldap tls-requis Authentification des utilisateurs sur l'annuaire (LDAPS).
serveur_icingaweb2 egress 5432 tcp serveur_postgresql tls-requis Lecture d'IcingaDB (base relationnelle, verify-full).
serveur_keycloak ingress 8080 tcp edge clair Console et endpoints OIDC servis au navigateur et aux applications via l'edge (TLS terminé à l'edge).
serveur_keycloak egress 636 tcp serveur_openldap tls-requis Fédération de l'annuaire OpenLDAP (LDAPS).
serveur_keycloak egress 5432 tcp serveur_postgresql tls-requis Persistance Keycloak dans PostgreSQL (verify-full).
serveur_loki ingress 3100 tcp client_journal tls Réception des journaux poussés par Alloy (client_journal) en HTTPS (http_tls_config, cert step-ca).
serveur_loki ingress 3100 tcp localhost clair Requêtes de Grafana co-localisé (datasource Loki en localhost).
serveur_nextcloud ingress 80 tcp edge clair Interface web servie via l'edge (TLS terminé à l'edge).
serveur_nextcloud egress 443 tcp edge tls-requis Découverte OIDC auprès de Keycloak (via son FQDN publié à l'edge).
serveur_nextcloud egress 5432 tcp serveur_postgresql tls-requis Base de données Nextcloud (verify-full).
serveur_nextcloud egress 9980 tcp serveur_collabora tls-cible Vérifications WOPI serveur->Collabora (édition en ligne). TLS interne = feuille de route edge->backends.
serveur_nginx ingress 80 tcp externe clair HTTP entrant — redirection permanente vers HTTPS.
serveur_nginx ingress 443 tcp externe tls-requis HTTPS entrant — services exposés (terminaison TLS à l'edge).
serveur_nginx ingress 443 tcp flotte tls-requis HTTPS depuis le tenant : les FQDN publiés vivent à l'edge (découverte OIDC, appels inter-services par nom).
serveur_nginx ingress 443 tcp admin tls-requis HTTPS depuis le reseau d'administration : l'exploitant administre les services par leur interface web, servie par l'edge.
serveur_nginx egress derive tcp expositions tls-cible Proxy vers les backends exposés (host:port dérivés des expose ; TLS interne = roadmap edge→backends).
serveur_oauth2_proxy ingress 4180 tcp edge clair Point d'entrée SSO servi via l'edge (TLS terminé à l'edge) devant l'application protégée.
serveur_oauth2_proxy egress 443 tcp edge tls-requis Émetteur OIDC (Keycloak) via son FQDN publié à l'edge : échange de jetons.
serveur_oauth2_proxy egress 8080 tcp localhost clair Relais vers l'application co-localisée protégée (upstream en localhost).
serveur_openldap ingress 389 tcp flotte starttls LDAP + STARTTLS pour les clients internes qui préfèrent la mise à niveau TLS sur 389.
serveur_openldap ingress 636 tcp serveur_keycloak, serveur_dovecot, serveur_icingaweb2, serveur_postfix tls-requis LDAPS : fédération (Keycloak), userdb courriel (Dovecot), auth web (Icinga Web 2), tables virtuelles (Postfix).
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.
serveur_ops_site egress 443 tcp fabric tls-requis API de la frontiere OPNsense : poser les alias et les regles qui ouvrent les flux du tenant qu'on materialise. Preparer le terrain sans cela laisserait un terrain injoignable.
serveur_ops_site egress 8006 tcp fabric tls-requis API de l'hyperviseur : créer, cloner et détruire les VM de la fabric. Le seul flux par lequel un écosystème peut en matérialiser un autre.
serveur_ops_tenant ingress 22 tcp runner_site ssh Insémination : le runner du SITE amorce ce runner-ci — socle, moteur, plan, plancher de résolution — jusqu'à ce qu'un humain lui remette sa voûte. Vers cette machine seule, jamais vers le reste de l'écosystème.
serveur_postfix ingress 25 tcp externe, client_smtp starttls SMTP entrant : courrier externe (MX) et notifications internes (client_smtp).
serveur_postfix ingress 587 tcp flotte starttls Soumission authentifiée (submission) pour les agents internes qui envoient du courrier.
serveur_postfix egress 24 tcp serveur_dovecot tls-requis Remise finale par LMTP au mailstore (Dovecot), en TLS vérifié.
serveur_postfix egress 25 tcp externe starttls Relais sortant vers les MX distants (STARTTLS opportuniste).
serveur_postfix egress 636 tcp serveur_openldap tls-requis Tables virtuelles (domaines/alias/boîtes) résolues sur l'annuaire (LDAPS).
serveur_postfix egress 11332 tcp localhost clair Filtre milter rspamd co-localisé (antispam + signature DKIM).
serveur_postfix egress 12345 tcp serveur_dovecot tls Validation SASL des identifiants de soumission contre Dovecot.
serveur_postgresql ingress 5432 tcp serveur_keycloak, serveur_forgejo, serveur_icinga, serveur_nextcloud tls-requis Connexions applicatives à PostgreSQL (verify-full ; pg_hba hostssl).
serveur_powerdns ingress derive udp flotte clair Zone souveraine. 53 seul sur son hôte, 5300 sur la loopback derrière le résolveur.
serveur_powerdns ingress derive tcp flotte clair Idem en TCP (réponses volumineuses, AXFR restreint par allow_axfr_ips).
serveur_powerdns egress 53 udp externe clair Résolution sortante du serveur autoritatif POUR SES PROPRES besoins (apt, NTP) — il ne récurse pour aucun autre hôte.
serveur_powerdns egress 53 tcp externe clair Repli TCP de la résolution sortante du serveur autoritatif (réponses dépassant la taille UDP).
serveur_prometheus ingress 9090 tcp localhost clair Console Prometheus consommée en local par Grafana co-localisé (pas d'exposition inter-nœud).
serveur_prometheus egress 9100 tcp client_metrique tls Scrape des node_exporter (HTTPS via cert step-ca) sur chaque nœud instrumenté.
serveur_redis ingress 6379 tcp localhost clair Cache/verrous consommés uniquement par l'application co-localisée (ex. Nextcloud). Aucune exposition inter-nœud.
serveur_resolveur ingress 53 udp flotte clair Toute la flotte du tenant résout ici — et nulle part ailleurs.
serveur_resolveur ingress 53 tcp flotte clair Réponses longues et bascule TCP, obligatoires en DNS.
serveur_resolveur egress 53 udp externe clair Récursion depuis les serveurs racine. Aucun transitaire : l'écosystème ne confie ses questions à personne.
serveur_resolveur_site ingress 53 udp voisins_site clair Les écosystèmes de ce site résolvent ici tant qu'ils n'ont pas leur propre résolveur. client_resolveur les bascule chez eux dès qu'il existe ; retirer cet emprunt est alors une émancipation.
serveur_resolveur_site ingress 53 tcp voisins_site clair Réponses longues et bascule TCP, obligatoires en DNS.
serveur_rspamd ingress 11332 tcp localhost clair Protocole milter consommé par Postfix co-localisé (analyse + signature DKIM). Local uniquement.
serveur_rspamd ingress 11334 tcp localhost clair Interface de contrôle rspamd (statistiques, apprentissage) en local.
serveur_step_ca ingress 8443 tcp flotte tls-requis ACME + API step-ca : chaque nœud (client_pki) émet/renouvelle ses certificats et récupère la racine.
serveur_web_dorsal ingress 80 tcp edge clair Front nginx local des webapps, proxie par l'edge (TLS termine a l'edge).
serveur_web_dorsal egress 443 tcp flotte tls git clone/pull du depot de chaque app (Forgejo souverain) au deploiement.
serveur_web_frontal ingress 80 tcp edge clair Contenu statique servi au navigateur via l'edge (TLS termine a l'edge).
serveur_web_frontal egress 443 tcp flotte tls git clone/pull du depot du site (Forgejo souverain) au deploiement.

Synthèse chiffrement

  • clair : 37 flux
  • n-a : 3 flux
  • ssh : 8 flux
  • starttls : 6 flux
  • tls : 10 flux
  • tls-cible : 2 flux
  • tls-requis : 35 flux