Commencer par installer OpenDKIM avec yum
$sudo yum install opendkim opendkim-tools
$sudo yum install epel-release (si le paquet n'est pas trouvé)
Passons à la configuration de OpenDKIM, elle se trouve dans le fichier /etc/opendkim.conf.
$sudo nano /etc/opendkim.conf
Par défaut OpenDKIM n'est configuré que pour vérifier les signatures DKIM des e-mails reçus, en changeant le mode « v » en « sv », indiquer à OpenDKIM qu’il doit aussi signer les e-mails sortants.
Il faut ensuite décommenter les lignes contenant les chemins vers les clefs de signature DKIM et la liste des systèmes utilisant Postfix pour émettre/relayer leur e-mails.
Il s’agit des paramètres Keyfile, KeyTable, SigningTable, ExternalIgnoreList, InternalHosts
Rajouter ensuite deux lignes à la fin du fichier :
Domain <DOMAINE> // permet d’indiquer que les e-mails émis par ce domaine seront signés par OpenDKIM.
RequireSafeKeys False // permet d’éviter les erreurs en cas de mauvaises permissions configurées sur les clefs de signature DKIM. Vous pouvez retirer ce paramètre si vous êtes certain que seul l’utilisateur OpenDKIM peut lire et écrire sur les fichiers contenant les clefs privées de signature DKIM. Si vous faites une erreur sans ajouter ce paramètre l’envoi de vos emails risque d’être bloqué.
-Editer ensuite le fichier SigningTable :
$sudo nano /etc/opendkim/SigningTable
Rajouter la ligne :
*@<DOMAIN> <SELECTOR>._domainkey.<DOMAIN>
Dans l’exemple suivant le domaine est « dmarc.fr » et le selector est « demo »
-Editer le fichier KeyTable
$sudo nano /etc/opendkim/KeyTable
rajouter la ligne :
<SELECTOR>._domainkey.<DOMAINE>
<DOMAINE>:<SELECTOR>:/etc/opendkim/keys/<DOMAINE>/<SELECTOR>.private
-Editer le fichier TrustedHosts
$sudo nano /etc/opendkim/TrustedHosts
-Dans TrustHost ré-ajouter une/des ligne(s) avec votre domaine et les IPs qui utilisent le Postfix pour émettre/relayer des e-mails (serveurs applicatifs, etc.).
*.<DOMAINE>
-Créer un répertoire pour les clefs privées
sudo mkdir /etc/opendkim/keys/<DOMAINE>
-Générer les clefs avec :
$sudo opendkim-genkey -b 1024 -d <DOMAIN> -D /etc/opendkim/keys/<DOMAIN> -s <SELECTOR> -v
-Rendre l’utilisateur Opendkim propriétaire des clefs :
$sudo chown opendkim:opendkim /etc/opendkim/keys -R
-Vous pouvez maintenant afficher la clef publique :
$sudo cat /etc/opendkim/keys/<DOMAINE>/<SELECTOR>.txt
La clef publique apparaît et vous pouvez la publier sur votre DNS.
-Configurer ensuite postfix en ouvrant: /etc/postfix/main.cf.
$sudo nano /etc/postfix/main.cf
Ajouter les trois lignes à la fin du fichier de configuration :
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
Ensuite redémarrer openDKIM et Postfix:
$sudo service opendkim restart
$sudo service postfix restart
Maintenant envoyer un e-mail et vérifier que l’email est signé avec DKIM et le domaine que vous avez configuré.
Note : pour comprendre l’intégralité des options disponibles dans OpenDKIM :
https://linux.die.net/man/5/opendkim.conf