Postfix – le serveur IMAP Dovecot sur Ubuntu et activer le cryptage TLS – partie 2
Débutant – Dovecote et activer le crytage TLS
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
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.
- dovecot-core
- dovecot-imapd
- dovecot-lmtpd
- dovecot-managesieved
- dovecot-mysql
- dovecot-pop3d
- dovecot-sieve
- 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
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.
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
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
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.
Accès à tous les cours
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 :
- Votre enregistrement MX est erroné ou n’a pas encore été propagé sur l’internet.
- 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.
- Votre pare-feu n’autorise pas les connexions entrantes au port 25. Votre serveur de messagerie est peut-être derrière un NAT ?
- Postfix n’écoute pas l’adresse IP publique.
- 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