fbpx

Postfix – le serveur IMAP Dovecot sur Ubuntu et activer le cryptage TLS – partie 2

Débutant – Dovecote et activer le crytage TLS

Postfix avec dovecot

Vue d’ensemble

Dovecot est un serveur entrant qui vous permet de recevoir les mails et aussi, nous allons sécuriser le serveur avec l’aide de Let’s Encrypt pour obtenir un certificat SSL/TLS.

Ce que vous apprendrez

Dans la partie 1, nous vous avons montré comment configurer un serveur SMTP Postfix de base.

Voici la deuxième partie de la série de tutoriels sur la création de votre propre serveur de messagerie sécurisé sur Ubuntu .

Dans ce tutoriel, nous allons configurer notre serveur de messagerie de manière à pouvoir envoyer et recevoir des courriels à l’aide d’un client de messagerie de bureau comme Microsoft Outlook.

  • Explication du serveur
  • Installer Dovecot
  • Compréhension des différents fichiers
  • Personnalisation du fichier de configuration générale
  • Personnaliser le fichier pour MySQL
Sommaire
2
3

Dovecot comprendre son fonctionnement

Pour pouvoir envoyer des courriels à l’aide d’un client de messagerie de bureau, nous devons activer le service de soumission dans Postfix.

Le service de soumission est le protocole 587 pour le serveur SMTP.

Mais nous avons aussi le protocole de soumission pour le protocole 465.

Pour recevoir des courriels à l’aide d’un client de messagerie de bureau, nous pouvons installer un serveur IMAP open-source nommé Dovecot sur le serveur Ubuntu.

Et pour crypter nos communications, nous avons besoin d’un certificat TLS.

Pour installer Dovecot, nous avons besoin des paquets de Debian.

Ces paquets sont composés de plusieurs modules.

  1.  dovecot-core
  2. dovecot-imapd
  3. dovecot-lmtpd
  4. dovecot-managesieved
  5. dovecot-mysql
  6. dovecot-pop3d
  7. dovecot-sieve
  8. dovecot-submissiond

Dovecot est composé de trois fichiers d’origines.

  • dovecot.conf
  • dovecot-dict-auth.conf.ext
  • dovecot-sql.conf.ext

Il comprend deux dossiers :

  • conf.d
  • private

Dans le dossier conf.d, vous avez 22 fichiers qui ont une fonction bien spécifique.

Les chiffres sont l’ordre de priorité.

Je vous les énumère  :

Dovecot serveur Imap sur Ubuntu

Dovecot permet d’avoir son propre serveur entrant. Vous pouvez suivre cette formation gratuite, pour la mise en place d’un serveur Imap et sécurisé.

Détails
  • Débutant
  • 2 heures
  • Mise à jour : 06/01/2024
Pré-requis
Installer Postfix
  • 10-auth.conf
  • 10-director.conf
  • 10-logging.conf
  • 10-mail.conf
  • 10-master.conf
  • 10-ssl.conf
  • 10-tcpwrapper.conf
  • 15-lda.conf
  • 15-mailboxes.conf
  • 20-imap.conf
  • 20-pop3.conf
  • 90-acl.conf
  • 90-plugin.conf
  • 90-quota.conf
  • auth-checkpassword.conf.ext
  • auth-deny.conf.ext
  • auth-master.conf.ext
  • auth-passwdfile.conf.ext
  • auth-sql.conf.ext
  • auth-static.conf.ext
  • auth-system.conf.ext
  • auth-vpopmail.conf.ext
10-auth.conf

10-auth.conf, vous pouvez voir sans ce fichier que c'est un système d'identification de différentes façons. Je vous donne les principaux :

Système
sql
ldap (annuaire)

10-director.conf

10-director.conf, paramètres spécifiques au directeur.

Director peut être utilisé par le proxy Dovecot pour conserver une correspondance temporaire entre l'utilisateur et le serveur de messagerie.
Temporaire.

10-logging.conf
p

10-logging.conf, paramètre le fichier logs que pour avoir les informations que nous voulons avoir.

10-mail.conf

10-mail.conf, Emplacement des boîtes aux lettres et espaces de noms. Emplacement des boîtes aux lettres des utilisateurs

10-master.conf

10-master.conf, vous pouvez ouvrir les différents services et ports pop, imap, lmtp, que vous voulez utiliser.

10-tcpwrapper.conf

10-tcpwrapper.conf,

10-ssl.conf

