opendkim milter не запускается на правильном сокете сервера

opendkim milter не запускается на правильном сокете сервера

Следующая ошибка помешала перезапуску opendkim

× opendkim.service - OpenDKIM Milter
     Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2023-04-22 08:00:27 UTC; 2s ago
[...]    Process: 2295 ExecStart=/usr/sbin/opendkim (code=exited, status=78)
opendkim.service: Control process exited, code=exited, status=78/CONFIG

Попытка проконсультироваться с (незашифрованный, и возможно не обновлено) документация, ничего не найдено относительно status=78.
Но очевидно, что конфигурации milter каким-то образом неверны. /etc/postfix/main.cf определяет:

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters

в то время как /etc/opendkim.confимеет

Syslog                  yes
SyslogSuccess           yes
LogWhy                  yes

Canonicalization        relaxed/simple
Mode                    sv
SubDomains              no
OversignHeaders         From

UserID                  opendkim
UMask                   007

Socket                  local:/var/spool/postfix/opendkim/opendkim.sock

#Nameservers            127.0.0.1
AutoRestart                     yes
AutoRestartRate                 10/1M
Background                      yes
DNSTimeout                      5
SignatureAlgorithm              rsa-sha256

ExternalIgnoreList      refile:/etc/opendkim/trusted.hosts
InternalHosts           refile:/etc/opendkim/trusted.hosts
KeyTable                refile:/etc/opendkim/key.table
SigningTable            refile:/etc/opendkim/signing.table

PidFile                 /var/run/opendkim/opendkim.pid
# UserID                  opendkim:opendkim

Я заметил следующее:
• изначально ссылался на конфигурацию opendkim, ExternalIgnoreList refile:/etc/opendkim/TrustedHostsтогда как существующий файл — /etc/opendkim/trusted.hosts. Это повторяется для всего блока. Весь блок был изменен на имена файлов в нижнем регистре, разделенные точками, а затем служба перезапускается.

Однако при отправке электронные письма регистрируются Postfix с помощью: warning: connect to Milter service local:opendkim/opendkim.sock: No such file or directory

cd /var/spool/postfix/opendkim
-bash: cd: /var/spool/postfix/opendkim: No such file or directory

Я также не вижу pid-файла в/var/run/opendkim/

Вероятно, есть несколько ошибок между smtpd_milters = local:opendkim/opendkim.sockконфигурацией postfix и определением opendkim Socket. Что нужно изменить?

Обновлять
warning: connect to Milter service local:opendkim/opendkim.sock: Permission deniedвсе еще находится в почтовых журналах, следовательно, этот элемент конфигурации неверен.

изменение настройки postfix/main.cfна

smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock

результаты: warning: connect to Milter service local:/var/spool/postfix/opendkim/opendkim.sock: No such file or directory. Существование /var/spool/postfix/opendkim/opendkim.sockпроверено.

решение1

Хотя это путь, по которому сокет находится в системе, это не тот путь, по которому его увидят экземпляры smtpd с chroot-окружением:

smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock

Postfix smtpd хочет путьродственникв каталог chroot, он не знает о /var/spool/postfix/пути после запуска.

smtpd_milters = unix:opendkim/opendkim.sock

Подробности вы можете найти в /usr/share/doc/postfix/MILTER_READMEи man 5 master, здесь я просто процитирую ключевую информацию, выделено мной:

Если процесс smtpd(8) или cleanup(8) выполняется в изолированной среде, интерпретируется абсолютный путьотносительно каталога очередей Postfix. Во многих системах local является синонимом unix

решение2

Частичное решение

sudo chown opendkim:postfix /var/spool/postfix/opendkim требовалось предоставить postfix разрешения на созданиеopendkim.sock

и хотя opendkim.service: Can't open PID file /run/opendkim/opendkim.pid (yet?) after start: Operation not permittedэто произошло, это было временно

Started OpenDKIM Milter.вскоре после этого последовало и /run/opendkim/opendkim.pidфактически было создано opendkim.pidпод управлением пользователя root.

Связанный контент