O PAM pode ser usado com Postfix e Dovecot SASL?

O PAM pode ser usado com Postfix e Dovecot SASL?

eu configureiPós-fixousarPombal SASLcomPAMe usuários Unix, e Dovecot LDA (LMTP) para armazenamento de caixa de correio local. Após alguns testes, descobriu-se que o e-mail recebido foi recusado pelo motivo:

Erro: falha na pesquisa de passdb para [usuário]: passdbs configurados não suportam pesquisas de credenciais

Isso é problemático e preocupante - optei pela autenticação baseada em PAM porque todas as fontes que encontrei sugeriram que é a maneira mais simples e confiável. É difícil para mim solucionar o que está errado neste momento - não tenho certeza se é realmente um problema com o PAM ou se algo está errado com minha configuração.

Histórico

O doveadmteste de pesquisa:

$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

Log de depuração do Dovecot após o teste de pesquisa:

$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS    1       [user]  service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL   1       reason=Configured passdbs don't support credentials lookups

Configuração relevante

O /etc/dovecot/conf.d/10-auth.confarquivo:

auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext

O /etc/dovecot/conf.d/auth-system.conf.extarquivo:

passdb {
    driver = pam 
    args = session=yes failure_show_msg=yes dovecot
}
userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%n
}

O /etc/pam.d/dovecotarquivo é o padrão que veio com o pacote Dovecot do Rocky Linux (que é igual ao RHEL e é igual ao Fedora):

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

Porém, também tentei a configuração sugerida pelo oficialDocumentação do Dovecot PAMe não produziu nenhum resultado diferente. Estou confiante no resto da minha configuração, pois passei um tempo considerável estudando as opções, mas ainda mal entendo a configuração do PAM...

Todos os logs apontam para o problema com o próprio Dovecot SASL, não com a configuração do Postfix ou Dovecot. Qualquer sugestão será muito bem-vinda.

Responder1

Não tenho ideia se esta é a solução adequada para o problema (agora voltando e lendocomentário de anxna minha postagem original me faz pensar se é), mas consegui fazer a pesquisa e a autenticação funcionarem adicionando uma segunda passdbentrada na configuração do Dovecot.

Na configuração Dovecot, precedi oBanco de dados de senha PAMentrada com umsenhabanco de dados de senhaentrada:

# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
         # Passwd can be used both as a passdb and a userdb
    driver = passwd
}
passdb {
    driver = pam
    args = dovecot
}

Isso faz com que as pesquisas do usuário sejam doveadm auth lookup [user]bem-sucedidas. No entanto, osenhabanco de dados não podeautenticarusuários, já que as senhas não são mais armazenadas no /etc/passwdarquivo em sistemas Unix. Quando isso acontece, a pesquisa continua com o banco de dados de senhas do PAM, que autentica corretamente o usuário. Isso pode ser testado com o doveadm auth test [user]comando.


Adicionei isso como uma resposta aceita, porque a solução/solução alternativa funcionou atualmente para mim. Se alguém tiver alguma sugestão ou souber como isso poderia ser resolvido de uma maneira melhor, ficarei feliz em aceitá-la. Com apenas o banco de dados PAM sendo a configuração padrão emLinux rochoso(praticamente RHEL), fico surpreso que não funcionaria imediatamente.

informação relacionada