:PROPERTIES:
:ID:       c226d1ef-02e8-4cd5-bce6-e91a3843a291
:mtime:    20220527114245
:ctime:    20220526083306
:END:
#+title: Exim+dovecot

* Introduction
La solution de serveur de mail est basée sur les OSS suivants :
 * [[https://www.exim.org/][Exim4]] : MTA léger (Serveur de mail SMTP),
 * [[https://www.dovecot.org/][Dovecot]] :
   * Serveur de mail POP/IMAP orienté sécurité,
   * gère les formats de boîte de messagerie [[https://fr.wikipedia.org/wiki/Mbox][mbox]] et [[https://fr.wikipedia.org/wiki/Maildir][maildir]].

* Les différents composants
** Mail Transfer Agent (MTA)
Composant en charge de :
 * La transmission des mail émis par ses utilisateurs vers un autre MTA,
 * L'acceptation des mails dont ses propres utilisateurs sont destinataires.
Les MTA communiquent entre eux via le protocole SMTP.

** Mail Delivery Agent (MDA)
Composant en charge de :
 * La réception des mails acceptés par le MTA,
 * Trie et dépose des mails reçus dans les boites de réception des utilisateurs.

** Mail Retrieval Agent (MRA)
Composant collectant, depuis le poste de l'utilisateur, de ses mails hébergés par le serveur.

** Mail User Agent (MUA)
Composant "IHM" :
 * Affichage des mails reçus,
 * Formattage des mails écrits.

** Mail Submission Agent (MSA)
Composant relai entre le MUA et le MTA.

* Sécurisation
** [[https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail][DKIM]]
DKIM :
 * Est un système de signature de mails en sortie de MTA,
 * La signature consiste en une clé publique disponible depuis le serveur DNS résolvant les noms associés au serveur,
 * Permet de garantir l'intégrité du message et certifier que l'émetteur du message dispose du couple clef privée/clef publique dont cette dernière est référencée sur le serveur DNS du domaine de courrier électronique.

* Installation
** Exim4
*** Fichier exim4.conf.template
Modifier la section ~MAIN CONFIGURATION SETTINGS~ du fichier :
#+BEGIN_SRC shell 
MAIN_TLS_ENABLE=true
MAIN_TLS_CERTIFICATE=/etc/letsencrypt/live/smtp.adrien.run/fullchain.pem
MAIN_TLS_PRIVATEKEY=/etc/letsencrypt/live/smtp.adrien.run/privkey.pem

DKIM_DOMAIN=adrien.run
DKIM_SELECTOR=mail
DKIM_PRIVATE_KEY=/etc/exim4/dkim.pem
#+END_SRC
*** Fichier update-exim4.conf.conf
#+BEGIN_SRC shell
cat >/etc/exim4/update-exim4.conf.conf <<EOF
dc_eximconfig_configtype='internet'
dc_other_hostnames='adrien.run;mail.adrien.run'
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='51.210.12.56' # Server IP
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'
EOF
#+END_SRC

** Pour relancer automatiquement /dovecat/ après un renouvellement de certificat par /cerbot/
#+BEGIN_SRC shell
OUTPUT=/etc/letsencrypt/renewal-hooks/deploy/dovecat
cat >${OUTPUT} <<EOF
#!/bin/bash

for domain in $RENEWED_DOMAINS; do
        if [ "$domain" = imap.adrien.run ]; then
                doveadm reload >/dev/null
        fi
done	
EOF
chmod +x ${OUTPUT}
#+END_SRC

Différents tutoriels utiles :
 * [[https://transang.me/setup-a-production-ready-exim-dovecot-server/][Setup a production-ready exim/dovecot server - Tran Sang]]
 * [[https://www.geekrant.org/2017/04/16/install-exim4-starttls-using-a-free-letsencrypt-certificate/][Install exim4 STARTTLS using a free LetsEncrypt certificate - Geekrant]]
 * [[https://buzut.net/connaitre-commandes-dompter-exim4/][Les commandes essentielles pour dompter Exim4 - Buzut]]

Le site [[https://mxtoolbox.com/SuperTool.aspx?action=smtp%3amail.adrien.run&run=toolpage][mxtoolbox]] permet de vérifier la configuration de serveurs de mail.
   

* Références
 * [[https://medspx.fr/blog/Debian/exim4_beginner/][Solution de serveur de courrier électronique auto-hébergé (partie 2) : Débuter avec Exim4 sous Debian - Médéric Ribreux]]
 * [[https://medspx.fr/blog/Debian/exim4_beginner_part2/][Solution de serveur de courrier électronique auto-hébergé (partie 5) : Aller plus loin avec Exim4 sous Debian - Médéric Ribreux]]
 * [[https://medspx.fr/blog/Debian/mise_en_place_dkim_spf_dmarc_exim4_debian/][Mise en place de DKIM, SPF, DMARC sur Debian Jessie pour Exim4 - Médéric Ribreux]]
   * 
