LinuxForum.Fans
Тема

samba и ldap

Автор: Cruiser78 5 сообщений 4320 просмотров
#10481

Привет!

Дано:

1. Федора 12 (x64).
2. samba.
3. В качестве сервера LDAP - 389-ds (настроен в репликации на двух серверах, отказоустойчивое решение). Правда, пришлось немного мозг вскипятить, чтобы samba.schema воспринялась этим сервером. (переделать файл schema в ldif и положить его в нужное место).

Проблема:

Когда завожу юзера в самбе скриптом:

text

#!/bin/sh
#
useradd -g ntusers -d /opt/pub/samba/homes/$1 -c "%2" -s /sbin/nologin $1
passwd -l $1
smbpasswd -a $1

Юзер заводится, поля самбовские юзеру в LDAP добавляются, однако пароль его в LDAP не передается. Сообщение следующее:

text
ldapsam_modify_entry: LDAP Password could not be changed for user имярек: Confidentiality required.
Operation requires a secure connection.
Failed to modify entry for user имярек.

Однако в самбу юзер заходит под этим паролем (он, видимо в самбовском файле еще сохраняется). Далее, если в LDAP юзеру поменять пароль, то это изменение остается только в LDAP, а самба про него не ведает и пускает юзера по первоначальному паролю, а по измененному - обламывает.

Прошу помощи в настройке этого секурного соединения. А то некрасиво получается, хороший сервер LDAP отдельно, а самба, ради которой этот сервер и поднимался, да еще в HA-варианте (на двух серверах), отдельно. Коллеги, скажите - куда надо покопать?

#10482

Конфиг самбы покажите пожалуйста
Судя по строке

Operation requires a secure connection.

у Вас не настроены безопасное соединение с ЛДАП

#10543
Hrafn написал:
Конфиг самбы покажите пожалуйста
Судя по строке

Operation requires a secure connection.

у Вас не настроены безопасное соединение с ЛДАП

То, что это не настроено, я и сам вижу. Вопрос в том, как это настроить. И еще - небольшое дополнение.
389-ds врое как не воспринимает файлы schema. Не нашел, как их ему скормить. Но - он берет за схемы ldif-файлы, что лежат в определенном каталоге. Я сделал ldif-файл из samba.schema и подсунул его 389-ds. Он его съел и начал по требованию самбы дополнять атрибутами заведенного руками в LDAP юзера. А вот на пароле - спотыкается. Однако, в каталоге /usr/share/dirsrv/data можно найти готовые ldif-файлы для самбы и самбы3. Если их подсунуть 389-ds, то тогда самба вообще отказывается работать с LDAP'ом. сообщает, что "failed to add entry to user имярек". Сравнивал свой ldif с этими (60samba3.ldif) diff'ом - расхождения, вроде, тольrо в порядке задания атрибутов... Но этот прядок разный мешает сравнить эти самые атрибуты. Увы.


А конфиг самбы вот он, типовой, как по всем статьям интернетным прописано:

[global]

text

# имя домена
workgroup = CORP

# имя сервера netbios name = FileServer # аутентификация по имени пользователя security = USER template shell = /sbin/nologin # Описание сервера server string = Samba PDC

# Администратор самбы admin users = root

# Работа с LDAP passdb backend = ldapsam:ldap://localhost #passdb backend = tdbsam #password server = localhost

# Корень LDAP сервера ldap suffix = dc=local,dc=corp,dc=ru

# Контейнер пользователей ldap user suffix = ou=Users # Контейнер групп ldap group suffix = ou=Group # Контейнер компьютеров ldap group suffix = ou=Computers

# объект администратора самбы в LDAP ldap admin dn = "cn=Directory Manager"

# Запрещаю удалять объекты ldap delete dn = no [b]ldap ssl = start tls[/b]

# При смене пользователем пароля SAMBA (по сети или # через smbpasswd автоматически менять пароль LDAP) ldap passwd sync = yes

[b] # отключаем поддержку SSL ldap ssl = off [/b] logon script = %U.bat

# Пустое значение - неперемещаемые профили logon path = logon drive = H:

# Поставить 254 при вводе в промышленную эксплуатацию os level = 60 preferred master = Yes domain master = Yes domain logons = Yes local master = yes cups options = raw

time server = yes

guest account = nobody guest ok = No

nt acl support = no client lanman auth = Yes client plaintext auth = Yes null passwords = yes

log level = 3 log file = /var/log/samba/%m.log max log size = 500

add user script = /usr/sbin/useradd -d /opt/pub/samba/homes/"%u" -g ntusers -m -k /etc/samba/skel_domain -s /sbin/nologon "%u" delete user script = /usr/sbin/userdel "%u" add group script = /usr/sbin/groupadd "%g" delete group script = /usr/sbin/groupdel "%g" delete user from group script = /usr/sbin/userdel "%u" "%g" add machine script = /usr/sbin/useradd -d /dev/null -g computers -c "Workstation (%u)" -s /sbin/nologon -M "%u"

