Set-OPS-Public/roles/serveur_dovecot/templates/99-setops.conf.j2
Daniel Allaire 7549c61e75 serveur_dovecot (Dovecot 2.4) : IMAP + auth LDAP + TLS step_ca — prouvé
Rôle mail : IMAP :993/:143 + LMTP, auth/annuaire LDAP (serveur_openldap),
stockage Maildir (user vmail), TLS via step_ca (pont de cert + resync au
renouvellement), auth système par défaut neutralisée. Config drop-in en
syntaxe Dovecot 2.4 (mail_driver, ssl_server_cert_file, passdb ldap),
validée par doveconf au déploiement. Sockets Postfix conditionnels à la
présence de l'utilisateur postfix (co-localisation).

Déployé et prouvé sur infra-mail-01 : doveadm auth test — bon mot de passe
accepté, mauvais refusé, cert IMAPS émis par step_ca. Format 2.4 validé
empiriquement avant l'écriture (leçon « éprouver l'outil »).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 15:09:37 -04:00

58 lines
1.7 KiB
Django/Jinja

# Géré par Set-OPS (rôle serveur_dovecot). Ne pas éditer à la main. Syntaxe Dovecot 2.4.
dovecot_config_version = 2.4.0
protocols {
imap = yes
lmtp = yes
}
# --- Stockage Maildir (boîtes virtuelles) ---
mail_driver = maildir
mail_path = {{ serveur_dovecot_mail_path }}
first_valid_uid = {{ serveur_dovecot_vmail_uid }}
first_valid_gid = {{ serveur_dovecot_vmail_gid }}
# --- TLS (certificat step_ca, via le pont) ---
ssl = required
ssl_server_cert_file = {{ serveur_dovecot_tls_dir }}/cert.pem
ssl_server_key_file = {{ serveur_dovecot_tls_dir }}/key.pem
ssl_min_protocol = TLSv1.2
# --- Auth / annuaire LDAP (serveur_openldap) ---
auth_mechanisms = plain login
ldap_uris = {{ serveur_dovecot_ldap_uris }}
ldap_base = {{ serveur_dovecot_ldap_base }}
ldap_auth_dn = {{ serveur_dovecot_ldap_bind_dn }}
ldap_auth_dn_password = {{ serveur_dovecot_ldap_bind_password }}
passdb ldap {
ldap_filter = {{ serveur_dovecot_ldap_filter }}
ldap_bind = yes
}
userdb static {
fields {
uid = {{ serveur_dovecot_vmail_utilisateur }}
gid = {{ serveur_dovecot_vmail_utilisateur }}
home = {{ serveur_dovecot_mail_path }}
}
}
# --- Sockets pour Postfix (remise LMTP + auth SASL) ---
# Seulement si Postfix est co-localisé (l'utilisateur postfix existe). Sinon Dovecot
# tourne en autonome (IMAP) ; les sockets seront ajoutés au déploiement de serveur_postfix.
{% if serveur_dovecot_postfix_present | default(false) %}
service lmtp {
unix_listener {{ serveur_dovecot_postfix_socket_dir }}/dovecot-lmtp {
user = postfix
group = postfix
mode = 0600
}
}
service auth {
unix_listener {{ serveur_dovecot_postfix_socket_dir }}/auth {
user = postfix
group = postfix
mode = 0660
}
}
{% endif %}