Voici notre troisième article sur la mise en place d’un serveur mail sous CentOS 7. 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.
La première configuration proposée ici n’a qu’une visée pédagogique. Elle n’est pas sécurisée. Pour utiliser Dovecot dans un environnement de production, nous devons impérativement ajouter le chiffrement SSL/TLS par la suite.
- Prérequis
- Installation
- Configuration initiale
- Configurer l’authentification SMTP pour Postfix
- Premier lancement
- Configuration de Thunderbird
Prérequis
Dans le pare-feu, il faudra ouvrir le port 143 en TCP pour le protocole IMAP.
$ sudo firewall-cmd --permanent --add-service=imap $ sudo firewall-cmd --reload $ sudo firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dns ftp http https imap irc smtp ssh ports: 50001-50010/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
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
Vous 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 le dépôt officiel de CentOS.
$ sudo yum install 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 près de 1.500 lignes de texte.
Pas la peine de s’inquiéter pourtant. D’une part, la plupart de ces 1.500 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. Cet argument permet à des clients comme Outlook Express ou Windows Mail 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
Désactiver le chiffrement SSL dans /etc/dovecot/conf.d/10-ssl.conf
, à la ligne 8.
ssl = no
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.conf
, décommenter la stance suivante aux alentours de la ligne 96 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 à la fin du fichier /etc/postfix/main.cf
.
# Authentification SMTP smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth # Restrictions SMTP smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Prendre en compte les modifications.
$ sudo systemctl reload postfix
Premier lancement
Activer et démarrer Dovecot.
$ sudo systemctl enable dovecot --now
Vérifier si Dovecot tourne correctement.
$ systemctl status dovecot ● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor preset: disabled) Active: active (running) since ven. 2019-06-14 15:39:46 CEST; 4s ago
Configuration de Thunderbird
Sur un poste client, lancer Thunderbird, interrompre la configuration automatique en cliquant sur Configuration manuelle et renseigner les champs comme ceci. Ne cliquez pas sur Tester, ça ne fonctionnera pas, étant donné que nous ne disposons pas (encore) d’une connexion sécurisée.
Étant donné que nous n’utilisons aucun chiffrement, Thunderbird nous gratifie d’un avertissement haut en couleurs, ce qui est tout à fait normal. N’oublions pas que dans la configuration actuelle, nos données d’utilisateur se baladent en texte clair dans le réseau.
À partir de là, nous sommes prêts à envoyer et recevoir des mails à des fins de test.
Si l’envoi de messages ne fonctionne pas, c’est que votre fournisseur d’accès a très probablement bloqué les connexions vers le port 25. Nous pourrions certes définir un autre port SMTP pour contourner ce blocage, mais vous verrez que le problème se résoudra avec l’utilisation d’un autre port avec le chiffrement.
La sécurisation des connexions fera l’objet de notre prochain article.
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.
5 commentaires
Mortier · 9 octobre 2020 à 16 h 09 min
Bonjour,
votre article m’a été bien utile. J’ai fait le test suivant complètement en local : J’arrive bien à envoyer avec thunderbird un mail à mortier@localhost (/var/log/messages montre bien l’ouverture du port smtp et la connection), mais ce mail arrive dans /var/spool/mail/mortier et pas dans Maildir vers lequel pointe la config dovecot. Inutile de dire que ne connaissant que les bases des bases d’administration de mon pc sous centos7, je ne sais pas analyser ce problème. Merci de votre aide.
LM
kikinovak · 9 octobre 2020 à 16 h 17 min
Effectivement, l’article s’adresse plutôt à des administrateurs ayant un peu d’expérience.
Peut-être une suggestion ?
EJ · 15 juillet 2022 à 15 h 20 min
Hello
Config qui ne peut pas fonctionner telle quelle puisque les dossiers Maildir n’existent pas et que (potentiellement) les droits sont KO.
Sinon article clair que certains devraient prendre en exemple…
kikinovak · 15 juillet 2022 à 15 h 27 min
Si, ça fonctionne. Les dossiers
~/Maildir
sont simplement créés à la volée. (En revanche, votre domaine est expiré.)Le blog technique de Microlinux – C'est bien fait pour vous > Seekalgo · 20 décembre 2020 à 13 h 50 min
[…] Serveur IMAP avec Dovecot sous CentOS 7 […]
Les commentaires sont fermés.