10-ssl.conf, vous activez le certificat de votre domaine soit avec Let's Encrypt ou autohébergé pour votre sécurité. Et les différents protocoles SSL.

15-lda.conf

15-lda.conf, Le MDA permet de distribuer les courriels, par l'Agent de Distribution Locale (LDA) du MDA.

5-mailboxes.conf

5-mailboxes.conf,

5-mailboxes.conf

5-mailboxes.conf

20-lmtp

20-lmtp, Protocole Local de Transport des Courriels (LMTP) du MTA qui est une variante locale au serveur de messagerie du SMTP

20-pop3.conf

20-pop3.conf

90-acl.conf

90-acl.conf

90-plugin.conf

90-plugin.conf

90-quotas.conf

90-quotas.conf,

auth-checkpassword.conf.ext

auth-checkpassword.conf.ext

auth-deny.conf.ext
Q

auth-deny.conf.ext

auth-dict.conf.ext

auth-dict.conf.ext,

auth-dict.conf.ext

auth-dict.conf.ext

Auth-passwdfile.conf.ext

Auth-passwdfile.conf.ext

Auth-sql.conf.ext

Auth-sql.conf.ext,

Auth-static.conf.ext

Auth-static.conf.ext

Auth-system.conf.ext

Auth-system.conf.ext

Vérifier les ports ouverts dans le pare-feu

Ubuntu n’active pas le pare-feu par défaut. Si vous avez activé le pare-feu UFW, vous devez exécuter la commande suivante pour ouvrir les ports liés au courrier électronique dans le pare-feu.

Commande

sudo ufw allow

80,443,587,465,143,993/tcp

Si vous utilisez POP3 pour récupérer des courriels (personnellement, je ne le fais pas), ouvrez également les ports 110 et 995.

Commande

sudo ufw allow 110,995/tcp

Sécuriser le trafic du serveur de messagerie avec un certificat TLS

Lorsque nous configurons nos clients de messagerie de bureau, c’est toujours une bonne idée d’activer le cryptage TLS pour empêcher les pirates d’espionner nos courriels.

Nous pouvons facilement obtenir un certificat TLS gratuit auprès de Let’s Encrypt. Exécutez les commandes suivantes pour installer le client Let’s Encrypt (certbot) sur le serveur Ubuntu à partir du dépôt de logiciels par défaut.

Commande :

sudo apt update

sudo apt dist-upgrade

sudo apt install certbot

Si vous n’avez pas encore de serveur web, je vous recommande d’en installer un (Apache), car il est plus facile d’obtenir et d’installer un certificat TLS avec un serveur web qu’en utilisant d’autres méthodes. Dans un prochain tutoriel, je vous montrerai comment configurer le webmail, qui nécessite l’utilisation d’un serveur web.

Si vous utilisez le serveur web Apache, vous devez installer le plugin Apache. (La commande suivante installera le serveur web Apache s’il n’est pas déjà installé sur votre système).

Commande

sudo apt install python3-certbot-apache

Obtentir un certificat TLS avec le serveur Web Apache

Vous devez disposer d’un hôte virtuel Apache pour mail.domain.tld avant d’obtenir le certificat TLS de Let’s Encrypt.

Créez le fichier de l’hôte virtuel :

Commande :

sudo nano /etc/apache2/sites-available/mail.domain.tld.conf

Collez ensuite le texte suivant dans le fichier.

Commande

ServerName mail.domain.tld

DocumentRoot /var/www/html/

Enregistrez et fermez le fichier. Activer cet hôte virtuel.

Commande

cd /etc/apache2/site-available

sudo a2ensite mail.domain.tld.conf

Désactivez ensuite l’hôte virtuel par défaut, car il risque d’interférer avec d’autres hôtes virtuels.

Commande

sudo a2dissite 000-default

Rechargez Apache pour que les modifications soient prises en compte.

Commande

sudo systemctl reload apache2

Une fois l’hôte virtuel créé et activé, exécutez la commande suivante pour obtenir le certificat TLS de Let’s Encrypt.

Commande

sudo certbot certonly -a apache --agree-tos --no-eff-email --staple-ocsp --email letsencrypt@domain.tld-d mail.domain.tld

J’utilise un alias comme adresse mail pour que j’aie créé avant sur le sur de Gandi.

