私は新しい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を持っている場合、これにより他の問題が発生しますか?
同様の問題がありました。私がしなければならなかったのは、LDAPのドメイン、ユーザー、グループのsambaSIDエントリを編集して、サーバーが持っているものと一致するようにすることでした。そうでない場合は、サーバーのSambaログに次のエラーメッセージが表示されます。このログを表示するには、log level = 2
のsmb.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
を実行します。これはlocalsid
とdomainsid
を返します。 これらの値は一致する必要があります。 net setdomainsid
をSID 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
の値であることを確認します。
また、ユーザーのsambaSID
とsambaPrimaryGroupID
、およびグループのsambaSID
がSID for domain
と属性の一意の値で構成されていることも確認してください。
たとえば、sambaSID
のsomeuser
はS-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
になります
お役に立てれば!!!