Kolab 3.4 Multi-Domain and ptloader

Brady, Mike mike.brady at devnull.net.nz
Wed Nov 25 04:14:46 CET 2015


On 2015-11-22 11:17, Brady, Mike wrote:
> I have a Kolab 3.1/Centos 6 Multi-Domain system that I am in the
> process of migrating to a Kolab 3.4/Centos 7 system and am having some
> problems with ptloader.
> 
> On the 3.1 system ptloader just didn't work on a Multi-Domain system
> and as per the wiki and TBits Multi-Domain scripts I have been running
> successfully for sometime with ptloader disabled.
> 
> I was under the impression that the issues with ptloader and
> Multi-Domain had bee resolved back in 3.3, but doing some testing with
> 3.4 last week suggests otherwise.
> 
> The specific problem that I am seeing is that the ptloader LDAP query,
> as shown in the dirsrv access log, has a "corrupt" ldap_base.  For
> instance I see "dc=example,dc=co,dc=n1" (that is a digit one on the
> end) instead of dc=example,dc=co,dc=nz in the query.  The query
> returns no results and causes ptloader to crash which in turn means
> that the user login fails.  If I disable ptloader as per the 3.1
> system everything seems to work just fine.
> 
> In the log for Cyrus I see
> 
> Nov 20 10:01:55 kolab00 ptloader[13550]: starting: ptloader.c,v 
> git2.5+0
> Nov 20 10:01:55 kolab00 imaplocal[13513]: ptload(): empty response
> from ptloader server
> Nov 20 10:01:55 kolab00 master[13492]: process type:SERVICE
> name:ptloader path:/usr/lib/cyrus-imapd/ptloader age:0.015s pid:13550
> signaled to death by signal 6 (Aborted)
> Nov 20 10:01:55 kolab00 master[13492]: service ptloader/unix pid 13550
> in READY state: terminated abnormally
> Nov 20 10:01:55 kolab00 imaplocal[13513]: ptload completely failed:
> unable to canonify identifier: mbrady at example.co.nz
> Nov 20 10:01:55 kolab00 imaplocal[13513]: SASL bad userid authenticated
> Nov 20 10:01:55 kolab00 imaplocal[13513]: badlogin: localhost [::1]
> PLAIN [SASL(-13): authentication failure: bad userid authenticated]
> 
> In the dirsrv access log I see
> 
> [20/Nov/2015:10:01:55 +1300] conn=858 fd=71 slot=71 connection from ::1 
> to ::1
> [20/Nov/2015:10:01:55 +1300] conn=858 op=0 BIND
> dn="uid=kolab-service,ou=Special Users,dc=example,dc=co,dc=nz"
> method=128 version=3
> [20/Nov/2015:10:01:55 +1300] conn=858 op=0 RESULT err=0 tag=97
> nentries=0 etime=0 dn="uid=kolab-service,ou=special
> users,dc=example,dc=co,dc=nz"
> [20/Nov/2015:10:01:55 +1300] conn=858 op=1 SRCH
> base="ou=People,dc=example,dc=co,dc=nz" scope=2
> filter="(&(objectClass=inetorgperson)(|(uid=mbrady)(mail=mbrady at example.co.nz)(alias=mbrady at example.co.nz)))"
> attrs="displayName mail alias nsRoleDN uid"
> [20/Nov/2015:10:01:55 +1300] conn=858 op=1 RESULT err=0 tag=101
> nentries=1 etime=0 notes=U
> [20/Nov/2015:10:01:55 +1300] conn=859 fd=72 slot=72 connection from ::1 
> to ::1
> [20/Nov/2015:10:01:55 +1300] conn=859 op=0 BIND
> dn="uid=kolab-service,ou=Special Users,dc=example,dc=co,dc=nz"
> method=128 version=3
> [20/Nov/2015:10:01:55 +1300] conn=859 op=0 RESULT err=0 tag=97
> nentries=0 etime=0 dn="uid=kolab-service,ou=special
> users,dc=example,dc=co,dc=nz"
> [20/Nov/2015:10:01:55 +1300] conn=859 op=1 SRCH
> base="cn=kolab,cn=config" scope=2
> filter="(&(objectClass=domainrelatedobject)(associatedDomain=example.co.nz))"
> attrs="associatedDomain inetDomainBaseDN"
> [20/Nov/2015:10:01:55 +1300] conn=859 op=1 RESULT err=0 tag=101
> nentries=1 etime=0
> [20/Nov/2015:10:01:55 +1300] conn=859 op=2 SRCH
> base="dc=example,dc=co,dc=n1" scope=2
> filter="(|(&(|(uid=cyrus-admin)(uid=cyrus-murderzzzz))(uid=mbrady))(&(|(uid=mbrady)(mail=mbrady at example.co.nz)(mail=mbrady@))(objectClass=kolabinetorgperson)))"
> attrs="1.1"
> [20/Nov/2015:10:01:55 +1300] conn=859 op=2 RESULT err=32 tag=101
> nentries=0 etime=0
> [20/Nov/2015:10:01:55 +1300] conn=859 op=-1 fd=72 closed - B1
> [20/Nov/2015:10:01:58 +1300] conn=858 op=2 UNBIND
> [20/Nov/2015:10:01:58 +1300] conn=858 op=2 fd=71 closed - U1
> 
> Note the dc=n1 in the second query. I ran a separate configuration
> file ptloader and put the uid=cyrus-murderzzzz to make sure that I was
> looking at the correct query.
> 
> At first I thought that it must be a configuration mistake on my part
> (wouldn't be the first time), but if it is I can't find it and it is
> only ptloader.  All the other queries look as they should.
> 
> The current Multi-Domain wiki page (
> https://docs.kolab.org/howtos/multi-domain.html) suggests to me that
> Multi-Domain should work with ptloader enabled, but the Kolab 3.4
> TBits Multi-Domain scripts still disable it.
> 
> So to the point of this email.
> 1) Is ptloader supposed to work in a Multi-Domain set up with the
> Kolab 3.4 packages?
> 2) If not, are there newer packages available somewhere that I can try?
> 
> Thanks
> 
> Mike
> _______________________________________________
> users mailing list
> users at lists.kolab.org
> https://lists.kolab.org/mailman/listinfo/users

After a very frustrating day on this, I think that I have found how to 
make it work. But I think that there maybe a bug in there somewhere.

The default set up for the parent domain DIT root dn to be discovered by 
Cyrus IMAP is

ldap_domain_base_dn: cn=kolab,cn=config
ldap_domain_filter: 
(&(objectclass=domainrelatedobject)(associateddomain=%s))
ldap_domain_name_attribute: associatedDomain
ldap_domain_scope: sub
ldap_domain_result_attribute: inetdomainbasedn

But, inetdomainbasedn is not set on any of my systems for any of my 
primary domains.

I am guessing that when this attribute is not set that the base_dn is 
derived some how from the domain name?  On my test system this worked 
without inetdomainbasedn being set, on the production system it doesn't. 
  I have no idea why.

This turned out to be fixable in Kolab Webadmin.  In Kolab 
Webadmin->Domains, for each primary domain, go to the "Other" tab and 
set the "Custom Root DN" to the appropriate base dn.  So for the above 
example "dc=example,dc=co,dc=nz".  This sets the inetdomainbasedn 
attribute.

I can now login with ptloader enabled, which is a major functional 
improvement :-)

I have more testing to do before I declare victory though.

Regards

Mike


More information about the users mailing list