From c440b776ab817009358e973260aef27b203c1960 Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Thu, 2 Jul 2026 15:17:38 -0400 Subject: [PATCH] =?UTF-8?q?docs(courriel):=20topologie=20MTA=20d=C3=A9di?= =?UTF-8?q?=C3=A9=20(edge)=20+=20bo=C3=AEtes=20internes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Décision : séparer le MTA (Postfix+rspamd, exposé Internet) du stockage des boîtes (Dovecot, interne). Lien Postfix→Dovecot (LMTP + SASL) en réseau chiffré step_ca (réutilise le mTLS). Défense en profondeur : la surface la plus exposée est isolée des données sensibles. Co-Authored-By: Claude Opus 4.8 --- docs/courriel-conception.md | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/docs/courriel-conception.md b/docs/courriel-conception.md index 0ac3acd..16d8b05 100644 --- a/docs/courriel-conception.md +++ b/docs/courriel-conception.md @@ -83,16 +83,31 @@ Réserves : (identité)(certs int.)(DNS interne)(métadonnées, option) ``` -- **mail-01 (primaire)** — **Postfix** (réception `:25`, soumission authentifiée `:587`/`:465`) - + **Dovecot** (IMAP `:993`, livraison LMTP, filtres Sieve, **hébergement des boîtes**, - auth SASL) + **rspamd** (anti-spam, **signature DKIM**, greylisting). Auth des comptes via - **LDAP**. -- **mail-02 (MX de secours)** — **Postfix** en relais, écoute seulement `:25`. Quand mail-01 - est indisponible, **accepte + met en file** l'entrant, puis **retransmet** au rétablissement - → **zéro perte à l'entrée**. À placer idéalement sur un **lien/IP indépendant** (autre site - ou VPS), sinon la résilience est illusoire. +> **Topologie révisée (2026-07-02) — MTA dédié en périphérie, boîtes à l'intérieur.** Le +> schéma ci-dessus (tout-en-un) est **remplacé** par le modèle ci-dessous. -**Décision ouverte : emplacement du MX secours** (même cluster ? VPS ? autre site ?). +``` + Internet ─▶ edge-mta : Postfix + rspamd (EXPOSÉ, aucune boîte) + │ LMTP (remise) + SASL (auth) — réseau, mTLS step_ca + ▼ + mail-store : Dovecot IMAP + boîtes (INTERNE, non exposé) + │ + OpenLDAP · step_ca · PowerDNS +``` + +- **edge-mta (primaire)** — **Postfix** (`:25`, soumission `:587`/`:465`) + **rspamd** + (anti-spam, **DKIM**, greylisting). **Exposé à Internet ; ne stocke aucune boîte.** Auth des + soumissions déléguée à Dovecot (SASL réseau) ; remise via **LMTP réseau** vers `mail-store`. +- **mail-store (interne)** — **Dovecot** : IMAP `:993`, boîtes (Maildir), Sieve, **auth LDAP**. + **Non exposé au public** ; ne parle qu'à `edge-mta` (LMTP + SASL) et aux clients IMAP + internes. Expose LMTP + auth **sur le réseau, chiffré par step_ca**. +- **mta2 (MX de secours)** — **Postfix** relais, `:25` seulement ; file puis transfert quand + `edge-mta` est down ; idéalement sur un **lien/IP indépendant**. + +**Séparation clé** : le MTA (surface la plus exposée) est isolé des **boîtes** (données +sensibles) ; le lien Postfix→Dovecot passe en **réseau chiffré par step_ca** — réutilise le mTLS. + +**Décisions ouvertes** : emplacement du MX secours ; edge-mta co-localisé avec l'edge web ou non. ## 4. Stockage