Comprendre les

  • -a apache : Utilise le plugin Apache pour l’authentification
  • –agree-tos : Accepte les conditions d’utilisation.
  • –no-eff-email : Ne pas recevoir d’e-mails de la fondation EFF.
  • –staple-ocsp : Active l’agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.
  • –email : Saisissez votre adresse électronique, qui est utilisée pour les notifications importantes et la récupération de votre compte.
  • -d : domaine, c’est-à-dire le nom d’hôte de votre serveur de messagerie.

Remplacez le texte en orange par vos données réelles.

Vous devriez voir ce qui suit, ce qui signifie que le certificat a été obtenu avec succès.

Vous pouvez également voir le répertoire dans lequel votre certificat est stocké.

IMPORTANT NOTES:
  • Congratulations ! Your certificate and chain have been saved at:
    /etc/letsencrypt/live/mail.domain.tld/fullchain.pem
    Your key file hase been saved at:
    /etc/letsencrypt/live/mail.domain.tld/privkey.pem
    Your cert will expire on 2024-01-06. To obtain a new or tweaked
    version of this certificate in the future, simply run cerbot
    To non-interactively renew *all* of your certificates, run
    "cerbot renew"
  • Your account credentials have been saved in your Cerbot
    configuration directory at /etc/letsencrypt/. You should make a
    secure backup of this folder now. This configuration directory will
    also contain certificates and privates keys obtained by Cerbot so
    making regular backup of this folder is ideal.
  • If you like Cerbot, please consider supporting our work by:

Doanting to ISRG / Let’s Encrypt: https://letsencrypt.org/donate

Doanting to EFF: https://eff.org/donate

Activer le service de soumission dans Postfix

Pour envoyer des courriels à partir d’un client de messagerie de bureau, nous devons activer le service de soumission de Postfix afin que le client de messagerie puisse soumettre des courriels au serveur SMTP de Postfix. Modifiez le fichier master.cf.

Commande

sudo nano /etc/postfix/master.cf

Dans la section soumission, décommentez ou ajoutez les lignes suivantes. Veuillez prévoir au moins un espace blanc (tabulation ou barre d’espacement) avant -o.

Dans les configurations postfixes, un caractère d’espacement précédent signifie que cette ligne est la suite de la ligne précédente. (Par défaut, la section de soumission est commentée.

Vous pouvez copier les lignes suivantes et les coller dans le fichier, afin de ne pas avoir à décommenter manuellement ou à ajouter du texte).

Fichier /etc/postfix/master.cf

# Activation du port 587

submission inet n - y - - smtpd

-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_wrappermode=no
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth

La configuration ci-dessus active le démon de soumission de Postfix et requiert le cryptage TLS. Ainsi, par la suite, notre client de messagerie de bureau pourra se connecter au démon de soumission avec un cryptage TLS. Le démon de soumission écoute sur le port TCP 587. STARTTLS est utilisé pour crypter les communications entre le client de messagerie et le démon de soumission.

Microsoft Outlook ne prend en charge que la soumission sur le port 465. Si vous utilisez Microsoft Outlook, vous devez également activer le service de soumission sur le port 465 en ajoutant les lignes suivantes dans le fichier.

Fichier /etc/postfix/master.cf

# ACitvation du port 465

smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/authh=private/auth

Enregistrez et fermez le fichier.

Conseil : Le protocole SMTP est utilisé lorsqu’un client de messagerie envoie des courriels à un serveur SMTP.

Ensuite, nous devons spécifier l’emplacement du certificat TLS et de la clé privée dans le fichier de configuration de Postfix. Editez le fichier main.cf.

Commande :

sudo nano /etc/postfix/main.cf

Modifiez le paramètre TLS comme suit. N’oubliez pas de remplacer mail.domain.tld par votre véritable nom d’hôte.

Commande :

#Enable TLS Encryption when Postfix receives incoming emails

smtpd_tls_cert_file=/etc/letsencrypt/live/mail.domain.tld/fullchain.pem

smtpd_tls_key_file=/etc/letsencrypt/live/mail.domain.tld/privkey.pem

smtpd_tls_security_level=may

smtpd_tls_loglevel = 1

smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

#Enable TLS Encryption when Postfix sends outgoing emails

smtp_tls_security_level = may

smtp_tls_loglevel = 1

smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

#Enforce TLSv1.3 or TLSv1.2

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

Votre certificat Let’s Encrypt et votre clé privée sont stockés dans le répertoire /etc/letsencrypt/live/mail.domain.tld.

Imap dovecot  configruration TLS dans Postfix

