Partage d'expérience sur la migration de l'hébergement des boîtes mail de mon domaine ordi49.fr.
La lecture de la présente page web suppose que vous avez pris connaissance et compris la page suivante du blog sud-ouest2.org :
Configuration de votre domaine – hébergement d’un domaine perso sur notre infrastructure
— Médéric 14/09/2017
Mes sites web sont hébergés chez Inulogic.
J'administre moi-même mon domaine ordi49.fr auprès du registrar Internet.bs.
Inulogic est une petite société à bas coût, qui à l'instar de la société WD-Media, présente l'avantage d'avoir ses serveurs de stockage en France. Pour la gestion DNS, Inulogic utilise le logiciel privateur Plesk. Plesk est un panel web ou “Web hosting control panel”, c'est à dire une interface de gestion d'hébergement comme son grand concurrent logiciel privateur cPanel et ses concurrents FLOSS comme AlternC, GNUPanel, ISPConfig, DTC, OpenPanel et autres (liste comparative ici).
Après étude des différentes offres éthiques hébergées en France – publiée sur ma page web Reprendre le contrôle de ses emails –, j'ai décidé de migrer l'hébergement de mes boîtes mail chez sud-ouest2.org, à cause d'un blaklistage récurrent des plages IP de l'hébergement mutualisé Inulogic.
De mai à août 2017 ce problème avait pris tellement d'ampleur – non réponse de mailer daemon (“mail droping”), blacklistage des adresses IP mutualisées par Malwarebytes Anti-Malware1) –, que j'avais perdu toute confiance dans le serveur SMTP mutualisé d'Inulogic. Très occupé par des tâches plus importantes, la petite équipe d'Inulogic m'a indiqué que je pouvais toujours migrer vers une offre VPS à IP dédiée afin d'être épargné des inconvénients de la mutualisation. Mais cette possibilité n'était pas compatible avec mon budget.
À savoir :
La version Plesk 12 tronque les champs très longs si bien qu'il est impossible de configurer correctement l'enregistrement dkim._domainkey
tel qu'indiqué sur la page Configuration de votre domaine – hébergement d’un domaine perso sur notre infrastructure.
Si vous êtes clients chez Inulogic sous Plesk 12 (la version s'affiche lorsqu'on clique sur le bouton aide de Plesk), vous pouvez ouvrir un ticket auprès du support pour demander la migration sous Plesk Onyx en raison de cet enregistrement DNS dkim._domainkey
. Après migration sur le serveur pf4 d'Inulogic vous bénéficierez en outre du support Let's Encrypt.
Je ne sais pas si ce problème concerne également la version Plesk 12.5 qui est immédiatement antérieure à Plesk Onyx.
Chez Inulogic, les modification DNS sont très rapidement prises en compte (<30 minutes).
Voici une copie d'écran des paramètres DNS pour mon domaine ordi49.fr dans la dernière version du logiciel privateur Plesk : Plesk Onyx.
J'ai supprimé dans l'image les informations DNS qui ne concernent pas le document de référence Configuration de votre domaine – hébergement d’un domaine perso sur notre infrastructure.
Exemple de configuration DNS pour prise en charge boîte mail par sud-ouest2.org dans Plesk Onyx :
Attention : dans la copie d'écran ci-dessus, il manque un deuxième enregistrement MX pour le serveur de secours mx-backup.sud-ouest2.org. À cet égard, voir ce sous-chapitre plus bas dans la page :
Supervision et diagnostic > Outils en ligne > Utilisation de mxtoolbox.com > Interpréter le dysfonctionnement diagnostiqué sur mx-backup.sud-ouest2.org
Note importante concernant DMARC et DKIM :
La valeur DMARC a changé depuis la copie d'écran ci-dessus. D'après la page du blog sud-ouest2.org, au 01/10/2017, elle doit être la suivante :
v=DMARC1;p=quarantine;sp=quarantine;pct=100;adkim=r;aspf=r;fo=1;ri=86400;rua=mailto:postmaster@sud-ouest2.org;ruf=mailto:postmaster@sud-ouest2.org;rf=afrf
De même, sur la copie d'écran ci-dessus, la valeur de l'enregistrement DKIM est erronée et invalide.
Pour configurer DKIM dans Plesk, reportez-vous au paragraphe ci-dessous intitulé : Problème de configuration DKIM dans Plesk.
Configurer DKIM dans Plesk :
Plus d'information sur DKIM au paragraphe DNS > DKIM.
Internet.bs est un registrar situé à Nassau, capitale des Bahamas. Le support Internet.bs est en anglais bien qu'une adresse email française soit précisée sur la page contact.
À savoir :
On peut devenir un client direct de Internet.bs sans passer par un prestataire intermédiaire, comme j'ai du le faire après la faillite d'Agsahosting en 2012. Pour cela, le support internet.bs vous demande la copie numérisée de votre carte d'identité et d'une facture récente justifiant votre domiciliation. Ce genre de documents officiels ne doit jamais transiter par email sans être chiffré. Le support d'Internet.bs est suffisamment qualifié pour déchiffrer une pièce jointe chiffrée à l'aide de la clé GPG publique Internet.bs. Celle-ci est disponible à l'URL suivante :
http://pgp.mit.edu/pks/lookup?search=internet.bs
Les clients Inulogic n'ont pas besoin de modifier les enregistrements DNS de leurs registrars puisque c'est le serveur DNS d'Inulogic qui est prioritaire2). En d'autre termes, cela signifie qu'ils peuvent ajouter à la configuration de leur registrar, les enregistrements DNS qui sont précisés sur la page Configuration de votre domaine – hébergement d’un domaine perso sur notre infrastructure, mais que ces enregistrements ne seront pas pris en compte quelques soient les réglages de priorités MX parce que c'est le serveur de noms primaire Inulogic qui fait autorité.
Plus la valeur du champs priorité est basse, plus le serveur est prioritaire.
Exemple avant que je ne supprime définitivement l'ancienne référence MX à Inulogic :
mx-sud-ouest2.org (10) était prioritaire par rapport à pf4.inulogic.fr (20) :
mederic@devuan:~$ dig +nostat +nocomment ordi49.fr mx | grep MX ;ordi49.fr. IN MX ordi49.fr. 541 IN MX 10 mx.sud-ouest2.org. ordi49.fr. 541 IN MX 20 pf4.inulogic.fr.
Pour ajouter/supprimer/modifier des enregistrements DNS chez Internet.bs, une fois votre domaine sélectionné, il faut cliquer sur le bouton “Management de DNS” :
Les commandes ci-dessous concernent la famille de système d'exploitation de type UNIX comme les distributions GNU/Linux.
D'autre part, je fais souvent référence aux sites web listés au paragraphe Outils en ligne ci-dessous :
On trouve sur le web certains services très spécialisés qui rendent de grands services :
Vérification de la conformité RFC 6376 du domaine ordi49.fr par dkimcore.org :
Le formulaire de requête du site web mxtoolbox.com est un peu singulier. On peut saisir une des commandes listées ci-dessous suivie de deux points verticaux ':' pour qualifier la requête. Lorsqu'on tape ':', le champs se vide pour laisser place à la saisie du nom de domaine et le bouton prends le nom de la requête. Voici la liste des commandes de requêtes disponibles :
Le bouton “Find problems” du site mxtoolbox.com signale en principe au-moins une erreur d'accès à mx-backup.sud-ouest2.org.
Par exemple “smtp mx-backup.sud-ouest2.org Failed To Connect” :
Ceci est normal parce que le service mail du serveur de secours mx-backup.sud-ouest2.org
n'est activé qu'en cas de problème persistant sur le serveur principal mx.sud-ouest2.org
.
Si aucune alerte ne s'affiche concernant le serveur de secours, cela signifie :
Le but de cette entrée DNS avec un rang supérieur à l'enregistrement MX principal est l'acheminement automatique du courrier qui vous est destiné en cas d'indisponibilité du premier serveur. La page “Configuration de votre domaine – hébergement d’un domaine perso sur notre infrastructure” préconise par exemple les valeurs suivantes :
IN MX 10 mx.sud-ouest2.org.
IN MX 100 mx-backup.sud-ouest2.org.
Une autre valeur que 100 pour mx-backup.sud-ouest2.org
est possible, pourvu que celle-ci soit à la fois :
mx.sud-ouest2.org
La commande dkim:mon-domaine.tld
ne fonctionne pas. Voici comment effectuer un test de l'enregistrement dkim.domainkey sur le site mxtoolbox.com :
mon-domaine.tld:dkim
dans le champs de recherche puis cliquer sur le bouton “Dkim Lookup”
Exemple de requête mxtoolbox.com sur l'enregistrement DNS DKIM du domaine ordi49.fr :
Interroger votre serveur de noms par défaut à propos de votre domaine :
dig mon-domaine.tld any
Interroger un serveur de noms particulier à propos de mon-domaine.tld pour surveiller la propagation des changements DNS :
dig @serveurdns.tld mon-domaine.tld any
Exemples :
dig @ns0.fdn.fr mon-domaine.tld any
dig @google-public-dns-a.google.com ordi49.fr any
Les informations relatives à DKIM ci-dessous sont le fruit de plusieurs heures d'investigation sous forme de tests, diagnostics et recherches documentaires.
L'enregistrement DNS DKIM (DomainKeys Identified Mail) est une information facultative permettant aux serveurs d'email de type Mail Transfer Agent (MTA) de vérifier d'une part, l'authenticité du domaine de l'expéditeur d'un message email, d'autre part l'intégrité du corps de l'email.
Autrement dit, DKIM peut confirmer par exemple qu'un message reçu de bigbrother@world-company.com
a bien été émis par une machine liée au domaine world-companie.com et que son contenu n'a pas été modifié après que l'expéditeur l'ait envoyé, sans pour autant confirmer que bigbrother existe réellement chez world-company.com ou bien qu'une personne interne à la société n'à pas écrit en son nom.
Ajoutée à l'en-tête des messages emails, la signature DKIM apporte un sérieux complément au traditionnel enregistrement SPF en améliorant la fiabilité des algorithmes de détection anti-spam. Les normes DKIM et SPF sont des technologies de type DMARC (Domain-based Message Authentication, Reporting and Conformance).
L'enregistrement DNS DKIM de type TXT doit porter sur le sous-domaine virtuel dkim._domainkey
du domaine principal :
Nom | dkim._domainkey.mon-domaine.tld. |
Type | TXT |
Valeur | v=DKIM1; k=rsa; s=email; h=sha256; p=clé_publique_encodée_base64_sans_espace |
Dans Plesk, la valeur de l'enregistrement DKIM pour sud-ouest2.org doit être celle-ci sans guillemet :
v=DKIM1; k=rsa; s=email; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuCBXGUFoM59zVYu40BVQIlUi0k8N3+hOmdooG13W+Jjn/ngOQveeICOKBPNnHU3rf4lsQJ9Gx4lBbAzy2CecirSvzxFWY2y47cJ65lQsdxbTL3Ux5YL/0TYrgqVOsE5nxQMafiL6Osox7xkoeAVoWkiDw/M8OEcgWaVLXWhd/YgVGjQyo+2mPUELLqZTx/ZOHNvvHNom1AzI8hNENFxo77ruZpyNAccrQkcKRpWlsvHRDutGfKDF96mr/tbXENSbbawSxH3SHlmHsOaA3Kx0q7mq+uq0YLyV82dZq6u6o3WDQ9Otv+Hh18RHHAlYnaB+oNvS6nhvSQn6mRrOUllcnQIDAQAB
Pour vérifier que les informations DNS associées à mon-domaine.tld renvoient la configuration correspondant à sud-ouest2.org, on peut utiliser la commande suivante qui supprime tout guillemet et concatène la clé publique p que les serveurs DNS renvoient sous la forme de plusieurs chaînes de caractères.
dig dkim._domainkey.mon-domaine.tld TXT | awk '/^dkim/{gsub(/^.*TXT\s*/,"");gsub(/\x22|\s/,"");gsub(/\\;/,"; ");print $0}'
Cette commande est utile au diagnostic car elle doit renvoyer indifféremment le même résultat pour le domaine sud-ouest2.org que pour mon-domaine.tld :
mederic@devuan:~$ dig dkim._domainkey.sud-ouest2.org TXT | awk '/^dkim/{gsub(/^.*TXT\s*/,"");gsub(/\x22|\s/,"");gsub(/\\;/,"; ");print $0}' v=DKIM1; k=rsa; s=email; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuCBXGUFoM59zVYu40BVQIlUi0k8N3+hOmdooG13W+Jjn/ngOQveeICOKBPNnHU3rf4lsQJ9Gx4lBbAzy2CecirSvzxFWY2y47cJ65lQsdxbTL3Ux5YL/0TYrgqVOsE5nxQMafiL6Osox7xkoeAVoWkiDw/M8OEcgWaVLXWhd/YgVGjQyo+2mPUELLqZTx/ZOHNvvHNom1AzI8hNENFxo77ruZpyNAccrQkcKRpWlsvHRDutGfKDF96mr/tbXENSbbawSxH3SHlmHsOaA3Kx0q7mq+uq0YLyV82dZq6u6o3WDQ9Otv+Hh18RHHAlYnaB+oNvS6nhvSQn6mRrOUllcnQIDAQAB
On peut aussi l'écrire de façon plus explicite :
dig dkim._domainkey.mon-domaine.tld TXT | awk '/^dkim/{gsub(/^.*TXT\s*/,"");gsub(/\x22|\s/,"");gsub(/\\;/,"\n");print $0}'
Exemple pour le domaine ordi49.fr (ou sud-ouest2.org) :
mederic@devuan:~$ dig dkim._domainkey.ordi49.fr TXT | awk '/^dkim/{gsub(/^.*TXT\s*/,"");gsub(/\x22|\s/,"");gsub(/\\;/,"\n");print $0}' v=DKIM1 k=rsa s=email h=sha256 p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuCBXGUFoM59zVYu40BVQIlUi0k8N3+hOmdooG13W+Jjn/ngOQveeICOKBPNnHU3rf4lsQJ9Gx4lBbAzy2CecirSvzxFWY2y47cJ65lQsdxbTL3Ux5YL/0TYrgqVOsE5nxQMafiL6Osox7xkoeAVoWkiDw/M8OEcgWaVLXWhd/YgVGjQyo+2mPUELLqZTx/ZOHNvvHNom1AzI8hNENFxo77ruZpyNAccrQkcKRpWlsvHRDutGfKDF96mr/tbXENSbbawSxH3SHlmHsOaA3Kx0q7mq+uq0YLyV82dZq6u6o3WDQ9Otv+Hh18RHHAlYnaB+oNvS6nhvSQn6mRrOUllcnQIDAQAB
La valeur de la clé publique p de l'enregistrement DKIM qui était écrit au 01/10/2017 sur la page du blog sud-ouest2.org est incompatible avec Plesk, y-compris avec la dernière version Plesk Onyx. Plesk ne sait pas gérer correctement les caractères guillemets : pour chaque guillemet introduit, quelques minutes après la configuration, le logiciel ajoute un caractère d'échappement, si bien que l'outil en ligne dkimcore.org cité plus haut dans cette page confirme systématiquement que l'enregistrement DKIM n'est pas conforme aux spécifications RFC 6376.
Pour configurer correctement DKIM dans Plesk, il faut :
Certaines documentations3)recommandent d'ajouter un enregistrement pour spécifier le “DKIM policy record” :
Nom | _domainkey.mon-domaine.tld. |
Type | TXT |
Valeur | o=- o=~ |
o=-
signifie : “tous les emails sont signés” tandis que o=~
signifie “certains emails sont signés”.
Plesk avait spontanément ajouté _domainkey.ordi49.fr. TXT o=-
lorsque j'hébergeais mes boîtes mails sur le même hébergement. Je l'avais retiré après ma migration chez sud-ouest2.org. Je viens de le reconfigurer par acquis de conscience.
J'invite tous les administrateurs de domaines qui externalisent comme-moi la gestion des emails chez Sud-Ouest à vérifier DKIM à l'aide des Outils en ligne listés ci-dessus.
Typiquement :
Si DKIM est correctement configuré sur mon-domaine.tld, tout message email envoyé à une adresse externe aux domaines mon-domaine.tld, sud-ouest.org, sud-ouest2.org, aquitania.org, neutralite.org et mailz.org doit :
DKIM-Filter: OpenDKIM Filter v2.11.0 mx-out-01.sud-ouest2.org 4ABA1809C379C DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mon-domaine.tld; s=dkim; t=1506661465; bh=+qlNhYuQiot52MMJ53YSV0rt4q35P6JeHyKLUgbd7Ek=; h=To:From:Subject:Date:From; b=YBwPMGyy8RkRx5O6ZCvMp+j2L8eDDnxDM5strwye1sEs8kU5JE0BfkyDylxy5Sq2I sUALnqhslEVcI/5BKCWSWqT10QsmIHxrtnPdBUdAUWv2AuqBzmwEhQ0018OOcDvJx1 DgStaFJr6mvrlbvgu9/D3dsZvcov1EyzhLFHavUuQ20QUnVKqUxNM1O7ee7bW8L8ht zKpH6BFApvcmHk0r3aVdVkHiwoZioVAlrNnZeHfjhXMV3BTYseMtFa/CDjIVwdxefo Zv5YwLLvc+UynBEevugN+drTqZF6Yx5UsMWyXM7hmXKgtFHEH5mDE0M1F2kPOKT6nO TiLO4p7cbmiaw==
Implémenté par DNS via le sous-domaine virtuel autoconfig du domaine principal, le service autoconfig est fourni par une ressource XML envoyée par le serveur sud-ouest2.org (fichier .well-known/autoconfig/mail/config-v1.1.xml
). Ces informations permettent aux logiciels clients emails comme Thunderbird de configurer les bons paramètres de connexion avec le minimum d'intervention manuelle.
La commande suivante permet de vérifier que ce service autoconfig est actif sur votre domaine :
wget -q %%http://autoconfig.mon-domaine.tld/.well-known/autoconfig/mail/config-v1.1.xml%% -O -
Exemple :
mederic@devuan:~$ wget -q http://autoconfig.ordi49.fr/.well-known/autoconfig/mail/config-v1.1.xml -O - <clientConfig version="1.1"> <emailProvider id="sud-ouest2.org"> <domain>sud-ouest2.org</domain> <displayName>Sud-Ouest2 Mail</displayName> <displayShortName>Sud-Ouest2</displayShortName> <incomingServer type="imap"> <hostname>mail.sud-ouest2.org</hostname> <port>993</port> <socketType>SSL</socketType> <authentication>password-cleartext</authentication> <username>%EMAILADDRESS%</username> </incomingServer> <incomingServer type="pop3"> <hostname>mail.sud-ouest2.org</hostname> <port>995</port> <socketType>SSL</socketType> <authentication>password-cleartext</authentication> <username>%EMAILADDRESS%</username> </incomingServer> <outgoingServer type="smtp"> <hostname>mail.sud-ouest2.org</hostname> <port>587</port> <socketType>STARTTLS</socketType> <authentication>password-cleartext</authentication> <username>%EMAILADDRESS%</username> </outgoingServer> <documentation url="https://sud-ouest2.org/category/documentation"> <descr lang="fr">Documentation utilisateur</descr> <descr lang="en">Generic settings page</descr> </documentation> </emailProvider> </clientConfig>
Plus d'information sur le service autoconfig :
Vérifier la disponibilité des serveurs sud-ouest SMTP, IMAP et POP au travers d'un canal chiffré TLS-SSL :
openssl s_client -connect mail.sud-ouest2.org:993
openssl s_client -connect mail.sud-ouest2.org:995
openssl s_client -connect mail.sud-ouest2.org:587 -starttls smtp
Via les protocoles POP et SMTP, taper quit pour sortir de la conversation4), tandis que via le protocole IMAP, il faut théoriquement taper logout (mais le serveur IMAP de sud-ouest ne comprend ni quit, ni logout, ni exit).
Exemple pour le serveur POP :
mederic@devuan:~$ openssl s_client -connect mail.sud-ouest2.org:995 CONNECTED(00000003) depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 verify return:1 depth=0 CN = mail.sud-ouest2.org verify return:1 --- Certificate chain 0 s:/CN=mail.sud-ouest2.org i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 i:/O=Digital Signature Trust Co./CN=DST Root CA X3 --- Server certificate -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- subject=/CN=mail.sud-ouest2.org issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 --- No client certificate CA names sent --- SSL handshake has read 3668 bytes and written 447 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 4096 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: C30DE476BD2D6E4F440E058F36A202D82718A0C736CFB655460749E91208B5CA Session-ID-ctx: Master-Key: F690AC0FFAAE3E3042DFC84B3C0694370667B5E9B5D7962B59CF8E0B99880DEAC3F04D5D6936045ABE801B0D3F69ADD0 Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None TLS session ticket lifetime hint: 7200 (seconds) TLS session ticket: 0000 - f1 17 6d 74 15 1f 9c c8-32 20 ef 71 a6 a8 15 8d ..mt....2 .q.... 0010 - 27 e7 4f ac df 5f 81 f3-9c fc 5b ce 49 fb 5d 1a '.O.._....[.I.]. 0020 - de 17 03 ed 77 b6 0b 29-d1 ab 8e d5 03 81 d4 d9 ....w..)........ 0030 - c9 de c3 b9 a7 7c 41 98-10 ac 2f 86 21 86 f2 c8 .....|A.../.!... 0040 - 70 6f 29 76 86 d6 a0 0a-3d 7d e6 51 6f a2 89 a8 po)v....=}.Qo... 0050 - 77 6a fc a7 d7 83 5e d1-0d ad 55 29 77 22 e3 94 wj....^...U)w".. 0060 - 25 07 2d 8f 32 1b 59 b7-b5 29 40 c7 8e 96 11 81 %.-.2.Y..)@..... 0070 - fa 35 7a 95 eb 4f ae de-24 8e b9 d3 da 53 71 42 .5z..O..$....SqB 0080 - 4d f3 7d c7 26 c3 89 37-83 25 91 c3 1b b5 4c 9c M.}.&..7.%....L. 0090 - c7 61 52 9a 61 1d ff eb-4b 54 4b 06 36 e0 85 e1 .aR.a...KTK.6... Start Time: 1508248714 Timeout : 300 (sec) Verify return code: 0 (ok) --- +OK Dovecot ready. quit +OK Logging out closed
Si vous rencontrez un problème de connexion SSL avec un courrielleur bien que les paramètres de configuration soient corrects, vous pouvez éventuellement réaliser un log des connexions POP/SSL et SMTP/SSL grâce au programme en ligne de commande openssl du projet logiciel libre OpenSSL. Ces logs révèlent des informations supplémentaires qui peuvent éventuellement aider à comprendre certains problèmes (interception des connexions chiffrées par des logiciels intermédiaires sous Microsoft Windows, etc.)
Exemples :
echo quit | openssl s_client -connect mail.sud-ouest2.org:995 -state -nbio 2>&1 |tee $(date +%Y.%m.%d.%H.%M.%S).openssl-log.txt
echo quit | openssl s_client -connect mail.sud-ouest2.org:587 -state -starttls smtp 2>&1 |tee $(date +%Y.%m.%d.%H.%M.%S).openssl-log.txt
Ressources diverses en lien avec OpenSSL :
echo quit | openssl s_client -connect mail.sud-ouest2.org:995
echo quit | openssl s_client -connect mail.sud-ouest2.org:587 -starttls smtp