Configuração do Dovecot (com Postfix) tem conexão recusada ao acessar auth-userdb

5

... isso foi difícil de descrever em um título. Esta descrição deve destacar o problema.

Contexto

  • Eu estava seguindo o tutorial do Workaround.org para instalar uma pilha de postfix, dovecot (mais alguns plug-ins adicionais).
  • Executando em uma máquina Ubuntu 12.04 (VM com Vagrant / Chef)
  • Dovecot v2.0.19
  • Postfix v2.9.6

Conf. Arquivos

10-mestre

....
service auth {    
unix_listener auth-userdb {
  mode = 0644
  user = vmail
  group = vmail
}
...

Editar - informações de configuração adicionais (algumas sobreposições)

service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone's userdb lookups.
unix_listener auth-userdb {
  mode = 0644
  user = vmail
  group = vmail
}

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0660
  user = postfix
  group = postfix
}

# Auth process is run as this user.
#user = $default_internal_user
user = dovecot
}

auth-sql

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/vmail/%d/%n allow_all_users=yes
}

ls -la / var / run / dovecot / auth-userdb

srw-r--r-- 1 vmail vmail 0 Jun 20 13:04 /var/run/dovecot/auth-userdb

Postfix master.cf

dovecot    unix  -      n       n       -       -       pipe
   flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -d ${recipient}

Problema

Eu acompanhei o tutorial muito de perto, mudando apenas algumas pequenas coisas. Cheguei na "Entrega de email de teste" e executei echo test | mail [email protected]

O e-mail não chegou, pois find /var/vmail não mostrou nada.

No syslog do servidor, os seguintes erros estão presentes:

postfix/pickup[16842]: 019023A06AB: uid=1000 from=<vagrant>
postfix/cleanup[19542]: 019023A06AB: message-id=   <20130620140358.019023A06AB@mail-server-berkshelf>
postfix/qmgr[16843]: 019023A06AB: from=<[email protected]>, size=382, nrcpt=1 (queue active)
dovecot: lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules
dovecot: lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so
dovecot: lda: Error: userdb lookup: connect(/var/run/dovecot/auth-userdb) failed: Connection refused
dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
postfix/pipe[19545]: 019023A06AB: to=<[email protected]>, relay=dovecot, delay=1.2, delays=0.04/0.01/0/1.1, dsn=4.3.0, status=deferred (temporary failure)

O erro "conexão recusada" deve ser o erro que estou atacando, certo? Eu procurei em muitos lugares para entender o que está acontecendo aqui, mas não encontrei nada útil.

Alguém pode fornecer leads ou insights? Uma solução seria ótima, mas estou feliz em aceitar algumas novas ideias para experimentar.

    
por Adam 20.06.2013 / 16:07

1 resposta

2

O erro de conexão recusada é de fato o problema. A conexão recusada em soquetes unix não é muito intuitiva, mas indica que não há nada escutando no soquete (normalmente, o processo está inativo ou o arquivo fornecido como o endereço não era um soquete). Isso nunca deve ser um problema de permissões, a menos que o dovecot não consiga abrir o soquete para ouvir devido a permissões.

Tente parar o dovecot e o postfix, removendo o arquivo de soquete em /var/run/dovecot/auth-userdb e iniciando o postfix e o dovecot novamente (assegurando que o usuário dovecot esteja executando como tem permissões em /var/run/dovecot ). Geralmente isso consertará esse tipo de problema.

O Netstat também exibirá os soquetes do domínio unix. Verifique sua saída (use netstat -nvlap | less e procure pelo caminho ou pelo pombal) para garantir que o dovecot esteja escutando.

    
por 24.06.2013 / 10:22