Enregistrez et fermez le fichier. Redémarrez ensuite Postfix.

sudo systemctl restart postfix

Si vous exécutez la commande suivante, vous verrez que Postfix écoute maintenant sur les ports 587 et 465.

Commande :

sudo ss -lnpt | grep master

IMAP dovecot serveur postfix differents ports messagerie

Installer le serveur IMAP Dovecot

Entrez la commande suivante pour installer le paquetage de base de Dovecot et le paquetage du démon IMAP sur le serveur Ubuntu.

Commande :

sudo apt install dovecot-core dovecot-imapd

Si vous utilisez POP3 pour récupérer les courriels, installez également le paquet dovecot-pop3d.

Commande :

sudo apt install dovecot-pop3d

Vérifier la version de Dovecot :

Commande :

dovecot --version

Activation du protocole IMAP/POP3

Modifiez le fichier de configuration principal.

Commande :

protocols = imap

imap_dovecot_serveur activer imap

Si vous utilisez POP3 pour récupérer des courriels, ajoutez également le protocole POP3.

Commande :

protocols = imap pop3

Enregistrez et fermez le fichier.

Configuration de l'emplacement de la boîte aux lettres

Par défaut, Postfix et Dovecot utilisent le format mbox pour stocker les courriels.

Les emails de chaque utilisateur sont stockés dans un seul fichier /var/mail/username.

Vous pouvez exécuter la commande suivante pour trouver le répertoire du spool de courrier. 

Commande :

postconf mail_spool_directory

Exemple de sortie :

Commande :

mail_spool_directory = /var/mail

Cependant, de nos jours, il est presque toujours préférable d’utiliser le format Maildir pour stocker les messages électroniques. Le fichier de configuration pour l’emplacement de la boîte aux lettres est /etc/dovecot/conf.d/10-mail.conf. 

Commande :

sudo nano /etc/dovecot/conf.d/10-mail.conf

La configuration par défaut utilise le format de courrier mbox.

Commande :

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Modifiez-le comme suit pour que Dovecot utilise le format Maildir.

Les messages électroniques seront stockés dans le répertoire Maildir sous le répertoire personnel de chaque utilisateur.

Commande :

mail_location = maildir:~/Maildir

Nous devons ajouter la ligne suivante dans le fichier. (Sur Ubuntu 18.04 et 20.04, cette ligne est déjà dans le fichier).

Commande :

mail_privileged_group = mail

Sauvegardez et fermez le fichier.

Ajoutez ensuite dovecot au groupe de messagerie afin que Dovecot puisse lire l’INBOX.

Commande :

sudo adduser dovecot mail

Utilisation de Dovecot pour envoyer des courriels au magasin de messages

Bien que nous ayons configuré Dovecot pour stocker les emails au format Maildir, par défaut, Postfix utilise son agent de livraison local intégré (LDA) pour déplacer les emails entrants vers le magasin de messages (inbox, sent, trash, Junk, etc), et ils seront sauvegardés au format mbox.

Nous devons configurer Postfix pour qu’il transmette les emails entrants à Dovecot, via le protocole LMTP, qui est une version simplifiée de SMTP, afin que les emails entrants soient sauvegardés au format Maildir par Dovecot.

LMTP permet d’avoir un système de messagerie très évolutif et fiable. Il nous permet également d’utiliser le plugin sieve pour filtrer les messages entrants vers différents dossiers.

Installer le serveur LMTP Dovecot.

Commande :

sudo apt install dovecot-lmtpd

Editez le fichier de configuration principal de Dovecot.

Commande :

sudo nano /etc/dovecot/dovecot.conf

Ajouter lmtp aux protocoles pris en charge.

Commande :

protocols = imap lmtp

Sauvegardez et fermez le fichier.

Editez ensuite le fichier Dovecot 10-master.conf.

Commande :

sudo nano /etc/dovecot/conf.d/10-master.conf

Modifiez la définition du service lmtp comme suit.

Commande :

service lmtp {

unix_listener /var/spool/postfix/private/dovecot-lmtp {

mode = 0600

user = postfix

group = postfix

}

}

Ensuite, éditez le fichier de configuration principal de Postfix.

Commande :

sudo nano /etc/postfix/main.cf

Ajoutez les lignes suivantes à la fin du fichier. La première ligne indique à Postfix de livrer les courriels entrants au magasin de messages local via le serveur LMTP Dovecot.  La deuxième ligne désactive SMTPUTF8 dans Postfix, car Dovecot-LMTP ne supporte pas cette extension.

