Я настроил OpenDkim для работы с постфиксом, и при попытке отправить почту получаю следующую ошибку:
postfix/cleanup[11542]: 40F271A291A: milter-reject: END-OF-MESSAGE from ***[***]: 4.7.1 Service unavailable - try again later; from=<me@example.com> to=<me2@hotmail.es> proto=ESMTP helo=<[192.168.1.10]>
Я настроил opendkim на использование сокета unix, и он работает:
[chazy@mail ~]$ sudo netstat -nalp | grep dkim
unix 2 [ ACC ] STREAM LISTENING 144135 11267/opendkim /run/opendkim/opendkim.sock
unix 3 [ ] STREAM CONNECTED 147626 11267/opendkim /run/opendkim/opendkim.sock
unix 2 [ ] DGRAM 144137 11267/opendkim
Opendkim запускается самим пользователем, как это предлагается в вики Arch (а также другими рекомендациями по безопасности). Папки также принадлежат opendkim: mail.
Я использую один и тот же селектор и ключ подписи для всех доменов, это проблема?
Конфигурация постфикса следующая:
# DKIM
milter_default_action = accept
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/run/opendkim/opendkim.sock
На данный момент не установлена служба защиты от спама, только базовая конфигурация postfix / dovecot / opendkim для тестирования сервера.
Конфигурация Opendkim:
# /etc/opendkim/opendkim.conf
BaseDirectory /var/lib/opendkim
Canonicalization relaxed/simple
Domain domain1.com domain2.com
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyFile /etc/opendkim/201704.private
KeyTable refile:/etc/opendkim/KeyTable
Selector 201704
SigningTable refile:/etc/opendkim/SigningTable
Socket local:/run/opendkim/opendkim.sock
Syslog Yes
TemporaryDirectory /run/opendkim
UMask 002
UserID opendkim:mail
Конфигурация TrustedHosts:
# /etc/opendkim/TrustedHosts
# Trusted Hosts List
127.0.0.1
::1
x.x.x.x # Server IP
mail.maindomain.com
# Domains
maindomain.com
domain2.com
В моем случае проблема заключалась в том, что у файла ключа подписи был root-владелец, поэтому он делал следующее:
sudo chown opendkim:mail /etc/opendkim/selector.private
Исправлена проблема.
Если это не ваша проблема, не забудьте заглянуть в дневник для обоих! postfix и opendkim (я забыл найти opendkim, и это была ошибка):
journalctl --follow --unit postfix.service --unit opendkim.service
Попробуйте и посмотрите, работает ли удаление «* @» из файла, который вы используете в качестве таблицы подписи. Это было причиной этого для меня, хотя у меня было
SigningTable refile:<directory to signing table file>
в моем opendkim.conf.