Set-OPS-Public/roles/serveur_postfix/defaults/main.yml
Daniel Allaire 4e12c3a802
Some checks are pending
verifier / verifier (push) Waiting to run
supervision du site, et la panne qui dormait dans un mot
Le site a son temoin : site-mon-01 (VLAN 36) porte PostgreSQL, Icinga et un
relais. Le depot lui rapporte, et son premier verdict fut un vrai defaut —
site-mon-01 n avait jamais depose son propre etat. Les trois sont au vert.

serveur_backup_verification_locale repasse a true sur le depot : le drapeau ne
dit plus  on renonce  mais  verifie ce que tu peux ouvrir . La liste des noeuds
attendus derive de l inventaire ou tourne le role, donc du site seul.

serveur_postfix gagne un mode relais : un site n heberge aucune boite, il
expedie. Directement par sa frontiere — emprunter le MTA d un locataire ferait
dependre l hebergeur d un ecosysteme qu il peut outvivre.

LA PANNE DE FOND : le modele de routes OPNsense lit enabled ; on lui envoyait
disabled=0, un champ ignore. enabled restait a son defaut, ETEINT. Chaque route
creee par Set-OPS depuis l origine l etait desactivee — invisible, parce qu une
route eteinte EXISTE dans le modele et compte  posee . Le rechargement lance
pour activer la nouvelle patte a fait reprendre au noyau sa table depuis le
modele : 14 routes sur 15 disparues, 11 machines de Chezlepro injoignables le
lendemain de sa reconstruction, et le devis toujours vert.

Trois corrections empilees : la cause (enabled), la cecite (le plan lit la table
du NOYAU et signale absent ou eteint), l inaction (la reconfiguration ne se
declenchait que sur un changement du modele).

Aussi : un role du site peut enfin en appeler un autre a travers la frontiere —
le devis traitait tout pair nomme comme  l exterieur . Et nftables_admin_ssh se
DERIVE de la carte : recopie a la main, il retardait d une zone, et m a
verrouille dehors de la machine que je venais de creer.

Reste ouvert : le destinataire des alertes est encore root@localhost.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-09-02 17:34:01 -04:00

63 lines
3.1 KiB
YAML

---
# Postfix 3.x (Debian 13) — MTA du nœud edge-mta : réception :25, cartes LDAP (domaines,
# boîtes, alias), remise LMTP réseau vers le nœud mail-store (Dovecot). TLS via step_ca.
# NE STOCKE AUCUNE BOÎTE. Cf. docs/courriel-conception.md + docs/identite-sso.md.
# DEUX MODES, PARCE QU'UN SITE N'A PAS DE BOITES (2026-09-02).
#
# `complet` — le serveur de courriel d'un ecosysteme : il RECOIT, resout les
# destinataires dans l'annuaire LDAP et remet a Dovecot par LMTP. C'est le mode
# historique, et il reste le defaut.
#
# `relais` — le site. Il n'heberge aucune boite et n'a ni annuaire ni magasin : il
# EXPEDIE, et rien d'autre. C'est ce dont la supervision a besoin pour alerter.
#
# POURQUOI CE MODE PLUTOT QU'UN SECOND ROLE : les deux partagent tout ce qui compte —
# le certificat et sa resynchronisation, la resolution dans le chroot, la validation de
# la configuration. Un role jumeau aurait duplique ces quatre pieces, et c'est
# exactement le genre de duplication qui finit par diverger sans qu'on le voie.
#
# POURQUOI PAS UN RELAIS SORTANT EXTERNE : le site expedie DIRECTEMENT, par sa
# frontiere. Emprunter le MTA d'un locataire ferait dependre l'hebergeur d'un
# ecosysteme qu'il peut outvivre — une emancipation emporterait son alerte avec elle.
serveur_postfix_mode: "complet"
serveur_postfix_paquets:
- postfix
- postfix-ldap
serveur_postfix_service: "postfix"
serveur_postfix_domaine: "{{ domaine_interne }}"
serveur_postfix_nom_hote: "{{ ansible_fqdn | default(ansible_hostname) }}"
# Réseaux internes de confiance (relais autorisé). À adapter au réseau de l'instance.
serveur_postfix_reseaux_confiance: "127.0.0.0/8 [::1]/128"
# --- Nœud mail-store (Dovecot) : remise LMTP réseau ---
# OBLIGATOIRE : le FQDN/nom du nœud qui héberge les boîtes (Dovecot LMTP).
serveur_postfix_mailstore_hote: ""
serveur_postfix_lmtp_port: 24
# --- Soumission :587 (clients authentifiés) ---
# SASL délégué à Dovecot (passdb LDAP prouvé) sur le nœud mail-store, via son auth réseau.
# Interne uniquement : STARTTLS requis, seuls les authentifiés relaient. Pas de sortie internet.
serveur_postfix_submission_actif: false
serveur_postfix_sasl_hote: "{{ serveur_postfix_mailstore_hote }}"
serveur_postfix_sasl_port: 12345
# --- Annuaire LDAP (validation domaines/boîtes/alias) ---
# Connexion à l'annuaire (serveur, base, bind_dn, bind_password) : fournie par le rôle partagé
# resoudre_annuaire (voir tasks/main.yml « Adopter la connexion annuaire »).
# --- Milter rspamd (antispam + DKIM) — si rspamd est co-localisé (nœud edge-mta) ---
serveur_postfix_rspamd_milter: false
serveur_postfix_rspamd_milter_port: 11332
# --- TLS via le certificat d'hôte step_ca (client_pki) ---
serveur_postfix_tls_actif: true
serveur_postfix_tls_source_cert: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.crt"
serveur_postfix_tls_source_cle: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.key"
serveur_postfix_tls_dir: "/etc/postfix/tls"
# Zero-confiance : verifier le TLS de la livraison LMTP vers Dovecot (cert step-ca).
serveur_postfix_lmtp_tls_verify: false
serveur_postfix_lmtp_tls_cafile: "/etc/step/certs/root_ca.crt"