En résumé
Problème : les e-mails sortants non authentifiés risquent d’être classés spam ou usurpés, ce qui dégrade la délivrabilité et la réputation du domaine.
Solution : installer et configurer OpenDKIM avec Postfix : génération des clés DKIM, publication DNS de la clé publique, liaison milter et vérification.
Temps de lecture : 10 min
🎯 Introduction (accroche SEO)
Optimisez la délivrabilité de vos e-mails avec DKIM et OpenDKIM pour Postfix.
Les e-mails sont un pilier de la communication moderne, mais comment s’assurer qu’ils arrivent bien à destination et qu’ils ne sont pas usurpés ? La réponse réside en partie dans la mise en place de DKIM (DomainKeys Identified Mail). Ce tutoriel vous guidera pas à pas pour installer et configurer OpenDKIM avec Postfix sur votre serveur.
Pourquoi DKIM est-il essentiel pour vos e-mails ?
DKIM est une méthode d’authentification des e-mails qui permet aux serveurs de messagerie de vérifier que les messages proviennent bien du domaine d’où ils prétendent venir et qu’ils n’ont pas été altérés en transit. En d’autres termes, il ajoute une signature cryptographique à vos e-mails sortants.
Voici pourquoi c’est crucial :
- Réduction du spam : Les e-mails non authentifiés sont souvent signalés comme spam. DKIM aide à réduire ce risque en prouvant la légitimité de vos envois.
- Amélioration de la réputation du domaine : Une bonne authentification renforce la confiance des fournisseurs de services de messagerie (FAI) envers votre domaine, ce qui améliore sa réputation.
- Protection contre l’usurpation d’identité : DKIM rend plus difficile pour les spammeurs d’envoyer des e-mails en se faisant passer pour votre domaine.
1. Les prérequis
Avant de commencer, assurez-vous que votre environnement est prêt :
- Un serveur avec Postfix en production.
- Un nom de domaine complet (FQDN) avec les enregistrements PTR et SPF déjà configurés. Ces éléments sont fondamentaux pour une bonne délivrabilité.
2. Installation d’OpenDKIM
Commençons par installer les paquets nécessaires :
sudo apt update
sudo apt install opendkim opendkim-tools
opendkim: le service principal pour la signature DKIM.opendkim-tools: des utilitaires pour générer les clés DKIM.
Ensuite, il est crucial d’ajouter l’utilisateur postfix au groupe opendkim pour qu’il puisse communiquer avec le socket du milter (un filtre de messagerie).
sudo usermod -aG opendkim postfix
3. Configuration d’OpenDKIM
Nous allons modifier le fichier de configuration principal d’OpenDKIM.
Modifier /etc/opendkim.conf
Ouvrez le fichier avec votre éditeur de texte préféré (par exemple, nano ou vim) :
sudo nano /etc/opendkim.conf
Ajoutez ou modifiez les lignes suivantes :
AutoRestart Yes
AutoRestartRate 10/1h
Syslog Yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
Mode sv
SignatureAlgorithm rsa-sha256
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
Socket inet:8891@localhost
Ces lignes définissent le comportement d’OpenDKIM, les tables de clés et de signature, les hôtes de confiance, et l’adresse du socket pour la communication.
Vérifier /etc/default/opendkim
Assurez-vous que le socket est correctement défini dans ce fichier. Ouvrez-le :
sudo nano /etc/default/opendkim
La ligne concernant le socket devrait ressembler à ceci :
SOCKET="inet:8891@localhost"
4. Création des fichiers de configuration
Nous allons maintenant créer les fichiers qui listent les hôtes de confiance, les clés et les domaines à signer.
TrustedHosts (/etc/opendkim/TrustedHosts)
Ce fichier contient la liste des hôtes dont les messages ne doivent pas être signés, ou qui sont autorisés à envoyer des messages sans signature.
sudo nano /etc/opendkim/TrustedHosts
Ajoutez les lignes suivantes, en remplaçant les exemples par votre propre FQDN et nom de domaine :
127.0.0.1
localhost
srv-b.democrasite.com # Remplacez par votre FQDN
democrasite.com # Remplacez par votre domaine principal
kameleon.fr # Ajoutez tout autre domaine pertinent
KeyTable (/etc/opendkim/KeyTable)
Ce fichier associe les sélecteurs DKIM à leurs clés privées.
sudo nano /etc/opendkim/KeyTable
Ajoutez la ligne suivante, en remplaçant democrasite.com par votre domaine :
default._domainkey.democrasite.com democrasite.com:default:/etc/opendkim/keys/democrasite.com/default.private
SigningTable (/etc/opendkim/SigningTable)
Ce fichier définit quels domaines seront signés par quelle clé.
sudo nano /etc/opendkim/SigningTable
Ajoutez la ligne suivante :
*@democrasite.com default._domainkey.democrasite.com
Cette ligne signifie que tous les e-mails provenant de n’importe quel utilisateur de democrasite.com seront signés avec la clé default._domainkey.democrasite.com.
5. Génération des clés DKIM
Maintenant, nous allons générer la paire de clés publique/privée qui sera utilisée pour signer vos e-mails.
sudo mkdir -p /etc/opendkim/keys/democrasite.com
cd /etc/opendkim/keys/democrasite.com
sudo opendkim-genkey -s default -d democrasite.com
default: est le sélecteur, un nom arbitraire pour identifier la clé.democrasite.com: est votre nom de domaine.
Ensuite, nous devons définir les bonnes permissions pour la clé privée :
sudo chown opendkim:opendkim default.private
sudo chmod 600 default.private
default.private: contient votre clé privée et doit être sécurisé.default.txt: contient la clé publique à publier dans vos enregistrements DNS.
6. Publication DNS de la clé publique
Votre clé publique doit être accessible aux serveurs de messagerie récepteurs pour qu’ils puissent vérifier la signature de vos e-mails.
Affichez le contenu de votre clé publique :
sudo cat /etc/opendkim/keys/democrasite.com/default.txt
Vous verrez une sortie similaire à celle-ci :
default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDj3eW... (votre clé publique)"
Vous devez créer un enregistrement TXT dans la zone DNS de votre domaine (via l’interface de votre hébergeur DNS, par exemple OVH, Cloudflare, etc.).
- Nom/Hôte/Sous-domaine :
default._domainkey - Valeur/Cible : Copiez tout le contenu entre les guillemets après
p=, y comprisv=DKIM1; k=rsa;.
Exemple OVH :
Type : TXT Sous-domaine : default._domainkey Cible : "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDj3eW... (votre clé publique)"
7. Liaison entre OpenDKIM et Postfix
Pour que Postfix utilise OpenDKIM pour signer vos e-mails, vous devez le configurer comme un milter.
Ajoutez ces lignes à la fin de votre fichier /etc/postfix/main.cf :
sudo nano /etc/postfix/main.cf
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
Enfin, redémarrez les services OpenDKIM et Postfix pour que les changements prennent effet :
sudo systemctl restart opendkim postfix
8. Vérification et tests
La propagation DNS peut prendre de 4 à 24 heures. Une fois ce délai passé, vous pouvez vérifier votre configuration.
- Envoyez un e-mail depuis une adresse de votre domaine (
@democrasite.com) vers un service comme Gmail ou Outlook. - Vérifiez les en-têtes de l’e-mail reçu. Vous devriez y trouver une ligne
DKIM-Signature:. - Utilisez des outils en ligne :
- mail-tester.com : Envoyez un e-mail à l’adresse fournie par le site. Le rapport vous indiquera si DKIM est validé (
dkim=pass). - opendkim-testkey : Vous pouvez aussi tester directement la clé avec cet outil (à exécuter sur votre serveur) :
- mail-tester.com : Envoyez un e-mail à l’adresse fournie par le site. Le rapport vous indiquera si DKIM est validé (
opendkim-testkey -d democrasite.com -s default -vvv
Si tout est correctement configuré, vous devriez voir un résultat positif.
✅ Résultat final
En suivant ce guide, vous aurez considérablement renforcé la fiabilité et la sécurité de l’envoi d’e-mails depuis votre serveur. La délivrabilité de vos messages s’en trouvera grandement améliorée, réduisant ainsi le risque qu’ils soient classés comme spam.
| Avant | Après |
|---|---|
| E-mails sortants non signés, risque de spam et d’usurpation | E-mails signés DKIM, authentification vérifiable par les serveurs récepteurs |
⚠️ Points d’attention
- Propagation DNS : elle peut prendre de 4 à 24 heures avant que les serveurs récepteurs détectent la clé publique.
- Permissions de la clé privée :
default.privatedoit rester enchmod 600et appartenir àopendkim:opendkim. - Cohérence du socket milter : le socket déclaré dans
/etc/opendkim.conf(inet:8891@localhost) doit correspondre à celui de/etc/default/opendkim(SOCKET="inet:8891@localhost"), sinon la signature DKIM ne fonctionne pas.
Et après ?
- Ajouter d’autres domaines : Si vous hébergez plusieurs domaines, répétez les étapes de génération de clés et de configuration pour chaque domaine, en utilisant des sélecteurs distincts (
default,mail,2024, etc.). - Renforcer la sécurité : Pensez à ajouter un enregistrement DMARC à votre zone DNS. DMARC utilise SPF et DKIM pour indiquer aux serveurs récepteurs comment traiter les e-mails qui échouent aux vérifications d’authentification.
- Surveiller les logs : Gardez un œil sur les journaux d’OpenDKIM et de Postfix pour détecter d’éventuels problèmes :
journalctl -u opendkim
tail -f /var/log/mail.log
📚 Ressources complémentaires
💬 Ton avis ?
Ce tutoriel t’a aidé à mettre en place DKIM sur ton serveur mail ? Tu veux un article dédié à un autre pilier de la délivrabilité (SPF, DMARC, DANE) ? Laisse un commentaire, je réponds !
📚 Dans la même série
Postfix et ses amis — Article 2 sur 2
Postfix : Installer et configurer DKIM avec OpenDKIM 👈 (tu es ici)
⬅️ Précédent : Postfix .conf exemple, srv-hosting config File – reformat
➡️ Suivant : (dernier article de la série)
Tous les articles de la série
- Postfix .conf exemple, srv-hosting config File – reformat
- Postfix : Installer et configurer DKIM avec OpenDKIM 👈 (tu es ici)
Publié le 21 août 2026 — Mis à jour le 21 août 2026
🔗 Articles liés
- Postfix .conf exemple, srv-hosting config File – reformat
- Postfix, muscler l’anti-spam contre fishing
- Stack serveur actuelle
Article rédigé par Nabil & Jarvis — V.001