Réglages Dovecot 2.4 qui débloquent la remise LMTP (durement gagnés au
premier flux réel) :
- userdb static { static_allow_all_users = yes } : sinon le userdb exige
un passdb et renvoie NOTFOUND (expéditeur/raw-mail-user externe absent
de l'annuaire) → rejet 550.
- mail_inbox_path vidé : le défaut 2.4 (/var/mail/%{user}, mbox root)
refusait l'autocréation de l'INBOX (Permission denied).
- Maildir explicite : mail_home + mail_path = %{home}/Maildir.
- Chemin par nom d'utilisateur : home identique côté LMTP (local-part) et
IMAP (adresse complète). Mono-domaine ; multi-domaine = raffinement.
Prouvé de bout en bout : envoi → Postfix (validation LDAP) → LMTP →
Dovecot → boîte → LU EN IMAP (auth LDAP, TLS step_ca). status=sent.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
44 lines
2.1 KiB
YAML
44 lines
2.1 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) ---
|
|
serveur_dovecot_ldap_uris: "ldaps://id-ldap-01.{{ domaine_interne }}:636"
|
|
serveur_dovecot_ldap_base: "dc={{ domaine_interne.split('.') | join(',dc=') }}"
|
|
# Compte de service pour la recherche (bind DN). En bac à sable : l'admin LDAP.
|
|
serveur_dovecot_ldap_bind_dn: "cn=admin,{{ serveur_dovecot_ldap_base }}"
|
|
serveur_dovecot_ldap_bind_password: "{{ vault_openldap_admin | default('') }}"
|
|
# 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
|