wins support = yes # Диапазон номеров локальных пользователей, который будет # использован для динамического создания пользователей домена. winbind uid = 10000-20000 # Диапазон номеров локальных групп пользователей, который будет # использован для динамического создания групп пользователей # домена. winbind gid = 10000-20000 # Символ-разделитель, используемый для составления доменных имен # пользователей и располагающийся между именем домена и именем # пользователя. #winbind separator = + # Интервал времени (в секундах) между запросами winbind к PDC # в целях синхронизации списков пользователей и групп. winbind cache time = 10 # Шаблон имени домашних каталогов доменных пользователей, # автоматически присваиваемых каждому пользователю. Сами каталоги, # однако, динамически не создаются. Вместо переменой %D подставляется # имя домена, а вместо %U подставляется имя пользователя. template homedir = /home/%D/%U

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

#Настройки SAMBA для работы блокировок 1C и MS-Access kernel oplocks = yes level2 oplocks = no locking = no oplocks = no

Вопросы как раз по выделенному - как это правильно включить и как (и чем) в Федоре сформировать нужные ключи для организации безопасной связи. Или как в dirsrv это дело отключить (что, конечно, проще, но хуже по вполне понятным причинам).

Дополнение оперативное: - в блоке code выделение, увы не работает. Выделенное - это строки:

ldap ssl = start tls
# отключаем поддержку SSL
ldap ssl = off

Если ldap ssl = start tls, то соединения с LDAP-сервером нет: "Failed to issue the StartTLS instruction: Protocol error. Connection to LDAP server failed for the 1 try!"
А если ldap ssl - явно отключить, то возможны опсанные выше нюасы.
Ка включить правильно ldap ssl? Какие должно прописать под это дело параметры, пути к ключам, как сгенерить ключи? Ну а дальше я буду морщить мозг, как их скормить dirsrv.

Cruiser78 написал:

А если ldap ssl - явно отключить, то возможны опсанные выше нюасы.
Ка включить правильно ldap ssl? Какие должно прописать под это дело параметры, пути к ключам, как сгенерить ключи? Ну а дальше я буду морщить мозг, как их скормить dirsrv.

Опять у меня не работает кнопка "изменить" в конфе.

Итак, чего добился:
1. Сгенерировал ключевую пару и сделал сертификат для 389-ds. Скормил его серверу. Консоль 389-console работает несколько своеобразно, но да ладно...
2. Симптомы на схеме samba от 389-ds:
2.1. ssl отключен явно и на ldap и на samba (в ldap - галкой, в smb.conf - ldap ssl = off) и перезагрузка сервисов.
имеем: smbclient -L localhost -U user%password работает мгновенно, На добавлении юзера smbpasswd -a username спотыкается, "Failed to add entry for user..."
2.2. При включенном ssl на LDAP-сервере и отключенном на самбе - симптомы те же.
2.3. При включенном ssl на LDAP с требованием аутентификации клиента и включенном на самбе:
smbclient -L localhost пишет, что "Connection to localhost failed (Error NT_STATUS_CONNECTION_REFUSED)
smbpasswd -a username - вешается с сообщением "Failed to issue the StartTLS instruction: Connect error"
2.4. Если ssl включен на самбе и отключен на LDAP'е, то smbclient отрабатывает очеееень неспешно, по строчке в несколько секунд или вообще может обрубиться по таймауту. smbpasswd -a говорит, что Protocol error. И так же не работает.

Если я меняю схему на ту, что сделал ldif'ом из samba.schema, то при попытке заведения юзера (при включенном ssl на ldap и отключенном ssl в самбе) получаю сообщение, что пароль для юзера не могу изменить, нужно секурное соединение, но прочие атрибуты от самбы в схему добавляются. Чего не было в схемах от 389-ds. При включении ssl и в самбе и в ldap'е (с обязательной аутентификацией клиента) - имеем п.2.3. Если в LDAPе отключить требование обязательной аутентификации клиента, то smbclient вываливается по таймауту, smbpasswd -a username - вешается с сообщением "Failed to issue the StartTLS instruction: Connect error".

Ничего не понимаю...

#49283

389-ds врое как не воспринимает файлы schema. Не нашел, как их ему скормить

Попробуй по это статье
http://directory.fedoraproject.org/wiki/Howto:Samba
там скриптик надо скачать который сконвертит samba.shema в нужный для 389-ds вариант.
Я кстати тоже сделал кластер на 2 серверах правда у меня CentOS 5.5 и застрял на то что при входе в домен вин машины не отрабатывает скрипт добавления машины в систему. И кстати зачем секурное соединение? Я сделал чтобы данные лдап бродили по второму сетевому интерфейсу(там кроссовер).

#49293
Cruiser78 написал:
ldap user suffix = ou=Users

Это у Вас

ldap user suffix = ou=People

Это из примеров по ссылке, данной Strafer

Войдите или зарегистрируйтесь, чтобы ответить.