Я пытаюсь настроить сервер, используя postfix, dovecot, amavis и opendkim для подписи.
OpenDKIM не запускается, вот вывод journalctl -xe
, после остановки и запуска opendkim:
Jul 21 21:54:17 mail systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
-- Subject: A start job for unit opendkim.service has begun execution
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit opendkim.service has begun execution.
--
-- The job identifier is 54385.
Jul 21 21:54:17 mail opendkim[108677]: opendkim: milter socket must be specified
Jul 21 21:54:17 mail systemd[1]: opendkim.service: Control process exited, code=exited, status=78/CONFIG
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit opendkim.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 78.
Jul 21 21:54:17 mail systemd[1]: opendkim.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit opendkim.service has entered the 'failed' state with result 'exit-code'.
Моя конфигурация OpenDKIM (/etc/opendkim.conf) выглядит так:
Syslog yes
LogResults yes
LogWhy yes
SyslogSuccess yes
UMask 002
Canonicalization relaxed/relaxed
# Only sign, don't verify (Amavis takes care of the verification)
Mode s
KeyTable /etc/opendkim/keytable
SigningTable refile:/etc/opendkim/signingtable
Как вы могли видеть в конфигурации, я хочу, чтобы OpenDKIM только подписывал, а не проверял.
Как говорится в ошибке, вы должны указать сокет. Обязательный параметр конфигурации можно найти на opendkim.conf документация:
Socket
(строка)Задает сокет, который должен быть установлен фильтром для получения соединений отsendmail (8)для предоставления услуг.Socketspecбывает в одной из двух форм:
local:path
, Который создает сокет домена UNIX по указанному пути, илиinet:port[@host]
илиinet6:port[@host]
который создает сокет TCP на указанномпорти в указанном семействе протоколов.Еслихозяинне указывается как имя хоста или IP-адрес, сокет будет прослушивать все интерфейсы. Буквальный IP-адрес должен быть заключен в квадратные скобки. Эта опция обязательна либо в файле конфигурации, либо в командной строке.