![]() ![]() | ![]() |
Главная | ![]() | ![]() |
Проекты | ![]() | ![]() |
Статьи | ![]() | ![]() |
PSP | ![]() | ![]() |
Форум | ![]() | ![]() |
О сайте | ![]() | ![]() |
Поддержать проект | ![]() | ![]() |
Статьи |
Настройка синхронизации базы паролей для 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. |