web-dev-qa-db-ja.com

認証にLDAPを使用するSambaスタンドアロンサーバー:SIDの不一致

私は新しいsambaサーバーを何日も稼働させようとしているのですが、自分が何を間違っているのかわからないことに頭を悩ませ始めています。これが私の設定です:

LDAPに保存されているUNIXとsambaのパスワード、およびLDAPに割り当てられ、LDAPに保存されているユーザーSIDとプライマリグループSIDを持ち、LDAPのSIDから派生した、〜15グループと> 100ユーザーのOpenLDAP 2.4.21サーバーサーバ。

次に、いくつかのSambaサーバーを使用して、LDAPサーバーを使用してユーザーを認証したいと思います。 Sambaサーバーは、LDAPサーバーを使用するNSS/PAMで構成されたLinuxです。 getent passwd/groupはすべてのユーザーを返し、sambaマシンへのsshはすべてのユーザーに対して機能します。これが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

pdbedit -Lが示すように、LDAP接続は機能します

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

そして最後のメッセージがすべてのuidに対して繰り返されます。 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サーバーがグループを認識しないのはなぜですか?または、別の根本的な問題はありますか?

私がこれまでに試したこと:

SambaサーバーのSIDをLDAPサーバーのSIDに変更しましたが、net setlocalsid S-...はローカルSIDを変更しませんでした。エラーメッセージは表示されず、正常に実行されましたが、getlocalsidが古いSIDを返しました。

SambaサーバーのドメインIDをLDAPサーバーのSIDに設定します。 net setdomainsid S-...は成功しましたが、Sambaサーバーはユーザーの認証を拒否します。

net join XXXを使用してサーバーをドメインに追加しようとしましたが、答えは「スタンドアロンサーバーはドメインに参加できません」でした。

smbpasswd -aを実行してユーザーをローカルsamba dbに追加しようとしましたが(これは最終的なソリューションのオプションではありませんが、他のユーザーが推奨する方法です)、エラーは変わりませんでした。

SambaにドメインSIDの不一致を無視するように指示するか、sambaにLDAPと同じSIDを強制するようにするにはどうすればよいですか?または、最終的に〜10のSambaサーバーとLDAPがすべてまったく同じSIDを持っている場合、これにより他の問題が発生しますか?

6
Phil

同様の問題がありました。私がしなければならなかったのは、LDAPのドメイン、ユーザー、グループのsambaSIDエントリを編集して、サーバーが持っているものと一致するようにすることでした。そうでない場合は、サーバーのSambaログに次のエラーメッセージが表示されます。このログを表示するには、log level = 2smb.confを確認してください。

[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 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 domainの値を取得し、これがsambaDomainName=THISDOMAINの属性sambaSIDの値であることを確認します。

また、ユーザーのsambaSIDsambaPrimaryGroupID、およびグループのsambaSIDSID for domainと属性の一意の値で構成されていることも確認してください。

たとえば、sambaSIDsomeuserS-1-5-21-748580849-194208185-3916830000-99999になり、それらのsambaPrimaryGroupIDはS-1-5-21-748580849-194208185-3916830000-555になります。グループのsambaSIDS-1-5-21-748580849-194208185-3916830000-77777になります

お役に立てれば!!!

4
byronicle