Установка OpenLDAP
Установка пакетов
# apt-get install openldap-servers openldap-clients \
nss_ldap pam_ldap postfix-ldap nscd
Редактирование /etc/slapd.conf
- Настройка подключения нужных схем. Нужны:
- стандартные core, cosine, inetorgperson, openldap, nis
- дополнительные autofs, samba3, qmail
- Подключение необходимых модулей поддержки баз. Установленную по-умолчанию dbm использовать, как показывает печальный опыт, не рекомендуется! Были проблемы с перезапуском сервера, регулярно и часто с неудовлетворительными результатами приходилось запускать db_restore - 2004-06-15 Ставить ldbm.
- Прописывание путей к сертификатам. См. OpenLDAP и SSL
- Прописывание параметров контроля доступа. {{Включение отдельного файла контроля доступа slapd.access.conf не рекомендуется - будут проблемы с помещением его в chroot jail}}. Пример настройки см. OpenLDAP access rules
- Задание типа кеширования пароля по-умолчанию. Если не планируется предоставлять пользователям LDAP входа в систему (через NSS_LDAP), то можно оставить SSHA. Иначе устанавливается тип CRYPT:
password-hash {CRYPT}
password-crypt-salt-format "$2a$08$%s"
- Задание суффикса корня базы: suffix "dc=domain,dc=ru"
- Задание rootdn "cn=admin,dc=domain,dc=ru"
- Задание пароля rootdn: rootpw {SSHA}XXXXXX
- Для получения хэша пароля использовать # slappasswd -h {SSHA} {{Так как rootdn имеет _полный_ доступ ко всей базе, этот аккаунт рекомендуется по завершению настройки LDAP отключить, закомментировав соответствующие строки.}}
Настройка разрешений и пр.
- Проверить подключение к интерфейсам в /etc/sysconfig/ldap. Там надо прописать URI типа ldap:/// для подключения ко всем интерфейсам, или ldap://host/ - для конкретных. Вид строки:
SLAPDURLLIST="'ldap://localhost/ ldaps://192.168.1.254/'"
Подобные кавычки _необходимы_.
Запустить сервер: service slapd start
.
Проверка функционирования:
# ldapsearch -H ldap://127.0.0.1 -x -b '' \
-s base '(objectclass=*)' namingContexts
# ldapsearch -H ldaps://127.0.0.1 -x -b '' \
-s base '(objectclass=*)' namingContexts
# ldapsearch -Z -H ldap://127.0.0.1 -x -b '' \
-s base '(objectclass=*)' namingContexts
# ldapsearch -ZZ -H ldap://127.0.0.1 -x -b '' \
-s base '(objectclass=*)' namingContexts
# ldapsearch -ZZ -H ldap://127.0.0.1 -x -b '' \
-s base -D <rootdn> -w <root password> \
'(objectclass=*)' namingContexts
- Запуск OpenLDAP при загрузке: {{Демон кэша nscd нужен для корректной работы lib_nss. См. список рассылки.}}
# chkconfig nscd on
# chkconfig slapd on
- Если что-либо не пошло, проверить конфигурацию. И ещё раз проверить. И проверить ACL. И ещё раз конфигурацию. Ошибки в конфигурации могут вызвать всё, вплоть до падения сервера при обращении к нему по одному из протоколов.
Начальная структура данных LDAP
- Загрузить в LDAP начальную структуру данных LDAP initial ldif ?:
# export ldap_pwd="LDAP root password"
# ldapadd -x -a -v -H ldap://127.0.0.1 \
-D "cn=root,dc=some-domain,dc=ru" -w $ldap_pwd \
-f dump.ldif
- Заполнение LDAP пользователями.
- Проверка получения данных с сервера LDAP:
# ldapsearch -x -v -H ldap://127.0.0.1 -b "ou=People,dc=domain,dc=ru" \
-D "cn=root,dc=some-domain,dc=ru" "(uid=naf)"
- Проверка возможности получения пароля с сервера LDAP:
# ldapsearch -x -v -H ldap://127.0.0.1 -b "ou=People,dc=domain,dc=ru" \
-D "cn=proxyuser,dc=some-domain,dc=ru" -w `cat /etc/ldap.secret` \
"(uid=naf)" userPassword
Примечания.
- Использовать протокол ldapi: не рекомендуется: через сокет IPC не может получать данные nscd. Т.е. при таком протоколе запущенный nscd не дает ничего получить из базы LDAP.
Дата создания: 2006-05-24 13:19:21 (Фетисов Н. А. (naf))
Последнее изменение: 2006-05-26 08:00:35 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 4 Все версии