# serveur_dovecot **Mailstore** : Dovecot 2.4 (Debian 13) — IMAP pour les utilisateurs, LMTP pour la remise depuis Postfix, authentification et résolution des comptes sur l'annuaire OpenLDAP. Stockage **Maildir** de boîtes virtuelles. Cf. `docs/courriel-conception.md`. ## Rôle - Installe `dovecot-core`, `-imapd`, `-lmtpd`, `-ldap`. - Crée l'utilisateur/groupe système `vmail` (uid/gid 5000) et `/var/vmail`. - **TLS** : pont de certificat step_ca (`client_pki`) — script `setops-dovecot-cert-sync` + unités `.service`/`.path` qui recopient le certificat d'hôte dans `/etc/dovecot/tls` et rechargent Dovecot **à chaque renouvellement**. - **Annuaire** : connexion fournie par le rôle partagé `resoudre_annuaire` (uri, base, bind_dn, bind_password) — rien de codé en dur. - Déploie toute la configuration en **un drop-in** `conf.d/99-setops.conf` (syntaxe 2.4), valide avec `doveconf` avant d'activer le service. - Désactive l'auth système par défaut : **LDAP est l'unique autorité**. ## Réglages Dovecot 2.4 qui comptent La 2.4 a changé la donne par rapport à la 2.3 ; ces trois points conditionnent la remise : - `static_allow_all_users` pour le userdb static ; - `mail_inbox_path` laissé **vide** ; - `mail_path` **par utilisateur** — `{{ vmail_base }}/%{user | username}`. Le local-part seul (`| username`) donne le **même chemin** pour la remise LMTP (destinataire local-part) et l'accès IMAP (adresse complète) — c'est ce qui fait fonctionner le flux bout-en-bout en mono-domaine. ## Variables principales | Variable | Défaut | Rôle | | --- | --- | --- | | `serveur_dovecot_vmail_base` | `/var/vmail` | Racine des boîtes | | `serveur_dovecot_mail_path` | `/%{user \| username}` | Chemin Maildir par compte | | `serveur_dovecot_ldap_filter` | `(&(objectClass=inetOrgPerson)(mail=%{user}))` | Login = adresse courriel | | `serveur_dovecot_tls_actif` | `true` | Pont de certificat step_ca | | `serveur_dovecot_lmtp_reseau` | `true` | LMTP :24 pour un MTA **distant** (edge-mta) | | `serveur_dovecot_sasl_reseau` | `false` | Auth SASL réseau :12345 pour la soumission :587 | ## Flux (`meta/flux.yml`) `993/tcp` IMAPS (utilisateurs) · `24/tcp` LMTP ← Postfix (TLS vérifié) · `12345/tcp` SASL ← Postfix · `636/tcp` → OpenLDAP (userdb/passdb). ## Notes / limites - **Mono-domaine** : le chemin ne conserve pas le domaine. Le multi-domaine demandera de le préserver des deux côtés (raffinement Étape B). - LMTP et SASL **réseau** doivent être restreints au nœud MTA par pare-feu — c'est ce que fait `nftables_baseline` à partir de `meta/flux.yml` (`pair: serveur_postfix`). - Si Postfix est **co-localisé**, le rôle bascule sur les sockets sous le chroot (`/var/spool/postfix/private`) plutôt que sur le réseau (détection automatique). - Le certificat est **exigé** : sans `client_pki` sur le nœud, le rôle échoue explicitement. ## Prérequis - `serveur_dovecot requiert serveur_openldap actif` (`docs/dependances-groupes.yml`). - `client_pki` appliqué sur le nœud (couche `pki_client`, avant la couche `services`).