Dear Sir,

I'm having problems with the implementation of prefetch userdb.

Following the directives from the site (http://wiki2.dovecot.org/UserDatabase/Prefetch), I am unable to avoid the second search to the user backend (ldap).

Could give me any advice or tips to achieve my goal?


Thanks a lot,

Hector M. Jacas



My ldap has the following structure:

search base: ou=Domains,dc=test,dc=local

*******************************
domains tree:

    domain2.com: dc=domain2.com,ou=Domains,dc=test,dc=local

    Definition of mailuser1 on domail2.com:

       dn: uid=mailuser1,dc=domain2.com,ou=Domains,dc=test,dc=local
       uid: mailuser1
       cn: User mailuser1
       sn: User 1
       displayName: User mailuser1
       objectClass: inetOrgPerson
       objectClass: organizationalPerson
       objectClass: person
       objectClass: top
       mail: [email protected]

*************************************
    domain1.com: dc=domain1.com,ou=Domains,dc=test,dc=local

    Definition of mailuser1 on domain1.com:

       dn: uid=mailuser1,dc=domain1.com,ou=Domains,dc=test,dc=local
       uid: mailuser1
       cn: User mailuser1
       sn: User 1
       displayName: User mailuser1
       objectClass: inetOrgPerson
       objectClass: organizationalPerson
       objectClass: person
       objectClass: top
       mail: [email protected]

*************************************
/etc/dovecot/dovecot-ldap.conf.ext content:

hosts = ldapserver
auth_bind = yes
ldap_version = 3
tls = no
base = ou=Domains,dc=test,dc=local
scope = subtree

user_filter = (&(objectclass=inetOrgPerson)(mail=%u))
user_attrs = =home=/var/vmail/mailboxes/%Ld/%Ln/%Ln,=uid=500,=gid=500

default_pass_scheme = CRYPT

pass_filter = (&(objectclass=inetOrgPerson)(mail=%u))
pass_attrs = uid=user,password=userPassword,=userdb_home=/var/vmail/mailboxes/%Ld/%8Ln/%Ln, \
           =userdb_uid=500,=userdb_gid=500

iterate_attrs = mail=user
iterate_filter = (objectclass=inetOrgPerson)

************************************
auth test result for [email protected]:

# doveadm [email protected] password auth test
passdb: [email protected] auth succeeded
Extra fields:
  user=mailuser1

And in /var/log/maillog (enabled debug auth options):

Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: auth client connected (pid=0)
Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: client in: AUTH 1 PLAIN service=doveadm resp=<hidden> Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: ldap([email protected]): bind search: base=ou=Domains,dc=test,dc=local filter=(&(objectclass=inetOrgPerson)([email protected])) Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: ldap([email protected]): result: uid=mailuser1; uid unused Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: auth([email protected]): username changed [email protected] -> mailuser1 Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: ldap(mailuser1): result: uid=mailuser1 Apr 26 14:00:33 nfs-7-00 dovecot: auth: Debug: client passdb out: OK 1 user=mailuser1


*****************************
[email protected] doveadm user result:

# doveadm user [email protected]
field value
uid 500
gid 500
home /var/vmail/mailboxes/domain2.com/mailuser1/mailuser1
maildir mail: /var/vmail/mailboxes/domain2.com/mailuser/mailuser1:INDEX=MEMORY

And in /var/log/maillog (enabled debug auth options):

Apr 26 14:01:19 nfs-7-00 dovecot: auth: Debug: master in: USER 1 [email protected] service=doveadm Apr 26 14:01:19 nfs-7-00 dovecot: auth: Debug: prefetch([email protected]): passdb didn't return userdb entries, trying the next userdb Apr 26 14:01:19 nfs-7-00 dovecot: auth: Debug: ldap([email protected]): user search: base=ou=Domains,dc=test,dc=local scope=subtree filter=(&(objectclass=inetOrgPerson)([email protected])) fields= Apr 26 14:01:19 nfs-7-00 dovecot: auth: Debug: ldap([email protected]): result: uid=mailuser1 cn=Usuario mailuser1 sn=Usuario 1 displayName=Usuario mailuser1 objectClass=inetOrgPerson,inetOrgPerson,inetOrgPerson,inetOrgPerson [email protected]; objectClass,cn,uid,mail,displayName,sn unused Apr 26 14:01:19 nfs-7-00 dovecot: auth: Debug: ldap([email protected]): result: uid=mailuser1 cn=Usuario mailuser1 sn=Usuario 1 displayName=Usuario mailuser1 objectClass=inetOrgPerson,inetOrgPerson,inetOrgPerson,inetOrgPerson [email protected]; objectClass,cn,uid,mail,displayName,sn unused Apr 26 14:01:19 nfs-7-00 dovecot: auth: Debug: userdb out: USER 1 [email protected] home=/var/vmail/mailboxes/domain2.com/mailuser1/mailuser1 uid=500 gid=500


***************************
My base system is RHEL7, 24 CPUs and 16GB ram and for LDAP backend, 389 DS 1.2.2 on RHEL 6.6

 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-123.20.1.el7.x86_64 x86_64 Red Hat Enterprise Linux Server release 7.0 (Maipo) nfs4
auth_debug = yes
auth_mechanisms = plain login
auth_verbose = yes
default_client_limit = 50000
disable_plaintext_auth = no
listen = *
mail_fsync = always
mail_gid = 500
mail_location = maildir:/var/vmail/mailboxes/%d/%8n/%n:INDEX=MEMORY
mail_nfs_index = yes
mail_nfs_storage = yes
mail_uid = 500
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
mmap_disable = yes
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
service auth {
  unix_listener auth-userdb {
    group = vmail
    mode = 0640
    user = vmail
  }
}
service doveadm {
  inet_listener {
    port = 24245
  }
}
service imap-login {
  process_min_avail = 24
  service_count = 0
}
service imap-urlauth-worker {
  chroot =
  client_limit = 1
  drop_priv_before_exec = no
  executable = imap-urlauth-worker
  extra_groups =
  group =
  idle_kill = 0
  privileged_group =
  process_limit = 8192
  process_min_avail = 0
  protocol = imap
  service_count = 1
  type =
  unix_listener imap-urlauth-worker {
    group =
    mode = 0600
    user = $default_internal_user
  }
  user =
  vsz_limit = 18446744073709551615 B
}
service imap-urlauth {
  chroot =
  client_limit = 1
  drop_priv_before_exec = no
  executable = imap-urlauth
  extra_groups =
  group =
  idle_kill = 0
  privileged_group =
  process_limit = 8192
  process_min_avail = 0
  protocol = imap
  service_count = 1
  type =
  unix_listener token-login/imap-urlauth {
    group =
    mode = 0666
    user =
  }
  user = $default_internal_user
  vsz_limit = 18446744073709551615 B
}
service imap {
  process_limit = 8192
}
service pop3-login {
  process_min_avail = 24
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol imap {
  mail_max_userip_connections = 1000
}
local 172.28.200.0/24/24 {
  doveadm_password = secret
}



<<attachment: hector_jacas.vcf>>

--- 
This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at 
host imx3.etecsa.cu
Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>

Reply via email to