Accueil - Guides Plesk - Mise en place SPF DK DKIM sur votre serveur avec PLESK

Mise en place SPF DK DKIM sur votre serveur avec PLESK

La signature de mail via le protocole SPF DK DKIM est très importante. Cela permet d’éviter que les mails envoyés via votre serveur arrivent dans le dossier SPAM de vos destinataires. Dans ce tutoriel nous allons effectuer la mise en place de ces trois protocoles pour un domaine. J’utilise un serveur dédié ou VPS chez OVH avec UBUNTU et PLESK 12.5.30. Normalement vous n’aurez aucun mal à faire le tutoriel avec DEBIAN ou CENTOS

Le tutoriel est très simple , vous avez la possibilité de vous arrêter au paramétrage SPF et DOMAIN KEYS , si vous voulez vraiment avoir un serveur optimisé à 100% alors vous pouvez également ajouter le protocole DKIM.

Mise à jour 20/02/17 : SI vous utilisez la version 17.X de PLESK alors DKIM est inclus. Il suffit de l’activer ici :

plesk17 parametres

Puis en bas de la page

plesk17 dkim

Valider et votre serveur de messagerie activera le protocole SPF + DKIM.

SPF DK DKIM c’est quoi ?

Ce sont des protocoles qui permettent de mettre une signature dans vos e-mails, c’est transparent pour l’utilisateur mais en réalité il ajoute des entêtes dans le corps du mail afin de prouver l’authenticité de l’expéditeur.

Pour les plus curieux je vous invite à lire les différents articles sur WIKIPEDIA pour les différents protocoles SPF  DK  DKIM ( DomainKeys Identifited Mail )

DomainKEYS est un protocole obsolète qui est remplacé par DKIM mais les serveurs le prennent toujours en compte.

Ajout du serveur MAIL POSTFIX sur votre interface PLESK

Votre serveur mail utilise peut être QMAIL , je vous invite à basculer vers POSTFIX qui permet de mettre en place les 3 protocoles. Pour se faire rendez-vous dans Outils & Paramètres puis Mises à jour et à niveau

outil mise à jour plesk

Ensuite , Ajouter/Supprimer des composants

mises à jour composant plesk

Puis dans la partie Mail Hosting choisir POSTFIX

plesk mail hosting

PLESK désinstallera QMAIL puis installera POSTFIX , rassurez-vous vos mails sont sauvegardés.

Maintenant que vous êtes sur POSTFIX nous pouvons configurer notre DNS

Mise en place du SPF et DOMAIN KEYS

Configuration DOMAIN KEYS et SPF

La première chose à faire c’est dire à votre serveur d’utiliser SPF et DOMAIN KEYS pour cela il faut se rendre dans Paramètres du serveur de messagerie

plesk parametrage messagerie

Puis vérifier que les cases suivantes sont cochées :

plesk_activation_spf_domainkeys2

Ensuite il faut se rendre dans l‘onglet MAIL de votre interface PLESK puis dans le paramétrage de la messagerie correspondant à votre domaine 

parametrage messagerie plesk

Une fois que vous avez cliqué sur votre domaine activer les deux options suivantes :

plesk parametrage spf domainkeys

Faire Appliquer , des entrées DNS vont ainsi se mettre à jour pour votre domaine.

Configuration DNS pour SPF et DOMAIN KEYS

Il faut se rendre dans les paramètres DNS de votre domaine

plesk parametres dns

Vous verrez alors les différentes entrées DNS

Voici ce que j’ai pour mon domaine appelé domaine-test ( bien évidemment domaine-test correspond chez-vous à votre domaine )

spf dk dkim

Attention à la syntaxe pour SPF , votre entrée doit être une entrée TXT avec comme valeur ça :

v=spf1 +a +mx +ip4:ip_de_votre_serveur_mail ?all

C’est une entrée optimisée , remplacez ip_de_votre_serveur_mail par l’IP de votre serveur

Pour les différentes syntaxes vous pouvez consulter la documentation officielle SPF

Vous n’avez rien d’autre à faire pour le DomainKeys.

Lors de la modification du DNS pensez à cliquer sur Mise à jour puis Application du Template

application dns plesk

Envoi d’un mail de test et vérification de la bonne application des paramètres

Avant de lancer le mail de test il faut peut être attendre 24 à 48h le temps que vos DNS se propagent.

Pour faire mes test j’utilise le site suivant : MailTester

Le principe est simple vous avez une adresse mail à qui il faut envoyer un e-mail

mail tester

