[Samba] Accessing external LDAP for classicupgrade

Robert Moskowitz rgm at htt-consult.com
Sun Sep 20 01:49:09 UTC 2015



On 09/19/2015 06:13 AM, Rowland Penny wrote:
> On 19/09/15 10:32, Andrew Bartlett wrote:
>> On Fri, 2015-09-18 at 08:36 -0400, Robert Moskowitz wrote:
>>> On 09/18/2015 05:19 AM, Andrew Bartlett wrote:
>>>> On Thu, 2015-09-17 at 17:02 -0400, Robert Moskowitz wrote:
>>>>> I am reading the LDAP portion of:
>>>>>
>>>>> https://wiki.samba.org/index.php/Migrating_a_Samba_NT4_domain_to_
>>>>> a_Sa
>>>>> mba_AD_domain_%28classic_upgrade%29
>>>>>
>>>>> The second route may not work for me.  When I ran slapcat on the
>>>>> ClearOS
>>>>> system I got:
>>>>>
>>>>> # slapcat > ldap.backup.ldif
>>>>> 55fb2665 The first database does not allow slapcat; using the
>>>>> first
>>>>> available one (2)
>>>>>
>>>>> and very little in the backup file.
>>>>>
>>>>> So since the LDAP backend on the old server is only used for the
>>>>> classicupgrade, this looks interesting, but...
>>>>>
>>>>> What ldap.conf and smb.conf to I set up to retreive the
>>>>> information
>>>>> from
>>>>> the old LDAP backend host?  That is not clear.  I would have to
>>>>> start
>>>>> afresh (going to anyway) to see what a fresh system looks like
>>>>> with
>>>>> these two files.  On the ClearOS system, the ldap.conf says:
>>>>>
>>>>> # cat smb.ldap.conf
>>>>> # Please do not edit - this file is automatically generated.
>>>>>
>>>>> passdb backend = ldapsam:ldap://127.0.0.1
>>>>> ldap admin dn = cn=manager,ou=Internal,dc=home,dc=htt
>>>>> ldap group suffix = ou=Groups,ou=Accounts
>>>>> ldap idmap suffix = ou=Idmap
>>>>> ldap machine suffix = ou=Computers,ou=Accounts
>>>>> ldap passwd sync = No
>>>>> ldap suffix = dc=home,dc=htt
>>>>> ldap user suffix = ou=Users,ou=Accounts
>>>>> ldap connection timeout = 8
>>>>> ldap ssl = Off
>>>>>
>>>>> On my new AD, I would use the IP address of the old server (they
>>>>> have
>>>>> the same fqdn, but different DNS servers in different networks,
>>>>> but
>>>>> IP
>>>>> reachable).  Plus make sure the ldap port is open; it should be
>>>>> already.
>>>> Just change the 'passdb backend' line in the smb.conf to point to
>>>> your
>>>> old server.  In general we will only read it, but the backup
>>>> process is
>>>> there to make sure.
>>> So you are saying that on my Samba4 AD system, I setup ITS
>>> /etc/ldap/ldap.conf to be the same as my ClearOS, at least for the
>>> classicupdate, but to point the 'passdb backend' to it.  I will give
>>> that a test by deleteing (per the wiki) what the prior run of
>>> classicupdate did and try with this then report back.  Save the total
>>> rebuild after I learn how to also get the machines over. Profiles is
>>> 'just' a matter of rsyncing a LOT of files.
>>>
>> Samba does not read ldap.conf, and when we do the classicupgrade, we
>> force 'ldapsam:trusted=yes', so that we do not need nss_ldap
>> configured.  Instead, the only option we use is 'passdb backend' in the
>> smb.conf, and you just need to point that at the old server.

Yet adding that line to ldap.conf and I stopped getting the tls error.

>>
>> Andrew Bartlett
>>
>
> Hi Andrew, well, something is going wrong for the OP, he says he has 
> followed what is on the wiki, but his users are not making it to the 
> new AD DC.
>
> He followed the wiki and didn't get his users.
> He tried to use 'slapcat' to dump the database, it didn't work
> He tried again to 'classicupgrade' but this time added the ldap parts 
> to smb.conf (they were in 'include' lines that the upgrade ignored), 
> he got access denied.
> I suggested altering ldap.conf on the old server by removing the tls 
> lines and the access denied error is now gone (you sure that the 
> upgrade doesn't use ldap.conf?), but he still hasn't got any of his 
> old users in AD.
>
> Does the classicupgrade read ldap ? if so I have an idea how to 
> transfer the ldap info from the old server to the new one, but it will 
> mean that this line on the wiki: 'Install openLDAP (incl. headers and 
> libraries) on the new host' is going to need massive expansion.

Back.  Friday evening, I realized that I need to pass my admin password, 
that is why the ldapsearch works.  Think about it, why should the ldap 
pass all the user information to an anonymous query?  In fact I noted 
the following on the ClearOS server:

# cat clearos_anonymous.conf
# Please do not edit - this file is automatically generated.

# If you need to add your own custom access control rules, please do so in
# slapd.conf or a different include file.

# Read-only access to users and groups
#-------------------------------------

access to dn.base="dc=home,dc=htt"
     by * read stop

access to dn.subtree="ou=Accounts,dc=home,dc=htt" 
attrs=entry,objectClass,c,cn,description,facsimileTelephoneNumber,givenName,l,mail,member,mobile,o,ou,postalCode,postOfficeBox,roomNumber,sn,st,street,telephoneNumber,uid
     by * read stop

So the anon query will be limited.




More information about the samba mailing list