Вот схема, при которой я сталкиваюсь со своими проблемами:
У моего компьютера IP 10.6.2.5. Есть DNS-сервер ns.isp6.lab с IP 10.6.2.4 (я могу до него добраться).
На моем компьютере установлен Postfix + Dovecot + SpamAssassin. Я получаю электронные письма, подписанные DKIM, от домена isp6.lab. Они подписаны этим ключом домена: mail._domainkey.isp6.lab
Когда я делаю dig mail._domainkey.isp6.lab TXT
Я получаю ответ с открытым ключом RSA.
Проблема в том, что Spammassassin его не находит, вот часть заголовка полученного письма:
X-Spam-HAM-Report:
* -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP
* 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily
* valid
* 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid
Итак, я активировал журналы отладки в SpamAssassin и вот что обнаружил:
cat spamd.log | grep dkim
Tue Oct 7 16:38:50 2014 [21673] dbg: dkim: performing public key lookup and signature verification
Tue Oct 7 16:39:00 2014 [21673] dbg: dkim: DKIM, i=@isp6.lab, d=isp6.lab, s=mail, a=rsa-sha256, c=relaxed/simple, invalid, matches author domain
Tue Oct 7 16:39:00 2014 [21673] dbg: dkim: signature verification result: INVALID (PUBLIC KEY: DNS QUERY TIMEOUT FOR MAIL._DOMAINKEY.ISP6.LAB)
Я проверил свой /etc/resolv.conf
: домен isp6.lab поиск isp6.lab сервер имен 10.6.2.4
Я сейчас часами ищу по этой проблеме (кажется, это плохо документировано), я проверил, есть ли у меня все необходимые модули CPAN и т.д .; Я действительно понятия не имею, что еще я мог сделать.
Заранее спасибо за вашу помощь.
Изменить: Может быть, что-то можно сделать в модуле NET :: DNS? Я не очень понимаю, как все эти модули используются, настраиваются и взаимодействуют друг с другом.
Возможно, вы столкнулись с ошибкой, связанной с NET :: DNS и spamassassin. Это объяснено в этот блог и это Список рассылки SA. Отрывок из блога
Net :: DNS версии 0.76 изменил имя поля, содержащего набор серверов имен в объекте Net :: DNS :: Resolver: раньше оно было «сервером имен», но теперь разделено на два поля: «nameserver4» и «nameserver6».
Mail / SpamAssassin / DnsResolver.pm полагался на внутреннее имя поля объекта Net :: DNS :: Resolver для получения списка рекурсивных серверов имен по умолчанию, поэтому изменение в Net :: DNS нарушило это.
Проверьте свое репо, если они устранили проблему в более новой версии. Если нет, вы можете применить патч вручную из Вот