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.

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 « [email protected] 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:[email protected]

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 :)

14 commentaires

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

  2. 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 ! :)

  3. 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.

  4. Bonjour, ce sera ton nom de domaine.
    Quand tu envois des mails c’est sous la forme : [email protected]

    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 .

  5. 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.

  6. 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 « [email protected] domaine-test.com » >> /etc/opendkim/SigningTable
    echo « domaine-test.com » >> /etc/opendkim/TrustedHosts
    echo « mail.domaine-test.com » >> /etc/opendkim/TrustedHosts ?

  7. 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 ‘[email protected]
    opendkim: no signature data

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

    le fichier SigningTable contient :
    [email protected] mondomaine.com

    A la place de [email protected] je ne devrais pas plutôt avoir l’adresse email avec laquelle j’essaie d’envoyer le mail : « [email protected] » ?

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

  8. 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

  9. 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 !!

  10. 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 :(

  11. 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 :(

  12. 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) [email protected]; dkim=pass (identity alignment result is pass and alignment mode is relaxed) header.d=martin.sarl; x-hmca=pass [email protected]
    Quelqun aurait une idée de ce qu’il se passe pour moi

  13. 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.

  14. 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