Commande :

mailbox_transport = lmtp:unix:private/dovecot-lmtp

smtputf8_enable = no

 Enregistrez et fermez le fichier.

Configuration du mécanisme d'authentification

Modifier le fichier de configuration de l’authentification.

Commande :

sudo nano /etc/dovecot/conf.d/10-auth.conf

Décommenter la ligne suivante.

Commande :

disable_plaintext_auth = yes

Cela désactivera l’authentification en texte clair lorsqu’il n’y a pas de cryptage SSL/TLS.

Trouvez ensuite la ligne suivante,

Commande :

#auth_username_format = %Lu

 Décommentez-le et changez sa valeur en %n.

Commande :

auth_username_format = %n

 Par défaut, lorsque Dovecot tente de trouver ou de délivrer des emails pour un utilisateur, il utilise l’adresse email complète.

Puisque dans cette partie, nous ne configurons que des utilisateurs canoniques (en utilisant les utilisateurs de l’OS comme utilisateurs de boîtes aux lettres),

Dovecot ne peut pas trouver l’utilisateur de la boîte aux lettres au format domaine complet (postfix@domain.tld), nous devons donc définir auth_username_format = %n pour supprimer la partie domaine, puis Dovecot devrait être en mesure de trouver l’utilisateur de la boîte aux lettres.

Cela nous permet également d’utiliser l’adresse email complète (postfix@domain.tld) pour se connecter.

Trouvez ensuite la ligne suivante.

Commande :

auth_mechanisms = plain

Cette ligne n’active que le mécanisme d’authentification PLAIN. LOGIN est un autre mécanisme d’authentification que vous voudrez probablement ajouter pour prendre en charge les anciens clients de messagerie.

Commande :

auth_mechanisms = plain login

Enregistrez et fermez le fichier.

Configuration du cryptage SSL/TLS

Ensuite, éditez le fichier de configuration SSL/TLS.

Commande :

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Remplacer ssl = yes par ssl = required pour appliquer le cryptage.

Commande :

ssl = required

Trouvez ensuite les lignes suivantes.

Commande :

ssl_cert =

ssl_key =

Par défaut, Dovecot utilise un certificat TLS auto-signé.

Remplacez-les par les valeurs suivantes, qui indiquent l’emplacement de votre certificat TLS Let’s Encrypt et de votre clé privée.

N’oubliez pas le caractère <. Il est indispensable.

Commande :

ssl_cert =

ssl_key =

Trouvez la ligne suivante.

#ssl_prefer_server_ciphers = no

Une bonne pratique consiste à préférer l’ordre de chiffrement du serveur à celui du client.

Décommettez donc cette ligne et changez la valeur en yes.

Commande :

ssl_prefer_server_ciphers = yes

Si vous utilisez Ubuntu 20.04 ou Ubuntu 22.04, désactivez les SSLv3, TLSv1 et TLSv1.1 non sécurisés en ajoutant la ligne suivante.

Commande :

ssl_min_protocol = TLSv1.2

Si vous utilisez la version 2.2.x de Dovecot (comme dans Ubuntu 18.04), vous devez ajouter la ligne suivante pour désactiver le TLS non sécurisé.

Commande :

ssl_protocols = !SSLv3 !TLSv1 !TLSv1.1

 Enregistrez et fermez le fichier.

Configuration de l'authentification SASL

Modifiez le fichier suivant 10-master.conf.

Commande :

sudo nano /etc/dovecot/conf.d/10-master.conf

Modifiez la section service auth comme suit pour que Postfix puisse trouver le serveur d’authentification Dovecot.

Faites attention à la syntaxe.

Chaque crochet ouvrant doit être terminé par un crochet fermant.

Commande :

service auth {

unix_listener /var/spool/postfix/private/auth {

mode = 0660

user = postfix

group = postfix

}

}

Enregistrez et fermez le fichier.

Création automatique des dossiers Envoyés et Corbeille

Modifiez le fichier de configuration ci-dessous 15-mailboxes.conf.

Commande :

sudo nano /etc/dovecot/conf.d/15-mailboxes.conf

Pour créer automatiquement un dossier, il suffit d’ajouter la ligne suivante dans la section de la boîte aux lettres.

Commande :

auto = create

Exemple :

Commande :

mailbox Trash { auto = create special_use = Trash
}

Les dossiers les plus courants que vous souhaitez créer sont les suivants : Brouillons, Corbeille et Envoyés : Brouillons, Courrier indésirable, Corbeille et Envoyés.

Le dossier Envoyés est créé dans le répertoire personnel de l’utilisateur lorsque celui-ci envoie son premier courriel.

Le dossier Corbeille sera créé lorsque l’utilisateur supprimera un courriel pour la première fois, etc. Après avoir sauvegardé et fermé tous les fichiers de configuration ci-dessus, redémarrez Postfix et Dovecot.

Commande :

sudo systemctl restart postfix dovecot

Dovecot écoutera sur les ports 143 (IMAP) et 993 (IMAPS), comme on peut le voir avec :

Commande :

sudo ss -lnpt | grep dovecot

root@mail:/home/alain#ss -lnpt | grep dovecot
LISTEN 0 100 0.0.0.0:143 0.0.0.0:* users:((“dovecot”,pid=139928,fd=33))
LISTEN 0 100 0.0.0.0:993 0.0.0.0:* users:((“dovecot”,pid=139928,fd=35))
LISTEN 0 100 [::]:143 [::]:* users:((“dovecot”,pid=139928,fd=34))
LISTEN 0 100 [::]:993 [::]:* users:((“dovecot”,pid=139928,fd=36))

S’il y a une erreur de configuration, dovecot ne redémarrera pas, c’est donc une bonne idée de vérifier si Dovecot est en cours d’exécution avec la commande suivante.

Commande :

systemctl status dovecot

Configuration du client de messagerie de Microsoft Outlook

Ouvrez maintenant votre client de messagerie tel que Microsoft Outlook.

Allez dans Fichier →  pour ajouter un compte.

  • Dans la section serveur entrant, sélectionnez le protocole IMAP, entrez mail.domain.tld comme nom de serveur, choisissez le port 143 et STARTTLS. Choisissez le mot de passe normal comme méthode d’authentification.
  • Dans la section serveur sortant, sélectionnez le protocole SMTP, entrez mail.domain.tld comme nom de serveur, choisissez le port 587 et STARTTLS. Choisissez un mot de passe normal comme méthode d’authentification.

Conseil 1 : Vous pouvez également utiliser le port 993 avec un cryptage SSL/TLS pour IMAP, et le port 465 avec un cryptage SSL/TLS pour SMTP. Vous ne devez PAS utiliser le port 25 comme port SMTP dans les clients de messagerie pour envoyer des courriels sortants.

Conseil 2 : Si vous utilisez le client de messagerie Microsoft 365 Outlook, vous ne devez pas activer l’authentification sécurisée par mot de passe (SPA), qui est un protocole propriétaire de Microsoft. Votre mot de passe est déjà crypté par TLS.

Vous devriez maintenant être en mesure de vous connecter à votre propre serveur de messagerie et d’envoyer et de recevoir des courriels avec votre client de messagerie de bureau !

Nous utilisons les comptes Unix locaux comme adresses électroniques, comme nous l’avons fait dans la partie 1. Par exemple, si vous avez un utilisateur appelé user1 sur votre serveur Ubuntu, vous avez une adresse électronique : user1@domain.tld, et le mot de passe de l’adresse électronique est le même que celui de l’utilisateur user1.

Pour créer un compte Unix local, exécutez

Commande :

sudo adduser alain2

Note : Dovecot ne vous permet pas de vous connecter avec le compte root. Vous devez créer des comptes utilisateurs séparés.

Vous pouvez dresser la liste de tous les utilisateurs de boîtes aux lettres disponibles à l’aide de :

Commande :

sudo doveadm user '*'

Il est recommandé de redémarrer Dovecot après l’ajout d’utilisateurs, afin que Dovecot puisse reconnaître les nouveaux utilisateurs de la boîte aux lettres.

Commande :

sudo systemctl restart dovecot

Prochaine étape

J’espère que cet article vous a aidé à configurer Postfix et Dovecot sur un serveur Ubuntu.

Dans la troisième partie, je vous montrerai comment créer des boîtes aux lettres virtuelles.

Si vous préférez utiliser le serveur de base de données MariaDB/MySQL, suivez ce tutoriel PostfixAdmin.

Support

FAQ

FAQ

Toutes les questions que vous posez en cas d’une erreur qui apparaît dans votre article, je vous ai mis la solution ci-dessous en forme de FAQ.

