Я пытаюсь установить OpenDKIM на своем почтовом сервере под управлением Debian и Postfix. Это конфигурация, которую я сделал:
KeyTable:
mail._domainkey.domain1.com domain1.com:mail:/etc/opendkim/keys/domain1.com/mail.private
mail._domainkey.domain2.com domain2.com:mail:/etc/opendkim/keys/domain2.com/mail.private
SigningTable:
*.domain1.com mail._domainkey.domain1.com
*.domain2.com mail._domainkey.domain2.com
TrustedHosts:
127.0.0.1
::1
localhost
Мой opendkim.conf
читает:
# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.
# Log to syslog
Syslog yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask 002
LogWhy yes
OversignHeaders From
TrustAnchorFile /usr/share/dns/root.key
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
Наконец, я подключил его к Postfix через сокет milter:
Постфикс main.cf:
# Milters
smtpd_milters =
unix:/opendkim/opendkim.sock,
unix:/clamav/clamav-milter.ctl,
unix:/spamass/spamass.sock
non_smtpd_milters = unix:/opendkim/opendkim.sock
В этом текущем состоянии OpenDKIM правильно проверяет подписи входящей почты, но по какой-то причине не подписывает исходящую почту. Это авторизовано mail.log
при попытке отправить сообщение:
Nov 8 16:35:02 illium opendkim[30142]: 826DF501F39: %clienthostname% %clientip% not internal
Nov 8 16:35:02 illium opendkim[30142]: 826DF501F39: not authenticated
Nov 8 16:35:02 illium opendkim[30142]: 826DF501F39: no signature data
Я верю not authenticated
часть неверна, потому что почта отправляется от клиента в Postfix с использованием аутентифицированного SMTP.
Проблема была вызвана двумя причинами:
В отличие от комментариев в opendkim.conf
Запрос, mode = sv
является не по умолчанию. Пришлось установить явно.
Я сделал ошибку в своей SigningTable: *.domain1.com
должно быть *@domain1.com
.
После исправления этих двух точек теперь он работает правильно.