O postfix não pode se conectar ao servidor MySQL para autenticação

1

Eu tenho um servidor de e-mail com Postfix, Dovecot, saslauthd e um armazenamento MySQL e backend de autenticação. Eu posso enviar e-mails muito bem, no entanto receber e-mails (do Outlook, neste caso) falha com mensagens em /var/log/mysql/mysql.log :

O log do MySQL mostra esses erros:

53 Connect   mail@localhost on mail
53 Connect   Access denied for user 'mail'@'localhost' (using password: YES)
54 Connect   mail@localhost on mail
54 Connect   Access denied for user 'mail'@'localhost' (using password: YES)
55 Connect   mail@localhost on mail
55 Connect   Access denied for user 'mail'@'localhost' (using password: YES)
56 Connect   mail@localhost on mail
56 Connect   Access denied for user 'mail'@'localhost' (using password: YES)

Parece que não consigo fazer login no servidor MySQL, no entanto , quando faço

mysql -u mail -p -h localhost

Eu consigo logar fine . A senha é conhecida como correta em ambos os casos.

Tenho a sensação de que tudo isso é causado pelo Postfix (e, subseqüentemente, pelo SMTPD?) sendo executado em uma chroot jail em /var/spool/postfix . Eu tentei desativar o chroot e montar mysql.sock em uma pasta no chroot Postfic, mas nada muda.

Eu também tentei alterar instâncias de 127.0.0.1 para localhost e vice-versa sem sucesso. O Google foi minado pelas minhas tentativas de encontrar uma solução. Talvez eu esteja procurando a coisa errada.

O que eu preciso fazer para permitir que o Postfix acesse um banco de dados MySQL em execução no mesmo servidor? Eu quero usar o MySQL para outras coisas como PHP, então uma solução exclusiva do Postfix não é realmente uma opção. Isso tem me incomodado por uns bons 3 dias agora e eu tentei todas as soluções por aí.

Meu /etc/postfix/sasl/smtpd.conf é assim:

pwcheck_method: auxprop
mech_list: PLAIN LOGIN
log_level: 7
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: localhost
sql_user: mail
sql_passwd: [hidden]
sql_database: mail
sql_select: select password from mailbox where username='%u@%r' and active = 1

Não tenho certeza de quais outros arquivos postar, então, por favor, comente e atualizarei de acordo. Estou executando o Ubuntu Server 12.10 32 bit.

    
por Bojangles 28.02.2013 / 17:04

2 respostas

0

Este foi um erro totalmente estúpido da minha parte. Acontece que no arquivo de configuração /etc/postfix/sasl/smtpd.conf , havia um espaço após o sql_passwd e outros campos, o que significa que a autenticação falhou.

    
por 28.02.2013 / 23:48
0

Eu tinha o mesmo nome de usuário / senha correto, mas no meu caso, eu tinha essa consulta:

query = select 1 as found from users where email = '%u@%d' and enabled = true LIMIT 1;

O problema foi o final ; .

Acabei de remover e funcionou

query = select 1 as found from users where email = '%u@%d' and enabled = true LIMIT 1

A mensagem de erro pode ser alterada para algo mais útil.

    
por 22.12.2017 / 18:49