En règle générale, vous devez toujours vérifier le journal de courrier (/var/log/mail.log) sur votre serveur de courrier lorsqu’une erreur se produit.

Voici une liste d’erreurs spécifiques et de conseils de dépannage.

Accès à tous les cours actuels et futurs à vie

Impossible de se connecter à partir de clients de messagerie

Si vous ne pouvez pas vous connecter à votre serveur de messagerie à partir d’un client de messagerie de bureau, examinez votre serveur de messagerie pour vérifier si les ports (TCP 587, 465, 143 et 993) sont ouverts.

Notez que vous devez exécuter la commande suivante à partir d’un autre ordinateur ou serveur Linux. Si vous l’exécutez sur votre serveur de messagerie, les ports sembleront toujours ouverts.

sudo nmap mail.osnetworking.net

Et vérifiez si Dovecot est en cours d’exécution.

systemctl status dovecot

Vous pouvez également consulter le journal du courrier (/var/log/mail.log), qui peut vous donner quelques indices. Si Dovecot ne démarre pas, l’erreur peut ne pas être enregistrée dans le fichier /var/log/mail.log, vous pouvez exécuter la commande suivante pour voir ce qui ne va pas.

sudo journalctl -eu dovecot

Par exemple, certaines personnes peuvent avoir l’erreur suivante dans le journal.

doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-master.conf line 78: Unknown setting

La plupart du temps, il s’agit d’une simple erreur de syntaxe, comme une parenthèse manquante. Ouvrez le fichier de configuration, allez à la ligne spécifiée et corrigez l’erreur.

Si vous trouvez le message d’erreur suivant dans le journal des messages

imap-login: Error: Failed to initialize SSL server context: Can’t load DH parameters: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small

Ouvrez ensuite le fichier de configuration TLS de Dovecot.

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Ajoutez la ligne suivante dans ce fichier.

ssl_dh = </etc/dovecot/dh.pem

Sauvegardez et fermez le fichier. Générez ensuite le fichier de paramètres DH avec :

sudo openssl dhparam -out /etc/dovecot/dh.pem 4096

Redémarrez Dovecot pour que les modifications soient prises en compte.

Accès au relais refusé

Si vous voyez l’erreur “relay access denied” lorsque vous essayez d’envoyer des courriels à partir d’un client de messagerie, il est très probable que vous utilisiez le port 25 comme port SMTP dans votre client de messagerie. Comme je l’ai déjà dit, vous devez utiliser le port 587 ou 465 comme port SMTP dans les clients de messagerie (Mozilla Thunberbird, Microsoft Outlook, etc.) pour envoyer des courriels sortants. Le port 25 doit être utilisé pour les communications entre serveurs SMTP.

Si vous voyez l’erreur suivante “relay access denied” dans le fichier /var/log/mail.log lorsque vous essayez d’envoyer des courriels depuis d’autres services de messagerie comme Gmail vers votre propre serveur de messagerie, il est probable que votredomaine.com ne figure pas dans la liste du paramètre $mydestination.

NOQUEUE : reject : RCPT from mail-il1-f180.google.com [209.85.166.180]: 454 4.7.1 <xiao@inuxbabe.com>: Relay access denied; from=<someone@gmail.com> to=<xiao@linuxbabe.com> proto=ESMTP helo=<mail-il1-f180.google.com>

Vous pouvez afficher la valeur actuelle de $mydestination avec :

postconf mydestination

Certaines personnes peuvent ne pas avoir le nom de domaine principal dans la liste :

mydestination = $myhostname, localhost.$mydomain, localhost

Exécutez ensuite la commande suivante pour ajouter le nom de domaine principal à la liste.

sudo postconf -e “mydestination = osnetworking.com \$myhostname, localhost.\$mydomain, localhost”

Reload Postfix for the changes to take effect.

sudo systemctl reload postfix

L'utilisateur n'existe pas

Si vous voyez le message d’erreur suivant dans le journal de messagerie (/var/log/mail.log), il est probable que vous ayez oublié de mettre auth_username_format = %n dans le fichier /etc/dovecot/conf.d/10-auth.conf.

mail postfix/lmtp[2256]: 68E00FC1A5: to=, relay=mail.example.com[private/dovecot-lmtp], delay=509, delays=509/0.03/0.03/0.02, dsn=5.1.1, status=bounced (host mail.example.com[private/dovecot-lmtp] said: 550 5.1.1  User doesn’t exist: user1@example.com (in reply to RCPT TO command))

