Set-OPS-Public/roles/serveur_postfix/meta/flux.yml

63 lines
2.4 KiB
YAML
Raw Normal View History

---
# Flux réseau de Postfix (MTA). Voir docs/flux-conception.md.
flux:
- sens: ingress
port: 25
protocole: tcp
pair: [externe, client_smtp]
chiffrement: starttls
frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens L'exploitant a retire la derniere regle heritee. `make frontiere-mesurer` rend CONFORME (code 0) : tout ce qui est declare est livre, tout le reste est refuse — y compris collab-01:9980, le seul qui livrait vraiment un HTTP 200 depuis le poste. Et mon instrument avait tort, pas la frontiere. Il comptait 38 ecarts en concluant depuis le client : « connexion etablie => la bordure a relaye ». Faux, verifie A LA DESTINATION : pendant que le poste tenait une connexion « etablie » vers idm-01:389, idm-01 n'en voyait aucune ; collab-01 n'en voyait aucune sur 9980. La frontiere repond a la poignee TCP sans relayer. Le devis raisonne desormais sur la LIVRAISON seule, et le controle ne rend le releve NUL que s'il LIVRE des donnees — qu'il ressorte AMBIGU est attendu ici et le rapport le dit a chaque execution. Cette relaxation rend aussi le sens sortant mesurable : il etait declare NUL en permanence. Nouveau mot-cle `poste: false` dans meta/flux.yml : un service publie n'est pas forcement fait pour un poste de travail. Le 25 entrant de Postfix est un flux serveur a serveur ; la frontiere l'etendait au VLAN d'administration ou le nftables de l'hote le refusait. Deux regles retirees. Le mot-cle vit avec le role qui sait ce que son port veut dire ; le generateur ne connait toujours aucun numero de port. Verifie : frontiere-plan sans ecart (41 regles, 12 routes), flotte 14/14, frontiere-mesurer CONFORME, prouver.py 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 21:33:04 -04:00
poste: false
raison: "SMTP entrant : courrier externe (MX) et notifications internes (client_smtp)."
# LA SOUMISSION EST PUBLIQUE (2026-09-29) : les clients de courriel des utilisateurs
# envoient depuis n'importe ou, par l'adresse publique du locataire. Toujours chiffree,
# toujours authentifiee (SASL Dovecot) ; seuls les authentifies relaient.
# SEULEMENT LA OU LA SOUMISSION EXISTE (2026-10-01). Elle est derriere un interrupteur
# (`serveur_postfix_submission_actif`, faux par defaut) que seuls les locataires levent :
# elle suppose des utilisateurs, des boites et un annuaire. Le relais du SITE n'en a pas —
# il fait sortir le courriel des MACHINES, par le 25. Declares sans condition le
# 2026-09-29, ces deux flux ouvraient au site des ports vers un service inexistant.
- sens: ingress
port: 587
protocole: tcp
pair: [flotte, externe]
seulement_si: {variable: serveur_postfix_submission_actif, egal: true}
chiffrement: starttls
raison: "Soumission authentifiée (STARTTLS obligatoire) : agents internes et clients de courriel des utilisateurs."
- sens: ingress
port: 465
protocole: tcp
pair: [flotte, externe]
seulement_si: {variable: serveur_postfix_submission_actif, egal: true}
chiffrement: tls-requis
raison: "Soumission authentifiée en TLS direct (submissions, RFC 8314) : clients de courriel des utilisateurs."
- sens: egress
port: 24
protocole: tcp
pair: serveur_dovecot
chiffrement: tls-requis
raison: "Remise finale par LMTP au mailstore (Dovecot), en TLS vérifié."
- sens: egress
port: 12345
protocole: tcp
pair: serveur_dovecot
chiffrement: tls
raison: "Validation SASL des identifiants de soumission contre Dovecot."
- sens: egress
port: 11332
protocole: tcp
pair: localhost
chiffrement: clair
raison: "Filtre milter rspamd co-localisé (antispam + signature DKIM)."
- sens: egress
port: 636
protocole: tcp
pair: serveur_openldap
chiffrement: tls-requis
raison: "Tables virtuelles (domaines/alias/boîtes) résolues sur l'annuaire (LDAPS)."
- sens: egress
port: 25
protocole: tcp
pair: externe
chiffrement: starttls
raison: "Relais sortant vers les MX distants (STARTTLS opportuniste)."