Vue d'ensemble
Ce didacticiel vous montrera comment configurer plusieurs domaines de messagerie (hébergement virtuel) sur le serveur Ubuntu avec PostfixAdmin, qui est une interface Web open source permettant de configurer et de gérer un serveur de messagerie basé sur Postfix pour de nombreux domaines et utilisateurs.
Ce que vous apprendrez
- Ajout de domaines supplémentaires dans le panneau PostfixAdmin.
- Création des enregistrements MX, A et SPF pour le nouveau domaine de messagerie.
- Configuration de la signature.
- DKIM pour le nouveau domaine
- Création d’un enregistrement DMARC pour le nouveau domaine.
- Configuration de RoundCube, Postfix et Dovecot pour plusieurs domaines.
- Vérification SPF et DKIM.
- rDNS pour plusieurs domaines de messagerie.
- Plusieurs certificats TLS avec Let’s Encrypt.
- Configurer postfix avec plusieurs certificats TLS
- Configurer Dovecot avec plusieurs certificats TLS
Information importante :
La vérification DNS inversée est utilisée pour vérifier si l'adresse IP de l'expéditeur correspond au nom d'hôte HELO. Vous n'avez pas besoin d'ajouter un autre enregistrement PTR lors de l'ajout d'un nouveau domaine de messagerie.
Tutoriels – Postifixadmin gérer plusieurs domaines
Postfixadmin peut gérer plusieurs domaines, en configurant postfix, Dovecote et Roundcube.
Débutant
01 hrs 30 min
Mise à jour le: 3/12/2024
Pré-requis
PostfixAdmin avec un domaine de messagerie
Installer Roundcube Webmail pour le premier domaine de messagerie
Étape 1 : Ajout de domaines supplémentaires dans le panneau PostfixAdmin
Connectez-vous au panneau PostfixAdmin avec le compte postmaster. (https://postfixadmin/domain.tld)
Ensuite, allez dans Liste des domaines
-> nouveau domaine
pour ajouter un nouveau domaine.
Notez que le nouveau domaine doit avoir un enregistrement DNS A, sinon PostfixAdmin générerait le message d’erreur suivant. Vous pouvez vérifier l’état de propagation DNS sur dnsmap.io.
Domaine invalide domain2.tld et/ou non détectable dans DNS
Ensuite, ajoutez un utilisateur sous le nouveau domaine.
Étape 2 : Création des enregistrements MX, A et SPF pour le nouveau domaine de messagerie
Dans votre gestionnaire DNS, ajoutez l’enregistrement MX pour le nouveau domaine comme ci-dessous.
Commande :
Nom du type d'enregistrement Valeur @ MX mail.domain2.tld
L’enregistrement A pointe vers l’adresse IP de votre serveur de messagerie.
Nom du type d’enregistrement Valeur Une adresse IP de messagerie du serveur de messagerie
Commande :
Mail A 192.168.1.250
Si votre serveur utilise une adresse IPv6, assurez-vous d’ajouter un enregistrement AAAA.
Créez ensuite un enregistrement SPF pour permettre à l’hôte MX d’envoyer des e-mails pour le nouveau domaine de messagerie.
Nom du type d’enregistrement Valeur
Commande :
@ TXT v=spf1 mx ~all
Étape 3 : Configuration de la signature DKIM pour le nouveau domaine
Nous avons installé et configuré OpenDKIM pour un seul domaine dans la partie 4 de cette série de didacticiels.
Nous devons maintenant dire à OpenDKIM de signer chaque e-mail sortant pour le nouveau domaine de messagerie.
Modifiez le fichier de table de signature OpenDKIM.
Commande :
sudo nano /etc/opendkim/signing.table
Ajoutez le deuxième domaine comme ci-dessous.
Commande :
*@domain.tld default._domainkey.domain.tld
*@domain2.tld default._domainkey.domain2.tld
Modifiez le fichier de table de clés.
Commande :
sudo nano /etc/opendkim/key.table
Ajoutez le deuxième domaine comme ci-dessous.
Commande :
default._domainkey. domain.tld domain.tld.uk:default:/etc/opendkim/keys/ domain.tld /default.private
default._domainkey. domai2.tld domain2.tld :default:/etc/opendkim/keys/ domain2.tld /default.private
Modifiez le fichier d’hôtes de confiance.
Commande :
sudo nano /etc/opendkim/trusted.hosts
Ajoutez le deuxième domaine comme ci-dessous.
Commande :
127.0.0.1
localhost
.domain.tld
.domain2.tld
Ensuite, nous devons générer une paire de clés privée/publique pour le deuxième domaine. Créez un dossier séparé pour le deuxième domaine.
Commande :
sudo mkdir /etc/opendkim/keys/ domain2.tld
Générez des clés à l’aide opendkim-genkey de l’outil.
Commande :
sudo opendkim-genkey -b 4096 -d domain2.tld -D /etc/opendkim/keys/ domain2.tld -s par défaut -v
La commande ci-dessus créera des clés de 4096 bits. -d (domain) spécifie le domaine. -D (directory) spécifie le répertoire où les clés seront stockées et que nous utilisons default comme selector (-s).
Une fois la commande exécutée, la clé privée sera écrite dans default.private un fichier et la clé publique sera écrite dans default.txt un fichier.
Définissez-vous opendkim en tant que propriétaire de la clé privée.
Commande :
sudo chown opendkim:opendkim /etc/opendkim/keys/ domain2.tld /default.private
Afficher la clé publique
Commande :
sudo cat /etc/opendkim/keys/ domain2.tld/default.txt
Dans votre gestionnaire DNS, créez un enregistrement TXT pour le deuxième domaine.
Entrez default._domainkey
dans le champ Nom.
Copiez tout ce qui se trouve entre parenthèses et collez-le dans le champ de valeur.
Supprimez tous les guillemets doubles.
(Vous pouvez d’abord le coller dans un éditeur de texte, supprimer tous les guillemets doubles, puis le copier dans votre gestionnaire DNS.
Votre gestionnaire DNS peut vous demander de supprimer d’autres caractères non valides, tels que le retour chariot.)
Après avoir enregistré vos modifications. Vérifiez l’enregistrement TXT avec cette commande.
Commande :
dig TXT default._domainkey. domain2.tld
Vous pouvez maintenant exécuter la commande suivante pour tester si votre enregistrement DNS DKIM est correct.
Commande :
sudo opendkim-testkey -d domain2.tld -s par défaut -vvv
Si tout va bien, vous verrez
Commande :
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'default._domainkey. domain2.tld'
opendkim-testkey: key secure
opendkim-testkey: key OK
Si vous voyez « Clé non sécurisée », ne paniquez pas.
En effet, DNSSEC n’est pas activé sur votre nom de domaine. DNSSEC est une norme de sécurité pour les requêtes DNS sécurisées.
La plupart des noms de domaine n’ont pas activé DNSSEC.
Vous pouvez continuer à suivre ce guide.
Redémarrez OpenDKIM pour qu’il commence à signer les e-mails pour le deuxième domaine.
Commande :
sudo systemctl restart opendkim
Étape 4 : Création d'un enregistrement DMARC pour le nouveau domaine
Pour créer un enregistrement DMARC, accédez à votre gestionnaire DNS et ajoutez un enregistrement TXT .
Dans le champ Nom, saisissez _dmarc.
Dans le champ de valeur, saisissez ce qui suit. Notez que vous devez créer l’ dmarc-reports@domain2.tld adresse e-mail.
Commande :
v=DMARC1; p = aucun ; PCT=100 ; rua=mailto : dmarc-reports@domain2.tld
L’enregistrement DMARC ci-dessus est un point de départ sûr.
Pour voir l’explication complète de DMARC, veuillez consulter l’article suivant :
Étape 5 : Configuration de RoundCube, Postfix et Dovecot pour plusieurs domaines
Je suppose que vous avez installé le webmail Roundcube pour le premier domaine de messagerie.
Il est logique de permettre aux utilisateurs du premier domaine d’utiliser mail.domain.tld
et aux utilisateurs du deuxième domaine mail.domain2.tld
d’utiliser la messagerie Web RoundCube. Je vais vous montrer comment le faire avec Apache.
1 - Configurer Apache pour les divers domaines
Si Roundcube est servi par le serveur Web Apache, créez un hôte virtuel pour le deuxième domaine.
Commande :
ServerName webmail.domain2.tld
DocumentRoot /var/www/roundcube/
ErrorLog ${APACHE_LOG_DIR}/webmailmail.domain2.tld_error.log
CustomLog ${APACHE_LOG_DIR}/webmail.domain2.tld_access.log combined
Options FollowSymLinks
AllowOverride All
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel avec :
Commande :
sudo a2ensite webmail.domain2.tld
Rechargez Apache pour que les modifications prennent effet.
Commande :
sudo systemctl reload apache2
2 - Obtention du certificat TLS
Utilisez maintenant Certbot pour obtenir un certificat TLS pour tous vos domaines de messagerie.
Vous disposerez ainsi d’un seul certificat TLS avec plusieurs noms de domaine et les clients de messagerie ne lanceront pas d’avertissements de sécurité.
Apache
Commande :
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.domain.tld , mail. domain2.tld --cert-name mail.domain.tld --email alain@domain2.tld
Notez que dans la commande ci-dessus, nous avons spécifié le nom du certificat en utilisant le premier domaine de messagerie, qui sera utilisé dans le chemin du fichier, vous n’avez donc pas besoin de modifier le chemin du fichier dans le fichier de configuration Postfix ou Dovecot.
Lorsqu’il vous demande si vous souhaitez mettre à jour le certificat existant pour inclure le nouveau domaine, répondez U et appuyez sur Entrée.
Vous devriez maintenant voir le message suivant, qui indique que le certificat multi-domaine a été obtenu avec succès.
Exécutez la commande suivante pour accorder l’autorisation de lire les certificats Let’s Encrypt TLS.
Commande :
sudo setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Rechargez Apache pour récupérer le nouveau certificat.
Commande :
sudo systemctl reload apache2
Vous devriez maintenant pouvoir utiliser différents domaines pour accéder à la messagerie Web RoundCube.
Vous devez également recharger le serveur SMTP Postfix et le serveur IMAP Dovecot afin de leur permettre de récupérer le nouveau certificat.
C’est tout ce que vous devez faire pour que Postfix et Dovecot servent plusieurs domaines.
Commande :
sudo systemctl reload postfix dovecot
3 - Utilisation du client de messagerie sur votre ordinateur ou appareil mobile
Lancez votre client de messagerie de bureau tel que Mozilla Thunderbird et ajoutez un compte de messagerie du deuxième domaine.
- Dans la section du serveur entrant, sélectionnez le protocole IMAP, entrez mail.domain2.tld comme nom de serveur, choisissez le port 143 et STARTTLS. Choisissez normal password comme méthode d’authentification.
- Dans la section sortante, sélectionnez le protocole SMTP, entrez mail.domain2.tld comme nom de serveur, choisissez le port 587 et STARTTLS. Choisissez normal password comme méthode d’authentification.
Astuce :
Vous pouvez également utiliser le port 993 avec cryptage SSL/TLS pour IMAP et utiliser le port 465 avec cryptage SSL/TLS pour SMTP
Vous ne devez pas utiliser le port 25 comme port SMTP pour soumettre les e-mails sortants.
Bien que le serveur SMTP Postfix et le serveur IMAP Dovecot utilisent le nom d’hôte du premier domaine de messagerie (mail.domain1.com) lors de la communication avec d’autres, ils utilisent désormais un certificat multi-domaine, de sorte que le client de messagerie n’affichera pas d’avertissements de certificat.
4 - Vérification SPF et DKIM
Vous pouvez désormais utiliser votre client de messagerie de bureau ou votre client de messagerie Web pour envoyer un e-mail test check-auth@verifier.port25.com et obtenir un rapport d’authentification d’e-mail gratuit.
Voici le rapport que j’ai reçu de port25.com
N’oubliez pas de tester votre score de courrier électronique sur https://www.mail-tester.com et de tester également le placement des e-mails avec GlockApps.
Si la vérification DKIM échoue, vous pouvez accéder à https://www.dmarcanalyzer.com/dkim/dkim-check/ pour voir s’il y a des erreurs avec votre enregistrement DKIM.
5 - rDNS pour plusieurs domaines de messagerie
Le DNS inversé (rDNS), également appelé enregistrement PTR, est utilisé pour vérifier si l’adresse IP de l’expéditeur correspond au nom d’hôte HELO.
Vous n’avez pas besoin d’ajouter un autre enregistrement PTR lors de l’ajout d’un nouveau domaine de messagerie.
Votre rDNS doit être défini sur un seul nom d’hôte, c’est-à-dire le nom d’hôte défini dans Postfix, qui peut être affiché avec la commande suivante.
Commande :
postconf myhostname
rDNS est un enregistrement pour les adresses IP.
Ce n’est pas un enregistrement pour un nom de domaine.
Si vous n’avez qu’une seule adresse IP, vous n’avez besoin que d’un seul enregistrement rDNS pointant vers un seul nom d’hôte.
La vérification DNS inversée ne vérifie pas quel From: domaine se trouve dans votre courrier électronique, tant que votre adresse IP a un enregistrement rDNS et que le nom d’hôte peut revenir à la même adresse IP, vous pouvez réussir la vérification DNS inversée.
De plus, vous n’avez pas besoin de modifier les paramètres suivants dans Postfix lorsque vous hébergez plusieurs domaines sur un seul serveur.
- myhostname
- myorigin
- mydestination
Les services de messagerie hébergés comme G Suite et Microsoft Exchange Online utilisent tous un seul nom d’hôte pour un serveur afin d’envoyer un e-mail à leurs clients.
Les e-mails envoyés par les utilisateurs de G Suite sont tous utilisés google.com dans le nom d’hôte et les e-mails envoyés par les utilisateurs de Microsoft Exchange Online sont tous utilisés outlook.com dans le nom d’hôte.
Cela est également vrai pour d’autres fournisseurs de services de messagerie comme Mailchimp, etc.
Ils utilisent tous un nom d’hôte pour un seul serveur et une adresse IP n’a qu’un seul enregistrement rDNS.
Étape 6 : Plusieurs certificats TLS
Si vous gérez des serveurs de messagerie pour de nombreux clients, vous ne souhaiterez peut-être pas regrouper tous les certificats TLS dans un seul fichier, car il contient les informations de vos clients.
Au lieu d’utiliser la commande suivante pour obtenir un certificat multi-domaine,
Commande :
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mai.domain.tld , mail.domain2.tld
Vous pouvez simplement utiliser la commande suivante pour obtenir un certificat TLS distinct pour le deuxième domaine de messagerie.
Commande :
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail. domain2.tld
Ensuite, vous devez configurer Postfix et Dovecot.
1 - Configurer - Postfix plusieurs certificats TLS
Si vous utilisez Postfix version 3.4 ou supérieure, vous pouvez utiliser plusieurs certificats TLS. Modifiez le main.cf fichier.
Commande :
sudo nano /etc/postfix/main.cf
Ajoutez la ligne suivante à la fin de ce fichier pour activer plusieurs certificats TLS.
Commande :
tls_server_sni_maps = hash:/etc/postfix/sni_maps
Enregistrez et fermez le fichier. Créez ensuite le fichier sni_maps.
Commande :
sudo nano /etc/postfix/sni_maps
Dans ce fichier, ajoutez chaque nom d’hôte de messagerie et son fichier de certificat.
Commande :
mail.domain.tld /etc/letsencrypt/live/mail.domain.tld/privkey.pem /etc/letsencrypt/live/mail.domain.tld /fullchain.pem
mail.domain2.tld /etc/letsencrypt/live/mail.domain2.tld/privkey.pem /etc/letsencrypt/live/mail.domain2.tld/fullchain.pem
Enregistrez et fermez le fichier.
Ensuite, créez la table de recherche.
Commande :
sudo postmap -F /etc/postfix/sni_maps
Redémarrez Postfix.
Commande :
sudo systemctl restart postfix
Vous devez utiliser l’ option -F dans postmap pour décoder en base64 chaque valeur dans la carte SNI, sinon Postfix générera l’erreur de valeur BASE64 mal formée dans le /var/log/mail.log fichier.
La commande suivante est fausse.
Commande :
sudo postmap /etc/postfix/sni_maps
2 - Dovecot plusieurs certificats TLS
Si vous utilisez plusieurs certificats TLS dans Postfix, vous devez également l’activer dans Dovecot.
Modifiez le fichier Dovecot 10-ssl.conf.
Commande :
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Vous pouvez retrouver les lignes suivantes.
Commande :
ssl_cert =ssl_key =
Ajoutez ensuite les lignes suivantes.
Commande :
local_name mail.domain.tld {
ssl_cert =ssl_key =}
local_name mail.domain2.tld {
ssl_cert =ssl_key =}
Enregistrez et fermez le fichier.
Redémarrez ensuite Dovecot.
Commande :
sudo systemctl restart dovecot
Exécutez la commande suivante pour accorder l’autorisation de lire les certificats Let’s Encrypt TLS.
Commande :
sudo setfacl -R -mu:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Étape 6 : Mise à jour de la car SNI dans Postfix
Si vous utilisez la carte SNI dans Postfix, vous devez exécuter la sudo postmap -F /etc/postfix/sni_maps
commande après le renouvellement du certificat TLS.
Si vous ne le faites pas, les clients de messagerie pourraient se plaindre de l’expiration de votre certificat TLS.
Étape 7 : Automatisé la mise à jour de la carte SNI
Vous pouvez ajouter cette commande au fichier Crontab, elle sera donc automatisée.
Commande :
sudo crontab -e
Utilisateur du serveur Web Apache :
Commande :
@daily certbot renew --quiet; /usr/sbin/postmap -F /etc/postfix/sni_maps; systemctl reload postfix dovecot apache2
Accès à tous les cours
- Partie 9 : Bloquer les spams avec Postfix
- Partie 10 : Bloquer les spams avec SpamAssassin
- Partie 11 : Configurer Amavis et ClamAV sur un serveur de messagerie Ubuntu
- Partie 12 : Sécuriser le serveur de messagerie contre le piratage avec un serveur VPN auto-hébergé
- Partie 13 : Comment contourner les listes noires d’emails
- Partie 14 : (optionnel) Activer et configurer Postscreen dans Postfix pour bloquer les spambots
- Partie 15 : Protection automatique de l’IP et du domaine pour votre serveur de messagerie
Support
FAQ
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.
Que faire si vos e-mails sont toujours marqués comme spam ?
J’ai d’autres conseils pour vous dans cet article : conseils efficaces pour éviter que vos e-mails ne soient marqués comme spam. Bien que cela demande du temps et des efforts, vos e-mails finiront par être placés dans la boîte de réception après avoir appliqué ces conseils.
Impossible de recevoir des e-mails de Gmail
Si vous ne parvenez pas à recevoir des e-mails de Gmail, Hotmail, Yahoo Mail, etc., voici les causes possibles :
- Votre enregistrement MX est erroné ou n’est pas encore propagé sur 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 sur le port 25. Peut-être que votre serveur de messagerie se trouve derrière un NAT ?
- Postfix n’écoute pas l’adresse IP publique.
- Vérifiez le journal de messagerie ( /var/log/mail.log) pour savoir s’il y a d’autres erreurs dans votre configuration Postfix et Dovecot.
Vous pouvez utiliser le vérificateur de courrier électronique des outils réseau pour tester si votre serveur SMTP est accessible depuis Internet. Entrez simplement l’adresse e-mail de votre domaine et cliquez sur le Go bouton.
Comme vous pouvez le voir sur la capture d’écran ci-dessous, l’enregistrement MX de mon domaine a été trouvé et mon serveur SMTP est opérationnel depuis Internet.
Si vos serveurs SMTP ne sont pas accessibles depuis Internet, vous rencontrez un problème dans les 4 premiers éléments.
Si votre serveur SMTP est opérationnel depuis Internet, mais que vous ne pouvez toujours pas recevoir d’e-mails, consultez le journal de messagerie (/var/log/mail.log) pour savoir s’il y a des erreurs dans votre configuration Postfix et Dovecot.