Você está configurando corretamente, mas este é um bug aberto com o Debian Stretch, onde ele ignora a configuração:
Veja: link
Isso tudo está no teste Debian (= Esticar a partir de agora).
Eu estou tentando configurar opendkim
, mas não vai usar o soquete que eu quero.
De acordo com man opendkim.conf
, o Socket
pode ser configurado em /etc/opendkim.conf
.
Eu também tentei criar o arquivo /etc/default/opendkim
como eu o vejo na minha caixa Jessie, mas isso também não funcionou.
Assim, tentei inserir a seguinte linha em /etc/opendkim.conf
:
Socket inet:39172@localhost
Agora, de acordo com /etc/init.d/opendkim
, este arquivo é lido:
if [ -f /etc/opendkim.conf ]; then
CONFIG_SOCKET='awk '$1 == "Socket" { print $2 }' /etc/opendkim.conf'
fi
Para mim, parece bom até agora. Mas o trecho a seguir, que segue imediatamente, parece despejar as informações que foram lidas agora:
# This can be set via Socket option in config file, so it's not required
if [ -n "$SOCKET" -a -z "$CONFIG_SOCKET" ]; then
DAEMON_OPTS="-p $SOCKET $DAEMON_OPTS"
fi
DAEMON_OPTS="-x /etc/opendkim.conf -u $USER -P $PIDFILE $DAEMON_OPTS"
Eu realmente não entendo o que isso deve fazer. $CONFIG_SOCKET
nunca é realmente usado para iniciar opendkim
, é? Por que está sendo lido do arquivo de configuração, em primeiro lugar, então?
Percebi que há também um arquivo /etc/systemd/system/multi-user.target.wants/opendkim
que parece não carregar nenhuma configuração.
Se for de alguma importância: Para reiniciar o opendkim
, eu digito service opendkim restart
.
Minha verificação para ver se o soquete foi lido é:
telnet localhost 39172
diz Connection refused
e /var/log/syslog
diz:
opendkim[8343]: OpenDKIM Filter v2.11.0 starting (args: -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock)
Minha pergunta é: Como devo estar configurando o socket para o opendkim no Debian Testing / Stretch?
O que provavelmente também resolve o mistério de como o script acima deve funcionar.
Você está configurando corretamente, mas este é um bug aberto com o Debian Stretch, onde ele ignora a configuração:
Veja: link
Editar uma unidade de sistema não é uma prática recomendada, é claro. Aqui está como devemos ir:
sudo systemctl edit opendkim
e insira:
[Service]
ExecStart=
ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/spool/postfix/opendkim/opendkim.sock
(note o duplo ExecStart - este não é um erro de digitação)
Eu resolvi isso editando o arquivo mencionado /etc/systemd/system/multi-user.target.wants/opendkim
. Não sei se essa é a melhor prática, mas como a configuração parece estar codificada lá, não vi outra escolha.
Conteúdo do arquivo (estou usando um soquete unix ao invés da porta aleatória 39172 agora):
[...]
ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/spool/postfix/var/run/opendkim/opendkim.sock
[...]
O diretório /var/spool/postfix/var/run/opendkim
precisou ser criado e recebeu a propriedade de opendkim:opendkim
.
Depois de alterar o arquivo, executei systemctl daemon-reload
e service opendkim restart
e o novo soquete foi reconhecido. Então mudei as permissões ( Umask 002
in /etc/opendkim.conf
), e o postfix agora pode acessar o milter.