
O seguinte erro impediu a reinicialização do 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
Tentando consultar o (não criptografado, e possivelmente não atualizado), nada foi encontrado em relação ao status=78
.
Mas claramente as configurações do milter estão incorretas de alguma forma. /etc/postfix/main.cf
define:
# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
enquanto /etc/opendkim.conf
tem
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
Notei o seguinte:
• a configuração do opendkim originalmente referenciada ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
enquanto o arquivo existente é /etc/opendkim/trusted.hosts
. Isso se repete para todo o bloco. Todo o bloco foi alterado para nomes de arquivos separados por pontos em letras minúsculas e o serviço foi reiniciado.
No entanto, os e-mails, enquanto são enviados, são registrados pelo postfix com:
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
Também não vejo nenhum arquivo pid em/var/run/opendkim/
Provavelmente há algumas coisas erradas aqui entre a smtpd_milters = local:opendkim/opendkim.sock
configuração do postfix e a Socket
definição do opendkim. O que precisa ser mudado?
Atualizar
warning: connect to Milter service local:opendkim/opendkim.sock: Permission denied
ainda está nos logs de correio, portanto esse elemento de configuração está errado.
alterando a configuração postfix/main.cf
para
smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock
resulta em:
warning: connect to Milter service local:/var/spool/postfix/opendkim/opendkim.sock: No such file or directory
. A existência de /var/spool/postfix/opendkim/opendkim.sock
é verificada.
Responder1
Embora esse seja o caminho onde o soquete está no sistema, esse não é o caminho que as instâncias smtpd com chroot verão em:
smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock
Postfix smtpd quer um caminhorelativopara o diretório chroot, ele não sabe o /var/spool/postfix/
caminho após o início.
smtpd_milters = unix:opendkim/opendkim.sock
Você pode encontrar os detalhes em /usr/share/doc/postfix/MILTER_README
e man 5 master
, apenas citando as informações principais aqui, com ênfase nas minhas:
Se o processo smtpd(8) ou cleanup(8) for executado em chroot, um nome de caminho absoluto será interpretadorelativo ao diretório de filas do Postfix. Em muitos sistemas, local é sinônimo de unix
Responder2
Solução parcial
sudo chown opendkim:postfix /var/spool/postfix/opendkim
foi necessário dar ao postfix as permissões para criaropendkim.sock
e enquanto opendkim.service: Can't open PID file /run/opendkim/opendkim.pid (yet?) after start: Operation not permitted
ocorreu foi temporário
Started OpenDKIM Milter.
seguiu logo em seguida e /run/opendkim/opendkim.pid
foi efetivamente criado como opendkim.pid
propriedade do root.