Como configurar o socket para o opendkim no Debian Testing / Stretch

6

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.

    
por Pharaoh 15.03.2017 / 12:00

3 respostas

5

Você está configurando corretamente, mas este é um bug aberto com o Debian Stretch, onde ele ignora a configuração:

Veja: link

    
por 30.06.2017 / 04:11
2

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)

    
por 15.05.2017 / 13:35
0

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.

    
por 28.03.2017 / 09:12