1. Установим сервер и дадим ему имя DS2. Домен который будет обслуживать сервер назовем LOCAL.NET
3. Правим hostname
Пример /etc/hostnameds
4. Правим /etc/hosts
Пример /etc/hosts127.0.0.1 localhost
127.0.1.1 ds.local.net ds5.Убедимся в том, что прописан домен поиска resolve.conf
Пример /etc/resolve.confdomain local.net
search local.net
nameserver dns.local.net6.Проверяем запись о домене поиска в interfaces
Пример /etc/network/interfacesdns-search local.net
7. Обновляем репозитории apt
aptitude update
8. Устанавливаем LDAP Server, на текущий момент версия 2.4.18 и утилиты к нему
aptitude install ldap-server ldap-utils
9. Перейдем в каталог схем LDAP сервера
cd /etc/ldap/schema
10. Подключаем основные схемы
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldifЕсли все удачно увидим ответ следующего вида
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"11. Подключаем внутренние модули и создаем базу данных для LDAP
Создаем файл db.ldif:# Подключаем модуль для динамической загрузки
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb# Создаем базу данных для нашего домена
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=local,dc=net
olcRootDN: cn=admin,dc=local,dc=net
olcRootPW: ваш password у меня example
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
12. Сохраняем файл13. Подгружаем модуль и инициализируем базу данных
ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcDatabase={1}hdb,cn=config"14. Генерируем пароль в MD5:
slappasswd -h {MD5}
скопируем результат вывода
{MD5}Gnmk1g3mcY6OWzJuM4rlMw==
15. Создаем базовый DN и пользователя admin
Внесем в файл base.ldifследующие параметры:dn: dc=local,dc=net
objectClass: dcObject
objectclass: organization
o: local.net
dc: local
description: My LDAP Rootdn: cn=admin,dc=local,dc=net
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== #Наш пароль в MD5
description: LDAP administratorСоздаем базовый DN
ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "dc=local,dc=net"
adding new entry "cn=admin,dc=local,dc=net"16. Устанавливаем права доступа на CN=config
Пропишем в файл acl-config.ldif следующие права:dn: cn=config
changetype: modify
delete: olcAuthzRegexpdn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccessdn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcRootDNdn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=configdn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccessУстанавливаем права на cn=config
ldapadd -Y EXTERNAL -H ldapi:/// -f acl-config.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
modifying entry "olcDatabase={-1}frontend,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
17. Устанавливаем права доступа к корню cn=config
Установим права на корень в файле root-acl.ldifdn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange by \
dn="cn=admin,dc=local,dc=net" write by anonymous auth by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=local,dc=net" write by * readМодифицируем права
ldapmodify -x -D cn=admin,cn=config -W -f root-acl.ldif
Enter LDAP Password: example
modifying entry "olcDatabase={1}hdb,cn=config"Все OpenLDAP готов к работе
18. Ставим phpldapadmin
aptitude install phpldapadmin
19. После установки заходим по адресу http://имя сервера/phpldapadmin
20. Если все правильно установилось то увидим приглашение login
21. Если видим ошибку вида
ERROR! E_STRICT: Declaration of AJAXTree::draw_dn() should be compatible with that of PLMTree::draw_dn()
То в файле /usr/share/phpldapadmin/lib/AJAXTree.php
Находим
protected function draw_dn($dn,$level=0,$first_child=true,$last_child=true)
Меняем
protected function draw_dn($dn,$level,$first_child=true,$last_child=true)
22. Правим файл настроек phpldapadmin
Редактируем /usr/share/phpldapadmin/config/config.phpМеняем
'dc=example,dc=com'
на
'dc=local,dc=net’23. Проверяем http://имя сервера/phpldapadmin
URL:
Обсуждается: http://www.opennet.me/tips/info/2337.shtml
Установка slapd и PhpLdapAdmin столько же проста что и LAMP
а вот что дальше делать с ним делать?
клиенты, софт для ldap вот что важно, сложно и интересно
Денис, а ты не в Черноморнефтегазе работаешь, в Симферополе? Был у меня Денис один знакомый, может это ты?
почему линоксоиды часто настолько безграмотны?Ещё бы понял, почему вендузятники, но ........
о_0
http://www.pincer.narod.ru/
Да я работаю в Черноморнефтегазе
В LDAP можно хранить все например конфиг DHCP
пример здесь:
http://forum.ubuntu.ru/index.php?topic=87499.0
И еще много чего можно хранить в LDAP.
Меретину привет :)
Представились что ли?
Денис, вы молодец, на пальцах написали как создать LDAP каталог. Спасибо!