使用LDAP进行身份validation的Samba独立服务器:SID不匹配

我试图让我的新的桑巴服务器运行几天,我开始失去了我的脑海,没有搞清楚我做错了什么。 这是我的设置:

具有〜15个组和100个用户的OpenLDAP 2.4.21服务器,都具有存储在LDAP中的unix和samba密码,以及分配并存储在LDAP中的用户SID和主组SID,源自LDAP的SID服务器。

现在我想使用几个samba服务器来使用LDAP服务器来authentication用户。 samba服务器是一个使用ldap服务器configurationNSS / PAM的linux。 getent passwd / group将所有用户和ssh返回给所有用户的samba机器。 现在这里是smb.conf:

[global] workgroup = XXXXX security = user passdb backend = ldapsam:ldap://myldapserver ldap suffix = dc=mydomain,dc=com ldap admin dn = cn=replicator,dc=mydomain,dc=com ldap user suffix = ou=users ldap group suffix = ou=groups ldap machine suffix = ou=computers ldap ssl = start tls 

ldap连接工作,如pdbedit -L显示

 pm_process() returned Yes smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=SAMBAHOSTNAME))] StartTLS issued: using a TLS connection smbldap_open_connection: connection opened ldap_connect_system: successful connection to the LDAP server The LDAP server is successfully connected smbldap_search_paged: base => [dc=mydomain,dc=com], filter => [(&(uid=*)(objectclass=sambaSamAccount))],scope => [2], pagesize => [1024] smbldap_search_paged: search was successful sid S-1-5-21-[LDAPSID]-5168 does not belong to our domain 

然后最后的消息重复所有的用户名。 使用smbclient -L localhost -U someid日志文件说:

 check_ntlm_password: Checking password for unmapped user [XXX]\[someid]@[SAMBAHOST] with the new password interface check_ntlm_password: mapped user is: [SAMBAHOST]\[someid]@[SAMBAHOST] StartTLS issued: using a TLS connection smbldap_open_connection: connection opened ldap_connect_system: successful connection to the LDAP server The LDAP server is successfully connected init_sam_from_ldap: Entry found for user: someid Home server: SAMBAHOST Home server: SAMBAHOST init_group_from_ldap: Entry found for group: 1011 init_group_from_ldap: Entry found for group: 1011 Primary group S-1-5-21-[LDAPSID]-1000 for user someid is a UNKNOWN and not a domain group Forcing Primary Group to 'Domain Users' for someid ntlm_password_check: Checking NTLMv2 password with domain [CIN] sam_account_ok: Checking SMB password for user someid The primary group domain sid(S-1-5-21-[LOCALSID]-513) does not match the domain sid(S-1-5-21-[LDAPSID]) for someid(S-1-5-21-[LDAPSID]-5708) check_sam_security: make_server_info_sam() failed with 'NT_STATUS_UNSUCCESSFUL' check_ntlm_password: Authentication for user [someid] -> [someid] FAILED with error NT_STATUS_UNSUCCESSFUL 

我在这里看到的是,samba服务器不能识别用户的主要组(这是LDAP中的一个现有组),因此将主要组映射到它的本地“域用户”组,这显然不匹配域SID的用户ID。 但为什么桑巴服务器不能识别组? 还是有一个不同的基本问题?

我到目前为止所尝试的是:

将Samba服务器的SID更改为LDAP服务器的SID,但是net setlocalsid S-...没有更改本地SID。 没有错误消息,只是成功执行,但getlocalsid返回旧的SID。

将samba服务器的domainsid设置为ldap服务器的SID。 net setdomainsid S-...成功,但samba服务器仍然拒绝authentication用户。

尝试使用net join XXX将服务器添加到域,但答案只是“独立服务器无法join域”。

我尝试运行smbpasswd -a将用户添加到本地samba数据库(即使这不是最终解决scheme的选项,但这是其他用户推荐的选项),但是错误没有改变。

我如何告诉samba忽略域SID不匹配或强制samba具有与LDAP相同的SID? 或者,如果〜10 Samba服务器和LDAP到底是否都有完全相同的SID,会导致其他问题?

我有一个类似的问题。 我所要做的就是在LDAP中编辑域,用户和组的sambaSID条目,以便与我的服务器所具有的匹配。 如果没有,您将在服务器的Samba日志中收到以下错误消息。 要看到这个日志,请确保你的smb.conf log level = 2

 [2015/12/03 14:39:19.753690, 1] ../source3/auth/server_info.c:346(samu_to_SamInfo3) The primary group domain sid(S-1-5-21-748580849-194208185-3916830000-513) does not match the domain sid(S-1-5-21-2566626306-4294080665-3504248766) for someuser(S-1-5-21-2566626306-4294080665-3504248766-11678) [2015/12/03 14:39:19.753733, 0] ../source3/auth/check_samsec.c:492(check_sam_security) check_sam_security: make_server_info_sam() failed with 'NT_STATUS_UNSUCCESSFUL' [2015/12/03 14:39:19.753755, 2] ../source3/auth/auth.c:288(auth_check_ntlm_password) check_ntlm_password: Authentication for user [someuser] -> [bbogaert] FAILED with error NT_STATUS_UNSUCCESSFUL [2015/12/03 14:39:19.753777, 2] ../auth/gensec/spnego.c:743(gensec_spnego_server_negTokenTarg) SPNEGO login failed: NT_STATUS_UNSUCCESSFUL 

在你的服务器上运行net getdomainsid 。 这将返回localsiddomainsid这些值应该匹配 。 如果他们不运行net setdomainsidSID for local machineSID for local machine的值。

 root@TheWiggle:~# net getdomainsid SID for local machine THEWIGGLE is: S-1-5-21-748580849-194208185-3916830000 SID for domain THISDOMAIN is: S-1-5-21-748580849-194208185-3916830000 

现在在您的LDAP服务器上SID for domainSID for domain的值,并确保这是sambaDomainName=THISDOMAIN属性sambaSID的值。

还要确保用户的sambaSIDsambaPrimaryGroupID以及组的sambaSIDSID for domainSID for domain和属性的唯一值组成。

例如某用户的sambaSIDS-1-5-21-748580849-194208185-3916830000-99999 ,其sambaPrimaryGroupID为S-1-5-21-748580849-194208185-3916830000-555 。 该组的sambaSID将是S-1-5-21-748580849-194208185-3916830000-77777

希望这可以帮助!!!