Ключевые слова:samba, ldap, auth, sync, freebsd, (найти похожие документы)
From: Григорьев Михаил <neo@ucsnet.ru.>
Newsgroups: email
Date: Mon, 12 May 2005 14:31:37 +0000 (UTC)
Subject: Настраиваем синхронизацию паролей Samba и Heimdal в OpenLDAP Server
В организации существует сервер FreeBSD 5.4, на котором установлен
OpenLDAP Server и Samba Server.
Имеем внутренний настроенный DNS с доменом domain.ru
OpenLDAP сервер назовем ldap.domain.ru
Задача: Организовать синхронизацию Samba и Heimdal хешированных паролей.
В системе установлены следующие пакеты:
openldap-server-2.2.26
heimdal-0.6.3_2
samba-3.0.14a,1
Суть синхронизации заключается в следующем:
При вызове программы:
# ldappasswd -h ldap.domain.ru -x -D "cn=Manager,o=MyORG,c=RU" \
-w PASSWORD -s USER_NEW_PASSWORD "uid=Neo,ou=Users,o=MyORG,c=RU"
Происходит вызов операции по смене пароля из EX_OP - Extended
Operation, это целое семейство нестандартных LDAP операции,
которые не вписываются в термины ldap_add/ldap_modify/ldap_search
В результате вызова ldappasswd происходит смена пароля пользователя,
конкретно модифицируется значение поля userPassword.
Но для наших целей необходимо обновременно с модификацией поля
userPassword, модифицировать поля и Samba и Heimdal.
Для этих целей в OpenLDAP Server 2.3.3beta был написан модуль smbk5pwd.
Для того чтобы воспользоваться этим модулем нам необходимо
собрать его под FreeBSD, что мы и сделаем.
Сборка модуля smbk5pwd:
Предпосылки:
Обязательным условием функционирования модуля является сборка
OpenLDAP Server'а с WITH_MODULES=yes (см. /etc/make.conf)
Качаем уже исправленный модуль:
# fetch http://novell.chel.ru/Project/OpenLDAP/smbk5pwd.tar.gz
Распаковываем его в
/usr/ports/net/openldap22-server/work/openldap-2.2.26/contrib/slapd-modules
Примечание: Точный путь распаковки зависит от номера версии
установленного у вас OpenLDAP сервера.
# mv smbk5pwd.tar.gz /usr/ports/net/openldap22-server/work/openldap-2.2.26/contrib/slapd-modules
# cd /usr/ports/net/openldap22-server/work/openldap-2.2.26/contrib/slapd-modules
# tar -zxf smbk5pwd.tar.gz
# rm smbk5pwd.tar.gz
Теперь необходимо отредактировать Makefile в зависимости от ваших потребностей:
# cd smbk5pwd
# vi Makefile
Ищем там такую строчку:
DEFS=-DDO_SAMBA -DO_KRB5
В зависимости от того стоит ли у вас heimdal или samba изменяем её на нужное.
Например, если стоит только одна samba, то строка примет такой вид:
DEFS=-DDO_SAMBA
Собираем модуль smbk5pwd так:
# gmake
Если в процессе сборки не возникло ошибок, то переходим к следующему пункту.
Установка модуля smbk5pwd:
# cp .libs/smbk5pwd.so.0 /usr/local/libexec/openldap/smbk5pwd.so
Редактируем конфиг OpenLDAP Server'а:
# vi /usr/local/etc/openldap/slapd.conf
Добавляем туда следующие строки:
1) После строки:
# Load dynamic backend modules:
добавляем
moduleload /usr/local/libexec/openldap/smbk5pwd.so
2) После строки:
database bdb
добавляем
overlay smbk5pwd
Перезапускаем OpenLDAP Server
# sh /etc/rc.d/slapd restart
или
# sh /usr/local/etc/rc.d/slapd restart
Проверяем запущен ли OpenLDAP Server:
# ps -auxw |grep openldap
Проверка работоспособности модуля:
Для проверки работы модуля синхронизации воспользуемся
стандартной утилитой ldappasswd:
# ldappasswd -h ldap.domain.ru -x -D "cn=Manager,o=MyORG,c=RU" \
-w PASSWORD -s USER_NEW_PASSWORD "uid=Neo,ou=Users,o=MyORG,c=RU"
Таким образом, имеем работающий smbk5pwd модуль для синхронизации
паролей Samba и Heimdal.
Составил: Григорьев Михаил (neo@chel.skbkontur.ru, neo@ucsnet.ru)
Благодарности: Шипицин Илья