Set-OPS-Public/docs/registre-flux.md
Daniel Allaire 3fe7e3cea3 web frontal = reverse proxy + WAF ; le dorsal porte les sites
Le frontal derive ses vhosts des expositions publiques (meme derivation que l edge),
filtre par ModSecurity v3 + OWASP CRS (DetectionOnly d abord, eprouve), refuse les noms
inconnus, et ne sert plus rien lui-meme. Les sites statiques passent au dorsal, relaye
par l edge et par le frontal. Sondes : frontal (nouvelle), sites-servis suit le dorsal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:48:42 -04:00

22 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 echo-request icmp serveur_icinga n-a La supervision verifie que ce noeud repond (hostalive). Sans lui, elle le tient pour mort et supprime ses notifications.
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 53 udp frontiere n-a Résolution de noms à l'amorçage, avant que le résolveur de l'écosystème n'existe. Sans elle, les machines d'un site neuf ne peuvent pas résoudre leurs dépôts de paquets — et rien ne peut donc s'installer, y compris le résolveur lui-même.
serveur_debian egress 53 tcp frontiere n-a Réponses longues et bascule TCP, obligatoires en DNS. Déclarer l'UDP sans le TCP donne une résolution qui marche jusqu'à la première réponse tronquée.
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 frontiere n-a 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.
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_dns_public ingress 53 udp voisins_site clair NOTIFY des primaires des locataires du site : une zone publique a change. Le contenu d'une zone publique n'a rien de secret ; ce qui compte est QUI peut le modifier, et c'est TSIG qui le garde, sur le transfert.
serveur_dns_public ingress 53 tcp voisins_site clair Repli TCP des notifications des primaires des locataires.
serveur_dns_public ingress 1053 udp externe clair Les resolveurs de l'Internet interrogent les zones publiques des locataires du site. Les reponses sont signees DNSSEC : leur integrite ne depend ni du transport, ni de nous.
serveur_dns_public ingress 1053 tcp externe clair Repli TCP : reponses tronquees par dnsdist (ANY, debit) et reponses signees trop grosses pour l'UDP.
serveur_dns_public egress 5300 tcp primaires_dns_locataires clair AXFR signe TSIG vers l'autoritatif de chaque locataire du site (5300 : il partage sa machine avec le resolveur, qui tient le 53). La signature authentifie, elle ne chiffre pas — et une zone publique n'a rien a cacher.
serveur_dns_public egress 5300 udp primaires_dns_locataires clair SOA demande au primaire avant chaque transfert : c'est lui qui dit si la zone a change. Sans lui, le secondaire garde sa premiere copie pour toujours.
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, admin 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, admin clair Interface web : servie via l'edge la ou il y en a un, joignable depuis le plan d'administration partout — sans quoi un deploiement sans edge n'a plus de console.
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_icinga egress echo-request icmp serveur_debian n-a La supervision verifie que ses hotes repondent (hostalive) : sans ce flux, elle les tient tous pour morts et supprime leurs notifications.
serveur_icinga egress echo-request icmp fabric n-a La supervision verifie que la frontiere sert encore chaque zone. Aucun agent ne peut vivre sur un pare-feu : le controle ACTIF est le seul chemin, et il n'existait pas.
serveur_icingaweb2 ingress 8080 tcp edge, admin clair Interface web servie via l'edge (TLS terminé à l'edge ; SSO possible via oauth2-proxy), et joignable depuis le plan d'administration là où il n'y a pas d'edge.
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 1514 tcp fabric clair Journaux de la frontiere. Elle n'accueille aucun agent et n'emet que du syslog ; sans ce flux, le seul equipement qui voit passer TOUT le trafic n'ecrit nulle part.
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_loki ingress 3100 tcp fabric tls Journaux des hyperviseurs. La machine qui PORTE les VM ecrivait ses journaux nulle part ailleurs que sur son propre disque — invisibles le jour ou c'est elle qui casse.
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 admin clair HTTP depuis le reseau d'administration — redirection permanente vers HTTPS.
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 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.
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 465 tcp flotte, externe tls-requis Soumission authentifiée en TLS direct (submissions, RFC 8314) : clients de courriel des utilisateurs.
serveur_postfix ingress 587 tcp flotte, externe starttls Soumission authentifiée (STARTTLS obligatoire) : agents internes et clients de courriel des utilisateurs.
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_postgresql ingress 9187 tcp serveur_prometheus clair Metriques PostgreSQL lues par l'observatoire. Series, pas verdicts : ce qui derive lentement — cache qui decroche, connexions qui montent, bases qui grossissent — n'a que le graphe pour se faire voir. En clair pour l'instant, contrairement a client_metrique : dette inscrite, a fermer par --web.config.file + client_pki.
serveur_powerdns ingress 5300 tcp dns_public_site clair AXFR signe TSIG par le serveur DNS public du site, vers l'instance publique uniquement.
serveur_powerdns ingress 5300 udp dns_public_site clair Interrogation du SOA par le secondaire du site avant chaque transfert.
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_prometheus egress 9100 tcp frontiere clair Scrape de l'exportateur de la frontiere (os-node_exporter), sur sa seule patte de supervision : l'equipement qui voit passer TOUT le trafic n'avait ni temperature ni charge dans la supervision.
serveur_prometheus egress 9100 tcp fabric clair Scrape des hyperviseurs : la machine qui PORTE les VM etait invisible de la supervision qui les surveille. Elle ne peut pas pousser (route par defaut gelee, D-57), donc on la tire.
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, serveur_web_frontal clair Front nginx local des webapps et des sites statiques, relaye par l'edge (noms internes) et par le web frontal (noms publics).
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 externe clair HTTP public, relaye a travers le WAF — et le defi HTTP d'ACME ; renverra vers HTTPS quand le certificat sera la.
serveur_web_frontal ingress 443 tcp externe tls-requis HTTPS public — les sites et services que le locataire publie sur l'Internet (attend son certificat Let's Encrypt).
serveur_web_frontal egress 80 tcp serveur_web_dorsal clair Relais vers le web dorsal, qui porte les sites et les applications publiques.

Synthèse chiffrement

  • clair : 51 flux
  • n-a : 8 flux
  • ssh : 8 flux
  • starttls : 6 flux
  • tls : 10 flux
  • tls-cible : 2 flux
  • tls-requis : 36 flux