postfix / smtpd: aviso: conecte-se ao serviço Milter unix: /var/run/opendkim/opendkim.sock: esse arquivo ou diretório não existe

36

Estou com problemas com o postfix no debian após atualizar do squeeze para o wheezy. O Postfix foi configurado para assinar mensagens usando o dkim-filter. Antes da atualização, tudo estava funcionando perfeitamente, agora falha na conexão com o serviço (soquetes tcp ou unix). Eu pensei que talvez fosse por causa do switch debian para o opendkim, então eu removi o dkim-filter e instalei o opendkim - o mesmo problema. Eu até tentei configurar a conexão de soquete de arquivo unix em vez da opção tcp - mesmo problema:

postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

ou (com tcp / ip):

postfix/cleanup: warning: connect to Milter service inet:localhost:8891: Connection refused

Eu verifiquei duas vezes - o arquivo de soquete existe e o serviço estava escutando na porta 8891.

Oque posso fazer para consertar isso?

Roger
fonte

Respostas:

58
  1. Verifique se o opendkim está em execução. (Presumo que seja como você viu o arquivo de soquete.)
  2. Você configurou o opendkim? O arquivo de configuração é /etc/opendkim.conf.

    Você precisa atualizar o arquivo para corresponder ao seu site / domínio e ao caminho dkim.key .

  3. Adicionar postfix ao grupo opendkim

    Se a permissão opendkim.sock for a seguinte

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 de maio 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 2 de maio 14:56 opendkim.sock
    

    Se não, certifique- UMaskse definida para 0002no /etc/opendkim.conf.

    Então faça o seguinte

    sudo adduser postfix opendkim
  4. Postfix em execução no chroot

    Modifique /etc/default/opendkim, altere a opção SOCKET para postfixar a localização do chroot

    SOCKET = "local: /var/spool/postfix/var/run/opendkim/opendkim.sock"

    Você precisará criar um diretório /var/spool/postfix/var/run/opendkime alterar sua permissão

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    opendkim do sudo chown: opendkim / var / spool / postfix / var / run / opendkim
    
  5. Reinicie o opendkim

    serviço sudo opendkim restart
    
John Siu
fonte
4
Encontrei um problema semelhante causado por permissões excessivamente restritivas no diretório opendkim.
Darrell Duane
11
Tenho certeza de que o opendkim estava trabalhando antes, mas notei que ele não estava funcionando após a atualização do Ubuntu 15.04 para 15.10. A atualização do caminho do soquete /etc/default/opendkimpara o mesmo que eu já havia definido na /etc/opendkim.confcorreção. Obrigado!
Haprog 28/02
meu problema é que estou executando o postfix no chroot e estou usando o soquete unix. Se você ver No such file or directoryque postfix média não consegue encontrar o caminho, mas parecia para a tomada dentro de / var / spool / postfix / var / run / opendkim /, não / var / run / opendkim
HVNSweeting
@HVNSweeting Isso não é coberto em (4)?
John Siu
é por isso que comento e votei em vez de criar uma nova resposta. A pergunta contém muitos problemas, porque se o opendkim estiver configurado corretamente, o soquete TCP deverá funcionar. Obrigado
HVNSweeting
11

Resumo rápido que me ajudou a corrigir esse aviso no Ubuntu 16.04 LTS: Postfix versão 3.1.0-3ubuntu0.2 Opendkim versão 2.10.3-3build1

  • (Suponho que o Postfix e o Opendkim já estejam instalados, integrados um ao outro e o único aviso que você recebe é 'conectar-se ao serviço Milter local: /var/spool/postfix/opendkim/opendkim.sock: não existe esse arquivo ou diretório')

  • Adicione o postfix do usuário ao grupo opendkim (pule se já estiver pronto)

sudo adduser postfix opendkim

  • Crie o diretório e defina o proprietário (pule, se já estiver pronto)

sudo mkdir -p / var / spool / postfix / var / run / opendkim

opendkim do sudo chown: opendkim / var / spool / postfix / var / run / opendkim

  • Verifique as permissões:

ls -l / var / spool / postfix / var / run / opendkim

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Edite os arquivos de configuração do opendkim: /etc/opendkim.conf, adicione linha

Local do soquete: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / defaults / opendkim, adicione

SOCKET = "local: /var/spool/postfix/var/run/opendkim/opendkim.sock"

  • Edite a configuração do postfix: /etc/postfix/main.cf
# Milter configuration
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
milter_default_action = accept
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock
  • Reiniciar serviços (ou reiniciar)

systemctl restart opendkim

systemctl restart postfix

É isso aí. Não sei por que é necessário escrever

smtpd_milters = unix: var / run / opendkim / opendkim.sock

ao invés de

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

. Se alguém souber, explicações são bem-vindas.

Fedorov7890
fonte
2
Se o postfix for executado com o CHROOT, os caminhos de configuração serão relativos a isso. Você terminaria com o postfix tentando resolver # /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
escurecer
5

Eu estava enfrentando o mesmo problema no estiramento Debian, que acabou sendo causado por um arquivo de serviço systemd quebrado para o opendkim. Veja esta resposta para uma solução: https://serverfault.com/a/847442/84962

Essa correção se resume a:

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart
Serrano
fonte
11
Eu tenho o sistema Ubuntu, onde apenas este conselho ajudou, enquanto todo o resto não funcionou.
silpol
Eu corro 16,04 e /lib/opendkim/opendkim.service.generate não existe
Laurent
Funciona bem no Ubuntu 18.04. Obrigado.
Duque
Isso resolveu meu problema no Debian 9.
jchook 10/03
2
smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock

usermod -G opendkim,opendmarc
Олег Гинзбург
fonte
5
Essa seria uma resposta muito melhor se incluísse alguma explicação de Como e Por que isso responde à pergunta.
Stephen Rauch
3
Bem-vindo ao Unix e Linux! Embora esse trecho de código possa resolver a questão, incluir uma explicação realmente ajuda a melhorar a qualidade da sua postagem. Lembre-se de que você está respondendo à pergunta dos leitores no futuro, não apenas à pessoa que está perguntando agora! Por favor edite sua resposta para adicionar explicação, e dar uma indicação do que limitações e premissas se aplicam.
Toby Speight
1

Uma alternativa seria desativar o chroot, isso tem implicações de segurança:

vi /etc/postfix/master.cf

# service type  private unpriv  chroot  wakeup  maxproc command + args
cleanup   unix  n       -       n       -       0       cleanup

Os avisos dizem postfix/cleanupque você pode desativar o chroot para este serviço.

Plup
fonte
0

conectar-se ao serviço Milter unix: /clamav/clamav-milter.ctl: permissão negada

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 Apr 4 17:59 clamav-milter.ctl

clamav-milter.conf

usuário clamav MilterSocketGroup postfix MilterSocketMode 660

permissões de usuário para o ordenador

postfix de chown: postfix /var/spool/postfix/clamav/clamav-milter.ctl

Funciona para mim

Gjerich
fonte
0

Eu tive um problema porque o OpenDKIM e o Postfix funcionam com os direitos de diferentes usuários e escrevem e leem do mesmo soquete.

Adicionei usuário postfix ao grupo opendkim:

sudo usermod -a -G opendkim postfix
Alex Gvar
fonte