DovecotVoici notre troisième article sur la mise en place d’un serveur mail sous Rocky Linux 8. L’installation de Postfix nous a permis d’envoyer et de recevoir des e-mails directement sur le serveur, en utilisant le client mutt. En revanche, l’utilisation d’un client mail externe comme Mozilla Thunderbird nécessite un accès distant aux boîtes mail du serveur. C’est là où Dovecot entre en jeu.

Dovecot est un serveur IMAP et POP3 pour les systèmes d’exploitation Unix et dérivés. Nous n’utiliserons que le seul protocole IMAP, où les e-mails restent sur le serveur, tout en étant gérés à distance.

Prérequis

Notre serveur héberge les mails pour plusieurs domaines (en l’occurrence slackbox.fr et unixbox.fr), mais Postfix et Dovecot ne peuvent gérer les certificats que pour un seul domaine. Nous avons donc besoin d’un certificat SAN multi-domaines valable pour tous les domaines que nous gérons.

Les connexions sécurisées au serveur se font via le port 465 en TCP pour le SMTPS et le port 993 en TCP pour l’IMAPS. Il faut donc songer à ouvrir ces deux ports dans le pare-feu :

# firewall-cmd --permanent --add-service=smtps
# firewall-cmd --permanent --add-service=imaps
# firewall-cmd --reload
# firewall-cmd --list-services
dns http https imaps smtp smtps ssh

Pour mes tests, j’utilise l’adresse jean.mortreux@slackbox.fr que j’ai mise en place dans Postfix.

Avant de configurer Thunderbird, il faudra s’assurer que l’utilisateur en question dispose d’au moins un mail :

$ mail jean.mortreux@slackbox.fr
Subject: Mail de bienvenue
Bienvenue sur le serveur mail.slackbox.fr.
.
EOT

AstuceVous comprenez du coup la véritable motivation derrière les mails de bienvenue. Ce n’est pas forcément parce que les fournisseurs d’accès sont des gens bien élevés.

Installation

Dovecot est fourni par les dépôts officiels de Rocky Linux :

# dnf install -y dovecot

Configuration initiale

Les fichiers de configuration de Dovecot se trouvent dans le répertoire /etc/dovecot. En dehors du fichier /etc/dovecot/dovecot.conf, le répertoire /etc/dovecot/conf.d contient une véritable forêt de fichiers de configuration, totalisant plus de 1.800 lignes de texte.

Pas la peine de s’inquiéter pourtant. D’une part, la plupart de ces 1.800 lignes sont des commentaires, souvent très détaillés. Les directives à proprement parler occupent relativement peu de place.

D’autre part, Dovecot est immédiatement utilisable dans sa configuration par défaut, ou presque. Il suffit d’éditer une poignée de directives pour disposer d’un serveur IMAP fonctionnel, et c’est ce que nous allons faire.

Le premier fichier à éditer, c’est /etc/dovecot/dovecot.conf. À la ligne 24, l’option protocols permet de spécifier le protocole du serveur :

# Protocols we want to be serving.
protocols = imap

Un peu plus loin, à la ligne 30, la directive listen permet de définir Dovecot pour l’IPv4 et/ou l’IPv6. Nous n’utiliserons que l’IPv4 :

# A comma separated list of IPs or hosts where to listen in for connections. 
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
listen = *

Ensuite, nous allons autoriser l’authentification en texte clair en éditant /etc/dovecot/conf.d/10-auth.conf à la ligne 10. Décommenter et désactiver l’option disable_plaintext_auth comme ceci :

disable_plaintext_auth = no

Toujours dans le fichier 10-auth.conf, ajouter l’argument login à la directive auth_mechanisms aux alentours de la ligne 100. Cette directive permet à des clients comme Microsoft Outlook de se connecter au serveur :

auth_mechanisms = plain login

Postfix utilise le format Maildir/ pour stocker les mails, et c’est ce que nous allons spécifier à Dovecot dans le fichier /etc/dovecot/conf.d/10-mail.conf, en décommentant et en éditant l’option mail_location à la ligne 30 :

mail_location = maildir:~/Maildir

Configurer l’authentification SMTP pour Postfix

Le MTA Postfix n’est pas capable d’effectuer l’authentification SMTP. C’est Dovecot qui va s’en charger.

Dans un premier temps, éditer /etc/dovecot/conf.d/10-master.confet décommenter la stance suivante aux alentours de la ligne 106 en l’éditant comme ceci :

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
}

Ensuite, ajouter une série de directives au fichier /etc/postfix/main.cf :

# Local aliasing
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
local_recipient_maps = hash:/etc/postfix/local-recips $alias_maps
canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual

# SASL authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# SMTP restrictions
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination

Configurer le chiffrement SSL pour Postfix

Pour activer le chiffrement SSL dans Postfix, il faut éditer /etc/postfix/main.cf et ajouter quatre lignes à la stance qui gère l’authentification SMTP, en précisant le chemin vers le certificat SSL et la clé privée :

# SASL authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/sd-155842.dedibox.fr/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/sd-155842.dedibox.fr/privkey.pem
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

Ensuite, il faut éditer /etc/postfix/master.cf et décommenter les lignes 29 à 31 du fichier :

smtps   inet  n    -    n    -    -   smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes

Configurer le chiffrement SSL pour Dovecot

Les options relatives au chiffrement SSL pour Dovecot sont rassemblées dans le fichier /etc/dovecot/conf.d/10-ssl.conf. Éditer les premières lignes de ce fichier pour indiquer le chemin vers le certificat SSL et la clé privée :

ssl = required
...
ssl_cert = </etc/letsencrypt/live/sd-155842.dedibox.fr/cert.pem
ssl_key = </etc/letsencrypt/live/sd-155842.dedibox.fr/privkey.pem

Mise en service

Activer et démarrer Dovecot :

# systemctl enable dovecot --now

Prendre en compte la nouvelle configuration de Postfix :

# systemctl restart postfix

Configuration de Thunderbird

Sur un poste client, lancez Thunderbird et renseignez d’abord le nom, l’adresse e-mail et le mot de passe :

Thunderbird configuration

Ensuite, cliquez sur Configuration manuelle et renseignez les paramètres de connexion au serveur :

Thunderbird configuration

Cliquez sur Retester pour vérifier la validité de vos paramètres, puis sur Terminé pour valider la configuration :

Thunderbird configuration

Et voilà la boîte de réception avec le message de bienvenue :

Thunderbird configuration


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


3 commentaires

Reynaud Denis · 10 février 2024 à 19 h 07 min

Bonjour, merci pour votre Wiki bien génial. J’ai tout configuré à l’identique sur la version 9.3 de Rocky Linux sur un Raspberry PI4 (architecture aarch64).
Denis Reynaud

    kikinovak · 10 février 2024 à 20 h 07 min

    Merci pour les fleurs. Et content que ça ait pu vous servir, c’est fait pour. (Ndlr : c’est un blog, pas un wiki.)

Reynaud Denis · 10 février 2024 à 20 h 01 min

J’ai juste garder les 2 lignes du fichier /etc/dovecot/conf.d/10-ssl.conf comme elles étaient paramétrée à l’origine, sur mon Raspberry sinon le service ne fonctionnait pas -> c’est à dire :
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *