technique:adminsys:mail:archi

L'architecture

Le serveur de mail est réparti dans deux conteneurs Docker, un pour le MTA, et un autre pour le MDA. Cela permet une plus grande modularité du service, comme de les déplacer d’un serveur à l’autre, par exemple. Après comparaison des différents logiciels existant, Postfix a été retenu pour le MTA et Dovecot pour le MDA.

Ces deux conteneurs ont besoin de communiquer entre eux avec le protocole LMTP, la liaison entre eux est assurée par un docker network (actuellement un bridge).

Le stockage se fait dans un Docker Volume qui assure la persistance des données des conteneurs Docker. Ces données sont stockées au format maildir1).

Nous avons besoin de deux paires de clés qui doivent résister à la suppression des conteneurs: les clés DKIM et les certificats SSL.

Les clés DKIM sont générées manuellement une seule fois puis stockées dans un répertoire qu’on rend accessible au MTA.

Les clés SSL sont susceptibles de changer. Elles sont générées automatiquement par traefik. On utilise les labels des conteneurs pour faire croire à traefik qu’ils exposent du web; ensuite, le conteneur pica-mail-copy-certs va lire les certificats de traefik, extraire ceux du domaine du serveur de mail, les convertir dans un format lisible, puis les coller dans un volume accessible par le MDA et le MTA.

TLSCertsMonitor est utilisé pour récupérer les certificats générés par Traefik et les mettre à disposition des conteneurs du mail.


1)
voir ici pour plus d’explications
  • technique/adminsys/mail/archi.txt
  • de qduchemi