Dans le mail que vous envoyez mettez quand même du contenu et non un simple Test dans l’objet et TEST dans le corps du mail

Vous obtenez ensuite un score ( qui doit être entre 7 et 10 ) vérifiez dans les détails que le protocole SPF et DK est bien détecté , cliquez sur le + dans le menu qui vous dit si vous être bien ou mal authentifié.

Normalement à ce stade vos mails ne doivent plus arrivés en SPAM chez vos destinataires. La dernière partie présente la mise en place du protocole DKIM.

Mise en place du DKIM

La partie la plus compliquée du tuto pour assurez la mise en place SPF DK DKIM.

Installation & configuration OpenDKIM

Il faut se connecter en SSH sur votre serveur via Putty ou tout autres applications du même genre

Ensuite nous allons installer OpenDKIM via la commande suivante :

aptitude install opendkim opendkim-tools

Une fois installé nous allons créer les différents dossiers nécessaires via la commande suivante :

mkdir -pv /etc/opendkim/keys 

chown -Rv opendkim:opendkim /etc/opendkim

chmod go-rwx /etc/opendkim/*

Ces dossiers vont accueillir les différentes clés de cryptage pour le protocole DKIM

Nous allons ici créer les différents répertoires pour notre domaine :

mkdir -p /etc/opendkim/keys/domaine-test.com

cd /etc/opendkim/keys/domaine-test.com 

opendkim-genkey -d domaine-test.com -s mail 

chown -Rv opendkim:opendkim /etc/opendkim/keys/domaine-test.com

chmod -v u=rw,go-rwx *

Remplacez domaine-test.com par le nom de votre domaine

Désormais vous avez 2 fichiers

  • /etc/opendkim/keys/domaine-test.com/mail.private

il contient la clé de cryptage

  • /etc/opendkim/keys/domaine-test.com/mail.txt

Il contient l’entrée DNS pour activer le protocole DKIM.

Maintenant nous allons préparer les différents fichiers de OPENDKIM

Utiliser les commandes suivante pour créer les fichiers KeyTable, SigningTable, TrustedHosts

touch /etc/opendkim/KeyTable

touch /etc/opendkim/SigningTable

touch /etc/opendkim/TrustedHosts

Le fichier TrustedHosts doit contenir les différents hôtes sûrs

En exemple voici le contenu mien

127.0.0.1
localhost
vps264034.ovh.net
51.255.168.189
sdns2.ovh.net
domaine-test.com

Ajustez le pour votre domaine , votre nom de serveur et l’IP de votre serveur.

Configuration du fichier Keytable ,SigningTable et TrustedHosts

Voici la ligne de commande à éditer selon le nom de votre domaine

echo « domaine-test.com domaine-test.com:mail:/etc/opendkim/keys/domaine-test.com/mail.private » >> /etc/opendkim/KeyTable
echo « *@domaine-test.com domaine-test.com » >> /etc/opendkim/SigningTable
echo « domaine-test.com » >> /etc/opendkim/TrustedHosts
echo « mail.domaine-test.com » >> /etc/opendkim/TrustedHosts

Elle permet d’ajouter dans les différents fichiers les bon éléments pour assurer la signature DKIM de vos mails.

Ajout de l’entrée DNS pour le fonctionnement du DKIM

Il faut se rendre dans le paramétrage DNS de votre domaine pour ajouter le paramétrages indiqué dans le fichier mail.txt

Voici ce que j’ai

dns dkim

on doit donc faire une entrée de type TXT  , pour le NOM DE DOMAINE il faut s’appuyer sur le contenu du fichier mail.txt

Me concernant j’ai ça

nom de domaine : mail._domainkey

Enregistrement TXT :  v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNYHM5jmbxtJfTZtVYe3F2zf+vbjmPeJheRUgQ1VZfeZ3cjZYTaTwbPE5x/9IlIdErbxAwoJproZB33emJfxqaot1ENKSwja/2/jf9hk++Lg6en8FjlXyY5shC4F8pOLl6zrzV7Xr1MNWXLvWWsi1s44eHPIxUFas5OJYf515TUQIDKVK

Pensez à appliquer les modifications.

Paramétrage OPENDKIM

On arrive à la fin , dans quelques minutes votre domaine enverra des mails signés SPF DK DKIM la classe :D !

On va modifier le fichier opendkim.conf qui se trouve ici etc/opendkim.conf

Vous allez ajouter le contenu suivant dans à la fin du fichier :

# Enable Logging
Syslog yes
SyslogSuccess yes
LogWhy yes

# User mask
UMask 002

# Always oversign From (sign using actual From and a null From to prevent malicious signatures header fields (From and/or others) between the signer and the verifier)
OversignHeaders From

# Our KeyTable and SigningTable
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable

# Trusted Hosts
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts

# Hashing Algorithm
SignatureAlgorithm rsa-sha256

# Auto restart when the failure occurs. CAUTION: This may cause a tight fork loops
AutoRestart Yes

# Set the user and group to opendkim user
UserID opendkim:opendkim

# Specify the working socket
Socket inet:8891@localhost

Sauvegarder le fichier puis utiliser la commande suivante pour redémarrer le service OpenDkim

service opendkim restart

Paramétrage POSTFIX

Nous allons modifier le fichier main.cf se trouvant dans etc/postfix/main.cf

Ajouter à la fin du fichier le contenu suivant :

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
non_smtpd_milters = $smtpd_milters

Le milter protocol doit être à 6 autrement vous enverrez des mails signés en DOMAINKEYS et non DKIM

On redémarre Postfix pour appliquer la configuration via la commande suivante :

service postfix restart

A ce stade tout est fait , votre serveur envoie des mails signés SPF DK DKIM , pour en être sur renvoyer un mail de test à Mail tester comme vu plus haut, logiquement il devrait vous dire que les mails sont signés en DKIM et plus en DOMAINKEYS

Pour Aller plus loin

Pour réaliser le tutoriel SPF DK DKIM je me suis appuyé sur l’excellent tutoriel de MATOSKI , j’ai traduit en français les étapes.

Dans son tutoriel vous pouvez même aller jusqu’à l’automatisation du paramétrage des fichiers nécessaires au domaine.

Pour toutes questions , aides, suggestions les commentaires sont les bienvenus :)

22 commentaires

  1. Il faut vérifier sur chaque domaine que le SPF domainkey est activé. PLESK peut avoir tendance à pas appliquer le paramétrage sur tous les domaines.

    Pour DKIM pareil pour chaque domaine , domain-test.com est un exemple , vous devez le remplacer par votre domaine à protéger.

    Bon à savoir : sur la nouvelle version de PLESK 17.X DKIM est inclus.

  2. Bonjour
    merci beaucoup pour le tuto. ma question est que j’ai un serveur dédié avec dedant 10 sites de mes clients.

    1- dois-je faire tout se tuto pour chaque nom de domaine sur mon serveur ou uniquement pour le hostname du serveur et aprés çq se fait automatiquement pour chaque nom de domaine héberger sur se serveur ?
    2- est se que je doit mettre « domaine-test.com » dans toutes les commande ou je met directement le nom de domaine a qui je veux installer le dkim ?

    merci beaucoup

  3. Bonjour et merci pour ce tuto, très intéressant sur le DKIM & Plesk.

    J’ai essayé de le suivre à la lettre mais clairement j’ai vraisemblablement échoué quelque part…

    En essayant de rajouter une adresse sur Thunderbird, j’obtiens le premier message d’avertissement :
    mondomainetest.com n’utilise pas de chiffrement. Les serveurs de connexion non-sécurisés n’utilisent pas de connexion chiffrés, Thunderbird vous laissera accéder à vos mails mais vous pourriez exposer votre mot de passe et vos info privées.

    J’arrive toujours à recevoir du courrier (yeah !), mais quand j’essaye d’envoyer un mail , j’obtiens le message d’erreur :
    Une erreur est survenue lors de l’envoi du courrier : le serveur de courrier a envoyé un message d’accueil incorrect : Cannot connect to SMTP server 12.34.56.78 (12.34.56.78:587), connect error 10061.

    Une idée pour solutionner ce problème ? Je tiens à préciser que je tourne sur Plesk, Ubuntu 14.04.5 LTS‬. Tout semblait bien se passer jusqu’à la dernière étape du tuto et le paramétrage de Postfix. J’ai recu plus ou le même message d’erreur que Nico car mon fichier main.cf contenait déjà la ligne smtpd_milters = , inet:127.0.0.1:12768 et ça posait un problème d’en rajouter une à la fin.

    J’ai donc essayé d’en supprimé une pour ne conserver que :
    smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768

    Mais sans succès…

    Un idée pour solutionner ces problèmes, ô maitre Tutos ?
    Cordialement ;)
    Julien

  4. Bonsoir et merci beaucoup pour cette réponse si rapide !
    Je suis sous Ubuntu 14.04.5 LTS‬ avec Plesk Onyx Version 17.0.17 Mise à jour n° 11
    En effet le redémarrage de Postfix balance près de 30 Warning, mais le service SMTP fonctionne toujours.
    Pour le test, je n’ai pas pu retester sur le site car j’avais grillé mes 3 essais par jour.
    Je vais donc refaire le test demain.
    J’ai regardé les entête de mon mail sur une autre boite, mais je ne vois rien sur DKIM.
    Peut être faut il un temps de propagation…
    Encore merci pour ton aide. J’ai tous mes mails qui sont bloqués vers SFR, GMAIL, Orange…

  5. Hello , tu es sur quelle version 12.5 ou la toute dernière fraîchement sortie ? pour ma part ça tourne autour du smtpd_milters a première vu c’est du Warning , tu as fais les tests ton DKIM est t’il opérationnel ?
    merci.

  6. Bonjour,

    Je viens de déployer ton super TUTO à la lettre ! Merci encore !
    Tout se passe bien jusqu’au redemmarage de Postfix :

    /usr/sbin/postconf: warning: /etc/postfix/main.cf, line 85: overriding earlier entry: smtpd_milters=inet:127.0.0.1:12768
    /usr/sbin/postconf: warning: /etc/postfix/main.cf, line 86: overriding earlier entry: non_smtpd_milters=

    J’ai plein de lignes comme celle ci.
    Aurais tu une piste à me donner ?
    Encore merci
    Amitiés
    Nicolas

    PS : Distribution Ubuntu avec PostFix et Plesk dernière version.

  7. Hello, j’ai fais des mises à jours Plesk et le DKIM est toujours présent. Le DKIM est en faîtes intégré à ton OS et son ystème de messagerie ( Ubuntu / Debian / LINUX ) et POSTIFIX en messagerie.

  8. Bonjour,

    Merci beaucoup pour ce tutoriel très complet. Juste une question, j’ai un serveur dédié sous Plesk 12.5 , et je voudrais installer le DKIM (manuellement donc, vu que Plesk ne le prévoie pas « de série »). Mais j’ai un doute : est-ce qu’il ne sera pas nécessaire de refaire la démarche à chaque mise à jour de PLESK ?

  9. merci pour les infos je corrige l’article :)

  10. Bonjour,

    Un grand merci pour ce magnifique tuto ! Les mails envoyés par mon serveur étaient systématiquement rejetés par les boites gmail, et 24h après avoir mis en place DKIM SPF tout fonctionne à merveille.

    Pour augmenter encore le score on peut facilement ajouter DMARC, en créant une entrée TXT au niveau des DNS sur le sous domaine _dmarc.mondomaine.com avec la valeur : v=DMARC1; p=none

    Enfin, je voulais signaler deux petites coquilles sur les portions de code du tuto :

    Ici :
    chown -Rv opendkim:opendkim /etc/opendkim c
    hmod go-rwx /etc/opendkim/*

    Le « c » en fin de première ligne doit passer en dessous (chmod)

    et ici :
    cd /etc/opendkim/keys/domaine-test.com opendkim-genkey -d domaine-test.com -s mail

    Il manque un saut de ligne après la commande cd /etc/opendkim/keys/domaine-test.com

    Encore merci ! :)

  11. Merci de ta réponse.
    J’ai mon propre serveur mail qui est : mail.karamemis.fr avec un rDNS.
    Du coup j’ai fait le DKIM sur ce sous ce domaine.
    Et j’utiliserai mail.karamemis.fr comme mx pour tout mes autre nom de domaine.
    Voilà!
    J’éspere que tout est correcte. En tout cas ça fonctionne.
    :) Et encore merci pour tont tuto.

  12. Bonjour, ce sera ton nom de domaine.
    Quand tu envois des mails c’est sous la forme : nom@tonnomdedomaine.fr

    Normalement ton MX dois pointer vers le serveur de messagerie que tu veux utiliser. Soit c’est chez un hébergeur de nom ( type ovh ) soit c’est sur ton propre serveur , dans ce cas c’est l’ip Publique de ton serveur qu’il faut mettre.

    On utilise le mail.nomdedomaine.fr pour la webmail .

  13. Bonjour je viens de suivre ce tuto pour 1and1 avec plesk et ça marche impeccable.
    Cependant moi j’utilise le serveur DNS de 1and1. J’ai du creer un un sous domaine mail.monnomdedomaine.fr que j’ai ensuite assigner au MX de mon nom de domaine.
    Du coup il est préférable que je mette mail.ndd.fr ou ndd.fr pour les étapes echos du Keytable et SigningTable? Car aprés je veux mettre en place un rDNS et je sais s’il faut que je mette ndd.fr ou mail.ndd.fr vu que ça doit corresspondre au domain renseigner dans le DKIM

    Merci de ton aide par avance.

  14. Hello, normalement tu devrais retrouver ton domaine. Tu as utilisé ces commandes : echo « domaine-test.com domaine-test.com:mail:/etc/opendkim/keys/domaine-test.com/mail.private » >> /etc/opendkim/KeyTable
    echo « *@domaine-test.com domaine-test.com » >> /etc/opendkim/SigningTable
    echo « domaine-test.com » >> /etc/opendkim/TrustedHosts
    echo « mail.domaine-test.com » >> /etc/opendkim/TrustedHosts ?

  15. Bonjour,
    Merci pour ce super tuto!

    J’ai cependant un problème avec DKIM
    J’ai configuré pour signer avec mondomaine.com et lorsque j’essaie d’envoyer un email j’ai l’erreur suivante dans les logs :
    opendkim: no signing table match for ‘root@nsxxxxxx.ovh.net’
    opendkim: no signature data

    le fichier KeyTable contient :
    mondomaine.com mondomaine.com:mail:/etc/opendkim/keys/mondomaine.com/mail.private

    le fichier SigningTable contient :
    *@mondomaine.com mondomaine.com

    A la place de root@nsxxxxxx.ovh.net je ne devrais pas plutôt avoir l’adresse email avec laquelle j’essaie d’envoyer le mail : « test@mondomaine.com » ?

    Si quelqu’un a une idée de ce qui pose problème, je suis preneur ;-)

  16. Bonjour , il faut reprendre la partie du tuto sur le DKIM, tu dois refaire les parties ou il y a ton domaine à saisir ( domaine-test). Cette partie est à faire pour chaque domaine pour lequel tu veux activer DKIM

  17. Que faire si j’ai plusieurs domaines dans le même serveur? J’ai deux messageries gérées sur le même serveur. Après config sur le premier domaine ça marche à merveille mais sur le second DKIM n’est pas pris en compte.
    Provide more details please !! Et Merci pour ce super tuto !!

  18. Bonjour,
    Oui j’ai fait beaucoup de tests et j’obtiens des scores proches du 10/10.
    Je pense que Mr Microsoft empêche ceux qui ne font pas parti de leurs partenaires d’atterrir dans leurs boites.

    Par dépit j’ai opté finalement pour un relay smtp et je suis bon maintenant chez Yahoo mais microsoft me donne toujours du fil à retordre :(

  19. Hello, Yahoo et HOTMAIL ont des filtres très agressifs. As-tu fais le test mail-tester pour voir ton score ? Les mails que tu envoies contienne quoi en objet / texte et signature ? Parfois les filtres mettent en spam des mails avec des signatures non conforme :(

  20. Bonjour j’avais suivi le tuto de Matoski et je suis tombé par hazard sur ce site français.
    Je suis toujours en spam avec hotmail et yahoo pourtant SFP DKIM sont bel et bien ok:
    hotmail.com; spf=pass (sender IP is 51.254.102.216; identity alignment result is pass and alignment mode is relaxed) smtp.mailfrom=jb@martin.sarl; dkim=pass (identity alignment result is pass and alignment mode is relaxed) header.d=martin.sarl; x-hmca=pass header.id=jb@martin.sarl
    Quelqun aurait une idée de ce qu’il se passe pour moi

  21. Bonsoir,
    DKIM n’est pas mis en place. Tu peux t’arrêter au DOMAIN KEY ( DK ) car la pluspart des serveurs mails l’accepte et permettent de sécuriser tes envois. Mais le protocole est obsolète donc peut être que dans quelques temps les fournisseurs ne se baseront plus dessus.

    Le passage en DKIM n’est pas compliqué.

    Bonne soirée.

  22. Bonjour,
    Merci pour votre tutoriel qui est très clair. J’ai suivi votre tutoriel jusqu’à l’étape « Mise en place du DKIM ». J’ai aussi un serveur dédié sur OVH avec UBUNTU et PLESK 12.5.30. Les e-mails envoyés du serveur semblent bien acceptés par des messageries comme Gmail (ce qui n’était pas le cas avant).

    J’avais une question : faut-il que je poursuive avec l’installation jusqu’à la fin avec l’installation et la configuration de OpenDKIM en SSH. J’ai l’impression que l’interface Plesk a fait déjà fait le travail. Qu’en pensez-vous ? Merci d’avance de votre réponse.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer