Postfix (edge-mta) faisait verifier chaque mot de passe de soumission par le Dovecot du mailstore, sur :12345. Le client SASL Dovecot de Postfix ne chiffre pas : chaque mot de passe traversait le reseau en clair, et le registre disait ce flux tls. Le flux est supprime, pas chiffre. serveur_postfix pose a cote de lui un Dovecot d'authentification seule (serveur_dovecot/tasks/auth_locale.yml) : coeur + LDAP, aucun protocole, aucun port, joint par private/auth, qui verifie sur l'annuaire en LDAPS. Le 12345 disparait des deux roles et du pare-feu ; serveur_dovecot_sasl_reseau est retire, et une garde arrete l'instance qui le pose encore. Deploye chez les deux locataires ; prouve par un envoi reel chez chacun (sasl_username au journal, remise LMTP, relu par IMAP). test_sasl_local.py garde le changement ; 95 preuves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
61 lines
3 KiB
YAML
61 lines
3 KiB
YAML
---
|
|
# Dovecot 2.4 (Debian 13) — IMAP + LMTP + auth LDAP, stockage Maildir des boîtes virtuelles.
|
|
# Config par drop-in conf.d/99-setops.conf (syntaxe 2.4). Cf. docs/courriel-conception.md.
|
|
|
|
serveur_dovecot_paquets:
|
|
- dovecot-core
|
|
- dovecot-imapd
|
|
- dovecot-lmtpd
|
|
- dovecot-ldap
|
|
|
|
serveur_dovecot_service: "dovecot"
|
|
|
|
# --- Stockage des boîtes virtuelles ---
|
|
serveur_dovecot_vmail_utilisateur: "vmail"
|
|
serveur_dovecot_vmail_uid: 5000
|
|
serveur_dovecot_vmail_gid: 5000
|
|
serveur_dovecot_vmail_base: "/var/vmail"
|
|
# Maildir par utilisateur. Nom d'utilisateur seul → chemin IDENTIQUE pour la remise LMTP
|
|
# (destinataire local-part) et l'accès IMAP (adresse complète). Mono-domaine ; pour du
|
|
# multi-domaine il faudra préserver le domaine des deux côtés (raffinement Étape B).
|
|
serveur_dovecot_mail_path: "{{ serveur_dovecot_vmail_base }}/%{user | username}"
|
|
|
|
# --- Annuaire/auth LDAP (vers serveur_openldap) ---
|
|
# Connexion à l'annuaire (uris, base, bind_dn, bind_password) : fournie par le rôle partagé
|
|
# resoudre_annuaire (voir tasks/main.yml « Adopter la connexion annuaire »).
|
|
# Filtre de connexion : utilisateur = adresse courriel (attribut mail).
|
|
serveur_dovecot_ldap_filter: "(&(objectClass=inetOrgPerson)(mail=%{user}))"
|
|
|
|
# --- TLS via le certificat d'hôte step_ca (client_pki) ---
|
|
serveur_dovecot_tls_actif: true
|
|
serveur_dovecot_tls_source_cert: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.crt"
|
|
serveur_dovecot_tls_source_cle: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.key"
|
|
serveur_dovecot_tls_dir: "/etc/dovecot/tls"
|
|
|
|
# --- Intégration Postfix (sockets sous le chroot Postfix) ---
|
|
serveur_dovecot_postfix_socket_dir: "/var/spool/postfix/private"
|
|
|
|
# --- LMTP réseau : pour un MTA DISTANT (Postfix sur le nœud edge-mta) qui livre
|
|
# par LMTP réseau. À restreindre au nœud MTA par pare-feu (nftables) en prod.
|
|
serveur_dovecot_lmtp_reseau: true
|
|
serveur_dovecot_lmtp_port: 24
|
|
|
|
# --- Authentification de la soumission : LOCALE A POSTFIX, plus jamais par le reseau ---
|
|
# Jusqu'au 2026-10-12, Postfix (edge-mta) interrogeait ce Dovecot sur :12345 ; le client
|
|
# SASL Dovecot de Postfix ne chiffre pas, et les mots de passe passaient en clair. Ce port
|
|
# n'existe plus : `serveur_postfix` pose a cote de lui un Dovecot d'authentification seule
|
|
# (`tasks/auth_locale.yml`), qui verifie sur l'annuaire en LDAPS.
|
|
serveur_dovecot_auth_locale_paquets:
|
|
- dovecot-core
|
|
- dovecot-ldap
|
|
|
|
# TLS sur le port LMTP. Doit rester ACCORDE avec `serveur_postfix_lmtp_tls_verify` du
|
|
# cote emetteur : l'un sans l'autre, la livraison interne s'arrete — soit elle part en
|
|
# clair, soit elle est differee sans fin.
|
|
serveur_dovecot_lmtp_tls: true
|
|
|
|
# --- Sonde de supervision -----------------------------------------------------------
|
|
# UN COMPTE QUI DOIT EXISTER. Le resoudre prouve la chaine entiere : demon, configuration,
|
|
# bind LDAP, mappage userdb. Variable, donc mise en defaut avec un nom inexistant sans
|
|
# toucher a l'annuaire.
|
|
serveur_dovecot_sonde_utilisateur: "daniel"
|