Русская версия English version  
Статьи
Настройка синхронизации базы паролей для Samba и Heimdal (Kerberos 5) в OpenLDAP Server

Автор: Григорьев Михаил
Благодарности: Шипицин Илья
Редакция от 12.05.2005
Статья так же доступна на сайте OpenNet

В организации существует сервер 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.


NVStat Team © 2001 - 2016 Григорьев Михаил