Puncte:0

Can PAM be used with Postfix and Dovecot SASL?

drapel ae

I have set up Postfix to use Dovecot SASL with PAM and Unix users, and Dovecot LDA (LMTP) for local mailbox storage. After some testing, turns out incoming mail gets declined with the reason:

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

That's both troublesome and troubling - I opted for PAM-based authentication because all sources I found suggested it's the simplest and most reliable way. It's hard for me to troubleshoot what's going wrong at this moment - I'm not sure if it's truly an issue with PAM or if something's wrong with my configuration.

Logs

The doveadm lookup test:

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

Dovecot debug log after the lookup test:

$ 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

Relevant configuration

The /etc/dovecot/conf.d/10-auth.conf file:

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

The /etc/dovecot/conf.d/auth-system.conf.ext file:

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

The /etc/pam.d/dovecot file is the default that came with the Rocky Linux (that equals RHEL and is the same as Fedora) Dovecot package:

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

However, I also tried the configuration as suggested by the official Dovecot PAM documentation and it didn't yield any different results. I am confident in the rest of my configuration, as I spent considerable time studying the options, but I still barely understand the PAM config...

All logs point at the issue being with the Dovecot SASL itself, not with the Postfix or Dovecot configuration. Any suggestions would be much appreciated.

anx avatar
drapel fr
anx
Driverul PAM passdb vă oferă doar un rezultat de *reușit/eșec* de autentificare binar, iar userdb nu vă ajută să identificați care utilizatori există. Ce *doriți* să se întâmple când vine un mesaj pentru `[email protected]`?
Marty Cagas avatar
drapel ae
De preferință, răspunsul _"Poștă nelivrabilă returnată expeditorului"_, dar dacă am înțeles corect, aceasta este o sarcină pentru Postfix, nu pentru Dovecot. Dovecot trebuie doar să valideze dacă acest utilizator există pe mașină prin SASL și să returneze răspunsul la Postfix. Autentificarea nu are loc în această etapă - dar trebuie să funcționeze atunci când utilizatorii încearcă să-și citească cutiile poștale prin IMAP/POP3.
anx avatar
drapel fr
anx
(Pentru a fi precis, chiar mai bine: postfix atunci când este instruit să `reject_unverified_recipient` învață prin LMTP că Dovecot nu a putut găsi acel utilizator și spune acest lucru pe conexiunea de intrare. Responsabilitatea generării mesajului de retur revine apoi transmisului expeditorului, ceea ce înseamnă că configurația dvs. nu trebuie să genereze backscatter.)
Puncte:0
drapel ae

Habar n-am dacă aceasta este soluția potrivită pentru problemă (acum revin și citesc comentariul lui anx pe postarea mea originală mă face să mă întreb dacă este), dar am reușit să lucrez atât căutarea, cât și autentificarea adăugând un al doilea passdb intrarea în configurația Porumbelului.

În configurația Dovecot, am precedat Baza de date de parole PAM intrare cu a passwd baza de date cu parole intrare:

# de exemplu. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # Aceasta nu este o greșeală de tipar
         # Passwd poate fi folosit atât ca passdb, cât și ca userdb
    driver = passwd
}
passdb {
    driver = pam
    args = dovecot
}

Acest lucru face căutări de utilizatori cu căutare de autentificare doveadm [utilizator] a reusi.Însă passwd baza de date nu poate autentifica utilizatorii, deoarece parolele nu mai sunt stocate în /etc/passwd fișier pe sisteme Unix. Când se întâmplă acest lucru, căutarea continuă cu baza de date de parole PAM, care autentifică corect utilizatorul. Acest lucru poate fi testat cu doveadm auth test [utilizator] comanda.


Am adăugat asta ca răspuns acceptat, deoarece soluția/soluția de soluție a funcționat în prezent pentru mine. Dacă cineva are sugestii sau știe cum ar putea fi rezolvat într-un mod mai bun, sunt bucuros să o accept. Cu doar baza de date PAM fiind configurația implicită activată Rocky Linux (practic RHEL), mă face surprins că nu ar funcționa din cutie.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.