Назад | Перейти на главную страницу

Автономный сервер Samba, использующий LDAP для аутентификации: несоответствие SID

Я пытаюсь запустить свой новый сервер самбы несколько дней и начинаю терять рассудок из-за того, что не понимаю, что делаю не так. Вот моя установка:

Сервер OpenLDAP 2.4.21 с ~ 15 группами и> 100 пользователями, каждый из которых имеет пароль unix и пароль samba, хранящийся в LDAP, а также SID пользователя и SID первичной группы, назначенные и сохраненные в LDAP, полученные из SID LDAP Сервер.

Теперь я хочу использовать несколько серверов Samba для использования сервера LDAP для аутентификации пользователей. Сервер samba - это Linux, настроенный с помощью NSS / PAM с использованием сервера ldap. 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

а затем последнее сообщение повторяется для всех 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

Я вижу здесь то, что сервер самбы не распознает основную группу пользователя (которая является существующей группой в LDAP) и поэтому сопоставляет основную группу с ее локальной группой «Пользователи домена», которая тогда, очевидно, не соответствует domainSID. идентификатора пользователя. Но почему сервер самбы не распознает группу? Или есть другая основная проблема?

Что я пробовал до сих пор:

Изменение SID сервера samba на SID сервера LDAP, но net setlocalsid S-... не менял локальный SID. Нет сообщения об ошибке, просто выполнено успешно, но getlocalsid вернул старый SID.

Установка domainid сервера samba на SID сервера ldap. net setdomainsid S-... прошел успешно, но сервер самбы по-прежнему отказывается аутентифицировать пользователей.

Пытался добавить сервер в домен с net join XXX но ответ был просто «автономный сервер не может присоединиться к домену».

Я пытался бежать smbpasswd -a чтобы добавить пользователя в локальную базу данных samba (хотя это не было бы вариантом для окончательного решения, но это то, что рекомендовали другие пользователи), но ошибка не изменилась.

Как я могу сказать samba игнорировать несоответствие SID домена или заставить samba иметь тот же SID, что и LDAP? Или это вызовет другие проблемы, если ~ 10 Samba Server и LDAP в конечном итоге будут иметь одинаковый SID?

У меня была аналогичная проблема. Что мне нужно было сделать, так это отредактировать записи sambaSID для домена, пользователя и группы в LDAP, чтобы они соответствовали тому, что было на моем сервере. В противном случае вы получите следующее сообщение об ошибке в журнале 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 и убедитесь, что это значение атрибута sambaSID для sambaDomainName=THISDOMAIN.

Также убедитесь 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

Надеюсь это поможет!!!