Ralf Hildebrandt
2010-Oct-08 13:38 UTC
[Dovecot] 2.0.5 masteruser problem with uncached users
a "masteruser" login fails:
Oct 8 15:12:54 postamt dovecot: auth: Debug:
auth(masteruser,141.42.206.38,master): Master user lookup for login:
nonworkinguser
Oct 8 15:12:54 postamt dovecot: auth: passdb(masteruser,141.42.206.38,master):
Master user logging in as nonworkinguser
Oct 8 15:12:54 postamt dovecot: auth: Debug:
cache(nonworkinguser,141.42.206.38): expired
Oct 8 15:12:54 postamt dovecot: auth: Debug: pam(nonworkinguser,141.42.206.38):
lookup service=dovecot
Oct 8 15:12:54 postamt dovecot: auth: Debug: pam(nonworkinguser,141.42.206.38):
#1/1 style=1 msg=Password:
Oct 8 15:12:56 postamt dovecot: auth: pam(nonworkinguser,141.42.206.38):
pam_authenticate() failed: Authentication failure (password mismatch?) (given
password: correct_masteruserpassword)
Oct 8 15:12:58 postamt dovecot: auth: Debug: client out:
FAIL^I48226^Iuser=nonworkinguser^Iauthz
Oct 8 15:12:58 postamt dovecot: imap-login: Disconnected (auth failed, 1
attempts): user=<nonworkinguser>, method=PLAIN, rip=141.42.206.38,
lip=141.42.206.36, mpid=0
but with the same setup, a masteruser for another user succeeded:
Oct 8 13:44:31 postamt dovecot: auth: Debug: auth(masteruser,127.0.0.1,master):
Master user lookup for login: workinguser
Oct 8 13:44:31 postamt dovecot: auth: passdb(masteruser,127.0.0.1,master):
Master user logging in as workinguser
Oct 8 13:44:31 postamt dovecot: auth: Debug: cache(workinguser,127.0.0.1): hit:
{SHA1}fJcDCzIZnqwatTFXqU/Vgf5kwlo=^Iuser=workinguser^Iuser=workinguser
Oct 8 13:44:31 postamt dovecot: auth: Debug: client out:
OK^I3685^Iuser=workinguser
Oct 8 13:44:32 postamt dovecot: auth: Debug: master out:
USER^I1^Iworkinguser^Isystem_groups_user=workinguser^Iuid=47077^Igid=100^Ihome=/home/d/w/workinguser^Imaster_user=masteruser
Oct 8 13:44:32 postamt dovecot: imap-login: Login: user=<workinguser>,
method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=28224, secured
So why does the masteruser login for an UNCACHED user fail?
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = plain login
disable_plaintext_auth = no
auth_master_user_separator = *
# fuer user*masteruser logins
passdb {
args = /usr/dovecot-2/etc/dovecot/dovecot.masteruser
driver = passwd-file
master = yes
pass = yes
}
# Authorisierung via PAM, /etc/pam.d/dovecot
auth_cache_size = 64 M
passdb {
driver = pam
args = cache_key=%u
}
# User via passwd
userdb {
driver = passwd
}
--
Ralf Hildebrandt
Gesch?ftsbereich IT | Abteilung Netzwerk
Charit? - Universit?tsmedizin Berlin
Campus Benjamin Franklin
Hindenburgdamm 30 | D-12203 Berlin
Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
ralf.hildebrandt at charite.de | http://www.charite.de
Ralf Hildebrandt
2010-Oct-11 11:41 UTC
[Dovecot] 2.0.5 masteruser problem with uncached users
* Ralf Hildebrandt <Ralf.Hildebrandt at charite.de>:> a "masteruser" login fails: > > Oct 8 15:12:54 postamt dovecot: auth: Debug: auth(masteruser,141.42.206.38,master): Master user lookup for login: nonworkinguser > Oct 8 15:12:54 postamt dovecot: auth: passdb(masteruser,141.42.206.38,master): Master user logging in as nonworkinguser > Oct 8 15:12:54 postamt dovecot: auth: Debug: cache(nonworkinguser,141.42.206.38): expired > Oct 8 15:12:54 postamt dovecot: auth: Debug: pam(nonworkinguser,141.42.206.38): lookup service=dovecot > Oct 8 15:12:54 postamt dovecot: auth: Debug: pam(nonworkinguser,141.42.206.38): #1/1 style=1 msg=Password: > Oct 8 15:12:56 postamt dovecot: auth: pam(nonworkinguser,141.42.206.38): pam_authenticate() failed: Authentication failure (password mismatch?) (given password: correct_masteruserpassword) > Oct 8 15:12:58 postamt dovecot: auth: Debug: client out: FAIL^I48226^Iuser=nonworkinguser^Iauthz > Oct 8 15:12:58 postamt dovecot: imap-login: Disconnected (auth failed, 1 attempts): user=<nonworkinguser>, method=PLAIN, rip=141.42.206.38, lip=141.42.206.36, mpid=0 > > but with the same setup, a masteruser for another user succeeded: > > Oct 8 13:44:31 postamt dovecot: auth: Debug: auth(masteruser,127.0.0.1,master): Master user lookup for login: workinguser > Oct 8 13:44:31 postamt dovecot: auth: passdb(masteruser,127.0.0.1,master): Master user logging in as workinguser > Oct 8 13:44:31 postamt dovecot: auth: Debug: cache(workinguser,127.0.0.1): hit: {SHA1}fJcDCzIZnqwatTFXqU/Vgf5kwlo=^Iuser=workinguser^Iuser=workinguser > Oct 8 13:44:31 postamt dovecot: auth: Debug: client out: OK^I3685^Iuser=workinguser > Oct 8 13:44:32 postamt dovecot: auth: Debug: master out: USER^I1^Iworkinguser^Isystem_groups_user=workinguser^Iuid=47077^Igid=100^Ihome=/home/d/w/workinguser^Imaster_user=masteruser > Oct 8 13:44:32 postamt dovecot: imap-login: Login: user=<workinguser>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=28224, secured > > So why does the masteruser login for an UNCACHED user fail?Right now I'm having a hard time migrating my users because the masteruser login fails. Anybody? -- Ralf Hildebrandt Gesch?ftsbereich IT | Abteilung Netzwerk Charit? - Universit?tsmedizin Berlin Campus Benjamin Franklin Hindenburgdamm 30 | D-12203 Berlin Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962 ralf.hildebrandt at charite.de | http://www.charite.de
Timo Sirainen
2010-Oct-14 14:46 UTC
[Dovecot] 2.0.5 masteruser problem with uncached users
On Fri, 2010-10-08 at 15:38 +0200, Ralf Hildebrandt wrote:> # fuer user*masteruser logins > passdb { > args = /usr/dovecot-2/etc/dovecot/dovecot.masteruser > driver = passwd-file > master = yes > pass = yesYou can't use pass=yes with passdb pam. From wiki: "You should also add the pass=yes setting to the master passdb if possible. It means that Dovecot verifies that the login user really exists before allowing the master user to log in. Without the setting if a nonexistent login username is given, depending on the configuration, it could either return an internal login error (the userdb lookup failed) or create a whole new user (with eg. static userdb). pass=yes doesn't work with PAM or LDAP with auth_bind=yes, because both of them require knowing the user's password." But .. yeah, maybe a fallback should be to do a userdb lookup instead. Or change it to a pass=yes|no|userdb setting.