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> |
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
serveur_postfix
MTA : Postfix 3.x (Debian 13) sur le nœud edge-mta — réception SMTP :25, cartes LDAP
(domaines, boîtes, alias), remise LMTP réseau vers le mailstore (serveur_dovecot).
Ne stocke aucune boîte. Cf. docs/courriel-conception.md.
Rôle
- Préconfigure Postfix par debconf (installation non interactive), installe
postfix+postfix-ldap. - Chroot : recopie
/etc/hostsdans/var/spool/postfix/etc/— le MTA hérite du plancher de résolution (hosts_statiques), sinon il ne résout aucun nom interne. - TLS : pont de certificat step_ca (
client_pki) — scriptsetops-postfix-cert-sync- unités
.service/.path, recharge Postfix à chaque renouvellement.
- unités
- Annuaire : connexion fournie par
resoudre_annuaire; carteldap-mailboxes.cf(validation des destinataires contre LDAP). - Soumission
:587optionnelle, avec SASL délégué à Dovecot (passdb LDAP). - Valide la configuration (
postfix check) avant d'activer le service.
Liaisons (meta/liens.yml)
Le rôle accepte deux liens déclarés côté application dans plan/applications.yml :
| Lien | Effet |
|---|---|
mailstore |
Injecte serveur_postfix_mailstore_hote = FQDN de la cible (Dovecot LMTP) |
milter |
Passe serveur_postfix_rspamd_milter à true (rspamd co-localisé) |
C'est le sens « app→app », résolu par scripts/instancier.py. Cf.
docs/bindings-conception.md.
Variables principales
| Variable | Défaut | Rôle |
|---|---|---|
serveur_postfix_mailstore_hote |
(vide — obligatoire) | Nœud Dovecot, normalement injecté par le lien mailstore |
serveur_postfix_lmtp_port |
24 |
LMTP vers le mailstore |
serveur_postfix_reseaux_confiance |
127.0.0.0/8 [::1]/128 |
mynetworks (relais autorisé) |
serveur_postfix_submission_actif |
false |
Soumission :587 (SASL Dovecot) |
serveur_postfix_rspamd_milter |
false |
Milter antispam/DKIM co-localisé |
serveur_postfix_lmtp_tls_verify |
false |
Zéro-confiance : vérifier le certificat du mailstore |
Flux (meta/flux.yml)
25/tcp entrant (externe + client_smtp) · 587/tcp soumission (flotte) ·
24/tcp → Dovecot (TLS vérifié) · 12345/tcp → Dovecot (SASL) ·
11332/tcp → rspamd local · 636/tcp → OpenLDAP · 25/tcp sortant (MX distants).
Notes / limites
- Le rôle exige
serveur_postfix_mailstore_hote(assertion) : pas de remise locale, la remise finale appartient au mailstore. C'est la scission edge-mta / mail-store. serveur_postfix_reseaux_confianceest à adapter au réseau de l'instance — laissé au strict minimum par défaut.serveur_postfix_lmtp_tls_verify: truedemande que la racine step_ca soit lisible (/etc/step/certs/root_ca.crt, posée en0644parclient_pki).- La frontière publique (MX, SPF/DKIM/DMARC publics, filtrage entrant) relève de l'OPNsense — Étape B, hors flotte Ansible.
Prérequis
serveur_postfix requiert serveur_dovecot actif(docs/dependances-groupes.yml).client_pkiappliqué sur le nœud.