Postfix - Opendkim - Não é possível conectar-se ao soquete local

4

Estou sendo negado erros quando o postfix tenta se conectar ao soquete unix para opendkim, erro real:

Sep 24 15:41:43 service-a-4 postfix/cleanup[17414]: warning: connect to Milter service unix:var/run/opendkim/opendkim.sock: Permission denied

De acordo com os documentos postfix , o postfix é executado no "modo chroot" por padrão, portanto o postfix é bloqueado para / var / spool / postfix /, e de acordo com os documentos postfix , se estiverem em "modo chroot", todos os milter As referências (socket) são relativas (para / var / spool / postfix).

Então, minhas configurações parecem:

# /etc/opendkim.conf
Socket local:/var/spool/postfix/var/run/opendkim/opendkim.sock

# /etc/postfix/main.cf
smtpd_milters = unix:/var/run/opendkim/opendkim.sock

Agora, quando tento enviar um e-mail de teste, recebo o erro de permissão negada, então testei alguns testes de permissão:

# Correctly lists the socket file
sudo su -s /bin/bash postfix -c "ls /var/spool/postfix/var/run/opendkim/opendkim.sock"

Mas quando tento me conectar como postfix, nada acontece:

# Does not work
sudo su -s /bin/bash postfix -c "nc -U -D /var/spool/postfix/var/run/opendkim/opendkim.sock"

# Does work (as root)
nc -U -D /var/spool/postfix/var/run/opendkim/opendkim.sock

O SELinux está temporariamente desativado (permissivo) enquanto depura este sitch. E eu estou reiniciando ambos os processos (opendkim e postfix) após cada mudança de configuração.

O que mais eu sinto falta?

Versões:

CentOS 6.5
Postfix v2.6.6
Opendkim v2.9
    
por Mike Purcell 24.09.2015 / 17:54

3 respostas

4

Testei no meu CentOS6 que o postfix não parece realmente "chrooted".
Minha configuração:

# /etc/opendkim.conf
Socket local:/var/run/opendkim/opendkim.sock

# /etc/postfix/main.cf
smtpd_milters = unix:/var/run/opendkim/opendkim.sock

Isso produzirá: connect to Milter service unix:/var/run/opendkim/opendkim.sock: Permission denied .
No entanto, o socket umask é 002, resultar em srwxrwxr-x. opendkim:opendkim opendkim.sock .

Mudar o umask para 000 resolve o problema. Ainda assim, é melhor ter o usuário do switch opendkim: group than open to the world.

Ambiente:

centos 6.5 2.6.32-573.7.1.el6.x86_64
postfix 2.6.6-6.el6_5 @updates
opendkim 2.10.3-1.el6 @epel
    
por 27.09.2015 / 13:41
1

IIRC, postfix em centos 6 não executa chrooted em sua configuração padrão. Quando eu configurei o opendkim da epel ele veio com essa configuração:

Socket                  inet:8891@localhost

então ativá-lo no postfix foi apenas uma questão de adicionar isso ao main.cf:

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2

pt-se a reinicialização do opendkim en postfix após configurar corretamente as chaves, TrustedHosts, SigningTable, Keytable e publicando os registros txt no dns.

O, e eu esqueci: o postfix também deve ser membro do grupo opendkim.

    
por 25.09.2015 / 14:31
1

Para aqueles que encontrarem isso e o problema não for resolvido com as respostas acima, meu problema é que as permissões de execução do grupo estão ausentes na pasta do soquete opendkim /var/run/opendkim/

Eu adicionei um cron @reboot para garantir que as permissões do grupo fossem definidas @reboot root chmod g+x /var/run/opendkim/

Corrige / corrige o seguinte aviso de retorno após uma reinicialização.

warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: Permission denied

Uma conexão tcp não foi uma boa solução para mim, pois eu assino 100k + e-mails por hora.

    
por 26.07.2016 / 18:47