Я пытаюсь запустить свой новый сервер самбы несколько дней и начинаю терять рассудок из-за того, что не понимаю, что делаю не так. Вот моя установка:
Сервер 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
Надеюсь это поможет!!!