O seguinte erro impediu o reinício 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 a documentação ( não criptografada e possivelmente não atualizada), nada foi encontrado sobre 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
Considerando que /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
Percebi 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 os nomes de arquivo separados por pontos em minúsculas e o serviço é reiniciado.
No entanto, os e-mails, ao serem 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
Eu 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?
A atualização
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.
Embora esse seja o caminho em que o soquete está no sistema, esse não é o caminho em que as instâncias smtpd com chroot o verão:
smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock
O postfix smtpd deseja um caminho relativo ao diretório chroot, ele não conhece 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
eman 5 master
, apenas citando as principais informações aqui, ênfase minha:solução parcial
sudo chown opendkim:postfix /var/spool/postfix/opendkim
foi obrigado a 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árioStarted OpenDKIM Milter.
seguido logo em seguida e/run/opendkim/opendkim.pid
foi efetivamente criadoopendkim.pid
como propriedade de root.