Amavisd échoue dans le test de la clé DKIM

Bonjour,
J’ai un serveur postfix/dovecot/mysql qui marche très bien. Maintenant, je voudrais activer la signature dkim dans amavis et je suis bloqué. La commande de test suivante échoue :
amavisd testkeys
Le message d’erreur est

invalid (public key: DNS query timeout for dkim._domainkey.mydomain.com at /usr/share/perl5/Mail/DKIM/DNS.pm line 156.)

La configuration du serveur est :
Debian 8
postfix 2.11.3
dovecot 2.2.16
amavis 2.10.1

Merci d’avance

Ben tu as vérifié que host -t TXT dkim._domainkey.mydomain.com, exécuté sur la machine de ton amavis, renvoyait bien l’enregistrement TXT qui va bien pour ton DKIM ?
Sinon, si tu as mis ton record dns récemment, il ne s’est peut être pas propagé, auquel cas tu vérifies que c’est bon à la source en spécifiant ton serveur d’autorité pour la zone (host -t TXT dkim._domainkey.mydomain.com dns.mydomain.com): si c’est bon sur ton serveur dns, faut juste attendre.

[edit: je crois voir que le message n’a pas été posté dans la bonne section du forum, même dans aucune section particulière, faut éviter ça, merci, ça oblige les modos à ranger ensuite le fil au bon endroit. ]

Merci pour ta réponse.
Effectivement, tu as raison pour le mauvais classement. Je ferais plus attention la prochaine fois.
Sinon, j’avoie que je ne maîtrise pas unbound. Je ne peux pas affirmer si le record dns a été mis convenablement en le palçant dans le fichier /var/lib/unbound/root.key
Dans tous les cas, si j’ai mal fait, merci de me corriger
Merci

Et du coup, tu l’as vérifié avec host, comme je t’ai indiqué, pour savoir si c’est un probléme avec ton unbound mal configuré ?
En tous cas, ce que tu as mis dans root.key ne concerne pas directement ton soucis (sauf si ça empêche ton unbound de démarrer), vu qu’à ma connaissance, ce fichier sert à la sécurisation dnssec du serveur et éventuellement de l’ensemble des zones qu’il gère, alors que le dkim concerne la zone, donc ça se met dans la config de zone.

Ben c’est difficile de corriger quoi que ce soit, on ne sait pas ce que tu as fait, donc merci du merci, mais c’est pour rien. :smiley:

D’abord, la vérification avec host a donné le message d’erreur suivant :

;; connection timed out; no servers could be reached

Pour reprendre la discussion, est-ce que tu peux me dire effectivement comment faire pour configurer la zone ?

Laquelle ?
Tu peux copier la commande executée et ta sortie, qu’on comprenne ?

Absolument pas.
D’abord, je ne connais rien à unbound, et ton premier problème avant la config de zone, si j’en crois le message d’erreur du host, est surtout que ta résolution dns n’est pas ou est mal configurée.
Que dit cat /etc/resolv.conf, sur la machine du amavisd (c’est bien là que tu as fait le host, d’ailleurs ?)

J’ai exécuté la cde

host -t TXT dkim._domainkey.mydomain.com

le contenu de resolv.conf est

nameserver      127.0.0.1
nameserver       41.74.25.62

Bonjour,

Visiblement tu n’as pas d’enregistrement DKIM pour ton nom de domaine. Est-ce que tu as ton propre serveur DNS faisant autorité pour ton nom de domaine ou est-ce que tu utilises celui de ton hébergeur/registre ?
Dans un cas comme dans l’autre il faut ajouter cet enregistrement. En général les outils qui permettent de générer les clés dkim (opendkim-keygen, par exemple) fournissent aussi une copie de l’enregistrement DNS à répercuter sur le serveur faisant autorité.

Quelques ressources :
https://wiki.debian.org/opendkim
https://wiki.debian-fr.xyz/Opendkim
https://wiki.debian-fr.xyz/Amavisd-new_et_DKIM

Merci de mettre en forme tes posts avec les boutons de balisage pour isoler les choses que tu recopies, les citations, etc du fond de discussion:
c’est poli, et ça fait partie de la charte du forum.

Sinon, le contenu de ton resolv.conf indique que la resolution de ton serveur se fait en interrogeant d’abord le localhost qui manifestement ne répond pas (ça veut sans doute dire dire que ton unbound ne tourne pas) puis un serveur dns d’orange Madagascar qui n’est pas récursif donc ne répond pas si il ne gère pas la zone pour laquelle tu demandes des infos (en tous cas, pas pour moi depuis la France, tu peux vérifier avec host -t TXT dkim._domainkey.mydomain.com 41.74.25.62 et s’il te répond “REFUSED”, c’est que c’est le cas pour toi aussi).

On est loin du problème de zone, ta machine est juste mal configurée “à la base” pour la résolution dns.

Et pour corriger, ça dépend de comment est alimenté ce resolv.conf:

  • as tu le paquet resolvconf installé, ou bien est ce toi qui a alimenté ce fichier resolv.conf ? Ou autre solution de resolv.conf ?
  • l’adresse de la carte réseau de ta machine (qu’il faudrait peut être prendre comme premier resolveur au lieu de lo) est elle configurée de manière statique ou attribuée en dhcp ?

A ce sujet (l’adresse extérieure) tu confirmes bien que c’est une adresse publique, pas une adresse privée chez toi genre 192.168.X.Y ?
Parce que si ce n’est pas le cas, tu es très loin d’avoir ne serais ce qu’entamé la configuration de ce que tu veux faire.

Dernier point, pour vérifier si ton unbound tourne, peux tu vérifier si sudo netstat -nlp | grep 53 renvoie quelque chose.
Si oui merci de nous indiquer le résultat avec mise en forme incluant la commande executée et sa réponse.