Application de messagerie iOS

Si vous utilisez l’application iOS Mail pour vous connecter à votre serveur de messagerie et que vous rencontrez l’erreur suivante.

Vous pouvez essayer d’y remédier en imposant le cryptage SSL, tant pour le SMTP que pour l’IMAP.

Fait amusant : Il semble que l’application Mail d’iOS ait des difficultés à supporter STARTTLS sur le port IMAP 143, mais qu’elle supporte STARTTLS sur le port de soumission 587.

Si vous rencontrez l’erreur ” No password provided ” dans l’application iOS Mail, il est probable que vous ayez fait une faute de frappe lors de la saisie du nom d’utilisateur dans les paramètres du compte Mail, ou que vous n’ayez pas activé le protocole SSL dans les paramètres du compte Mail.

Impossible de recevoir des e-mails de Gmail, Hotmail, Yahoo Mail, etc.

Si vous ne pouvez pas recevoir d’e-mails de Gmail, Hotmail, Yahoo Mail, etc., voici les causes possibles :

  1. Votre enregistrement MX est erroné ou n’a pas encore été propagé sur l’internet.
  2. Le nom d’hôte de votre serveur de messagerie n’a pas d’enregistrement DNS A, ou n’est pas encore propagé sur Internet.
  3. Votre pare-feu n’autorise pas les connexions entrantes au port 25. Votre serveur de messagerie est peut-être derrière un NAT ?
  4. Postfix n’écoute pas l’adresse IP publique.
  5. Vérifiez le journal du courrier (/var/log/mail.log) pour voir s’il y a d’autres erreurs dans votre configuration Postfix et Dovecot.

Vous pouvez utiliser l’Email Checker de Network Tools pour tester si votre serveur SMTP est accessible depuis l’Internet. Il vous suffit de saisir l’adresse électronique de votre domaine et de cliquer sur le bouton “Go”.

Comme vous pouvez le voir dans la capture d’écran ci-dessous, le vérificateur a trouvé l’enregistrement MX de mon domaine et mon serveur SMTP est accessible depuis l’Internet.

Si votre serveur SMTP n’est pas accessible depuis l’internet, vous avez un problème dans les 4 premiers points. Si votre serveur SMTP est accessible depuis l’internet, mais que vous ne pouvez toujours pas recevoir d’e-mails, vérifiez le journal de messagerie (/var/log/mail.log) pour voir s’il y a des erreurs dans la configuration de Postfix et de Dovecot.

Renouvellement automatique du certificat TLS

Vous pouvez créer une tâche Cron pour renouveler automatiquement le certificat TLS. Il suffit d’ouvrir le fichier crontab de l’utilisateur root.

sudo crontab -e

Si vous utilisez le serveur web Apache, ajoutez la ligne suivante au bas du fichier.

@daily certbot renew –quiet && systemctl reload postfix dovecot apache2

Si vous utilisez le serveur web Nginx, ajoutez la ligne suivante.

@daily certbot renew –quiet && systemctl reload postfix dovecot nginx

Il est nécessaire de recharger Postfix, Dovecot et le serveur web pour que ces programmes prennent en compte le nouveau certificat et la nouvelle clé privée.

Redémarrage automatique de Dovecot

Si pour une raison quelconque votre processus Dovecot est tué, vous devez exécuter la commande suivante pour le redémarrer.

sudo systemctl restart dovecot

Au lieu de taper manuellement cette commande, nous pouvons faire redémarrer Dovecot automatiquement en éditant l’unité de service systemd dovecot.service. Pour remplacer la configuration par défaut du service systemd, nous créons un répertoire séparé.

sudo mkdir -p /etc/systemd/system/dovecot.service.d/

Créez ensuite un fichier dans ce répertoire.

sudo nano /etc/systemd/system/dovecot.service.d/restart.conf

Ajoutez les lignes suivantes dans le fichier, qui feront redémarrer Dovecot automatiquement 5 secondes après la détection d’une panne.

[Service]

Restart=always

RestartSec=5s

Enregistrez et fermez le fichier. Rechargez ensuite systemd pour que les modifications soient prises en compte.

sudo systemctl daemon-reload

Pour vérifier si cela fonctionnerait, tuer Dovecot avec :

sudo pkill dovecot

Vérifiez ensuite l’état de Dovecot. Vous constaterez que Dovecot est automatiquement redémarré.

systemctl status dovecot