Ce billet est la suite logique de celui sur l’ajout d’un enregistrement SPF, il va en effet permettre de réduire encore plus les risques d’être déclaré comme spammeur car tous les messages sortants du serveur de messagerie seront signés et donc authentifiés.
Installation et configuration
Les commandes et chemins décris ci-dessous sont ceux d’un serveur Fedora, il suffira de les adapter pour une autre distribution. Sous Fedora l’installation se fait avec dnf
désormais :
$ sudo dnf install opendkim
TODO : voir ici pour mettre les domaines gérés par DKIM dans des tables : https://www.linuxbabe.com/redhat/set-up-spf-dkim-postfix-centos
Il faut maintenant éditer le fichier de configuration d’OpenDKIM /etc/opendkim.conf
avec les valeurs ci-dessous (bien entendu il faut remplacer rholala.net
par votre nom de domaine).
Mode s Domain rholala.net KeyFile /etc/postfix/dkim.rholala.net.key Selector mail
En principe le paramètre Mode est à v
(vérifier) par défaut, on le passe à s
(signer) pour lui dire de signer les messages sortants. Selector
quand à lui est un identifiant, je le mets à mail, mais libre à vous de choisir autre chose.
Lorsque ceci est fait, mettre à jour la configuration de Postfix (sous /etc/postfix/main.cf
) pour prendre en compte OpenDKIM :
milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891
Générer les clés DKIM
Il faut maintenant générer les clés qui serviront à la signature cryptographique des entêtes des messages :
$ opendkim-genkey -t -s mail -d rholala.net
Cette commande va créer 2 fichiers mail.private
et mail.txt
. Le premier est la clé privée qui sera utilisée par OpenDKIM pour signer les messages, on peut copier celle-ci sous /etc/postfix
en la renommant en dkim.rholala.net.key
comme dans le fichier de configuration d’OpenDKIM que nous avons modifié au début de ce billet. Le second fichier est l’enregistrement DNS à ajouter, il ressemble à ceci :
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; t=y; " "p=MGIfMA0GCD5BouQIDAQAB" ); ----- DKIM key mail for rholala.net
(J’ai volontairement tronqué la chaine commencant par "p=MGI"
car elle est très longue.)
Ajout du DNS record
Il faut donc ajouter cet enregistrement dans votre zone, je ne l’explique pas ici car cela dépend du type de gestion DNS que vous utilisez.
Lorsque ceci est fait et après un temps de propagation, vous pouvez tester votre DNS record :
$ dig TXT mail._domainkey.rholala.net
Fin et test de la mise en place de DKIM
Il est temps de démarrer le service DKIM et de l’activer par défaut au démarrage de la machine :
$ sudo systemctl start opendkim $ sudo systemctl enable opendkim $ sudo systemctl reload postfix
Lorsque ceci est fait, on peut tester si les messages sortants sont bien signés. Pour ce faire, il suffit de regarder les entêtes des emails envoyés depuis le serveur, par exemple :
Authentication-Results: mx.google.com; spf=pass (google.com: domain of postmaster@rholala.net designates 5.196.74.38 as permitted sender) smtp.mailfrom=postmaster@rholala.net; dkim=pass (test mode) header.i=@rholala.net DKIM-Filter: OpenDKIM Filter v2.10.3 erebor.rholala.net 3C6E7112B4FD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rholala.net; s=mail;
Mais il existe bon nombre d’outils en ligne pour tester ce genre de choses :
Faîtes votre choix!