[Dovecot] Dovecot 1.2.12+Postfix+Active Directory: virtual domain name dropped.

Ran Talbott embed_bucket at cox.net
Fri Dec 24 01:53:32 EET 2010


I have a Windoze-only client who wants to move their mail hosting from 
godaddy.com hosting to an in-house system.  I'm pitching Linux as an 
alternative to Exchange, and trying to set up a demonstration system for 
them.  While a long-time Linux user, my server admin experience has been in 
setting up front-ends (mostly Apache-based web interfaces) for the embedded 
systems I specialize in.

The goal is to have an IMAP server where the users don't have Linux IDs,  and 
only need to manually login to the Active Directory domain controller.

The client has multiple Internet domains,  but all users are in the same 
Active Directory realm internally.

With the help of the how-tos at linuxmail.info,  I got the system to the point 
of being able to authenticate logins for both IMAP and SMTP (usng 
dovecot-SASL).  I tried using PAM first,  but it didn't work:  running kinit 
from the command line takes over 90 seconds to get a ticket,  and Dovecot 
timed out after 60 on every login attempt.  So I switched to LDAP.   Note: I 
still don't understand why, but authentication through Active Directory 
didn't work until I changed the querying distinguished name from 
the "cn=,dc=,dc=" format to "user at xxxx.local" format.

I have Postfix using dovecot-deliver as the LDA, but I hit a snag: deliver is 
not putting the domain name in the path to the maildir.

I have the active directory query set as:
  user_filter = (&(objectClass=user)(samaccountname=%n))
  user_attrs = =home=/var/mailstore/%d/%n. =uid=501, =gid=501, \
             =mail=maildir:/var/mailstore/%d/%n/Maildir/

When I send mail to testing.testing at xxxx.xxx (real domain obscured),  I see 
this in mail.log

Dec 23 10:49:24 IBMUBUNTU1 dovecot: auth(default): master in: 
USER#0111#011testing.testing at xxxx.xxx#011service=deliver

Dec 23 10:49:24 IBMUBUNTU1 dovecot: auth(default): ldap(testing.testing): user 
search: base=dc=lawley, dc=local scope=subtree filter=(&(objectClass=user)
(samaccountname=testing.testing)) fields=

Dec 23 10:49:24 IBMUBUNTU1 dovecot: auth(default): ldap(testing.testing): 
result: objectClass(?unknown?)= cn(?unknown?)= sn(?unknown?)= 
givenName(?unknown?)= distinguishedName(?unknown?)= instanceType(?unknown?)= 
whenCreated(?unknown?)= whenChanged(?unknown?)= displayName(?unknown?)= 
uSNCreated(?unknown?)= uSNChanged(?unknown?)= name(?unknown?)= 
objectGUID(?unknown?)= userAccountControl(?unknown?)= 
primaryGroupID(?unknown?)= objectSid(?unknown?)= sAMAccountName(?unknown?)= 
sAMAccountType(?unknown?)= userPrincipalName(?unknown?)= 
objectCategory(?unknown?)=

Dec 23 10:49:24 IBMUBUNTU1 dovecot: auth(default): master out: 
USER#0111#011testing.testing#011home=/var/mailstore//testing.testing. 
=uid=501#011gid=501#011mail=maildir:/var/mailstore//testing.testing/Maildir/

i.e.,  the domain does not appear in the paths to the home directory or 
maildir.

I found a bug report in the mailing list that looks like it might be the same 
problem (%d not supported in user_attrs),  but the fix it references is for 
2.0.

Is this a known problem in 1.x?  Is there a fix/workaround for it?  E.g., 
could I have Postfix generate the maidir path and pass it to deliver as 
the "-m" parameter?

Thanks,

Ran


More information about the dovecot mailing list