В настоящее время я запускаю samba-3.5.6 на хосте debian / wheezy, чтобы действовать как файловый сервер для w32-клиентов нашего отдела. аутентификация выполняется через OpenLDAP, где каждый user-dn имеет объектный класс: sambaSamAccount, содержащий учетные данные smb, и объектный класс: shadowAccount / posixAccount для «обычной» аутентификации (например, pam, apache, ...)
теперь мы хотели бы сбросить user-db нашего отдела и вместо этого использовать аутентификацию для user-db нашей вышестоящей организации. эти учетные записи пользователей управляются в каталоге novell-edirectory, который я уже могу использовать для аутентификации с помощью pam (например, для ssh-logins; на другом хосте). наша вышестоящая организация предоставляет доступ на основе smb / cifs (через некоторую службу novell) к некоторым каталогам, к которым я могу получить доступ из своего клиента Linux через smbclient
.
то, что мне в настоящее время не удается сделать, - это использовать upstream-ldap (eDirectory) для аутентификации самбы нашего учреждения:
Я настроил свой самба-сервер для аутентификации против вышестоящего сервера ldap:
passdb backend = ldapsam:ldaps://ldap.example.com
но когда я пытаюсь аутентифицировать пользователя, я получаю:
$ smbclient -U USER \\\\SMBSERVER\\test
Enter USER's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
tree connect failed: NT_STATUS_ACCESS_DENIED
журналы показывают:
[2012/10/02 09:53:47.692987, 0] passdb/secrets.c:350(fetch_ldap_pw)
fetch_ldap_pw: neither ldap secret retrieved!
[2012/10/02 09:53:47.693131, 0] lib/smbldap.c:1180(smbldap_connect_system)
ldap_connect_system: Failed to retrieve password from secrets.tdb
Я вижу две проблемы:
У меня нет пароля администратора для восходящего LDAP (и, скорее всего, мне его не дадут). Я хочу только аутентифицировать своих пользователей, доступ для записи вообще не нужен. могу я уйти с этим?
исходный ldap не имеет атрибутов, связанных с самбой, в базе данных. У меня создалось впечатление, что для аутентификации samba требуются эти атрибуты, поскольку smb / cifs использует некоторое тривиальное хеширование, несовместимое с обычными хешами posixAccount.
есть ли способ аутентификации сервера самбы моего отдела на таком сервере ldap?
Вам нужно установить пароль ldap в samba. (Например, если ваш admindn предназначен для пользователя admin)
smbpasswd -w admin