 
Установка OpenLDAP на Gentoo Linux
Статья рассказывает об установке и настройки сервера openldap и веб-интерфейса управления phpldapadmin на базе Gentoo Linux.
Установка OpenLDAP
Установка различных USE-флагов (не обязательно, зависит от ваших потребностей):
echo net-nds/openldap sasl overlays >> /etc/portage/package.use/openldap
Установка пакета openldap:
emerge net-nds/openldap -av
Получить шифр пароля (полученный шифр нужно будет указать в конфиге ниже):
slappasswd
После установки необходимо отредактировать файл конфигурации:
# Добавляем необходимые схемы данных
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
 
# Load dynamic backend modules:
modulepath      /usr/lib/openldap/openldap
# moduleload    back_shell.so
# moduleload    back_relay.so
# moduleload    back_passwd.so
# moduleload    back_null.so
# moduleload    back_monitor.so
# moduleload    back_meta.so
moduleload      back_hdb.so
# moduleload    back_dnssrv.so
 
# Разкомментироваться пример прав доступа
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to *
   by self write
   by users read
   by anonymous auth
 
## Настройки базы данных
database        hdb
suffix          "dc=server,dc=com"                     # задание название вашего корневого домена
checkpoint      32      30 # <kbyte> <min>
rootdn          "cn=Manager,dc=server,dc=com"          # пользователь с полными правами
rootpw          {SSHA}EzP6I82DZRnW+ou7lyiXHGxSpSOw2XO4 # шифр пароля (создаётся  с помощью slappasswd)
directory       /var/lib/openldap-ldbm
index           objectClass     eq
Далее отредактировать клиентский файл конфигурации:
BASE dc=server, dc=com URI ldap://127.0.0.1:389/ TLS_REQCERT allow
Отредактируем файл сервиса:
OPTS="-h 'ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
Запуск сервиса openldap:
/etc/init.d/slapd start
Проверка работоспособности, выполним поиск по каталогу:
ldapsearch -x -D "cn=Manager,dc=server,dc=com" -W
Должны получить похожий вывод:
- -x -D "cn=Manager,dc=server,dc=com" -W
- Enter LDAP Password: # extended LDIF # # LDAPv3 # base <> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1 
Теперь необходимо создать корневую запись. Для этого сформируем файл:
dn: dc=server,dc=com ObjectClass: dcObject ObjectClass: organization dc: server o : Server
Добавим эту запись в каталог:
ldapadd -x -D "cn=Manager,dc=server,dc=com" -W < root.ldif
Если всё прошло успешно то при поиске теперь должны получить следующие данные:
- -x -D "cn=Manager,dc=server,dc=com" -W
- Enter LDAP Password: # extended LDIF # # LDAPv3 # base <> with scope subtree # filter: (objectclass=*) # requesting: ALL # # server.com dn: dc=server,dc=com objectClass: dcObject objectClass: organization dc: server o: Server # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 
Установка веб-интерфейса (phpldapadmin)
Установка необходимый расширений для php:
echo dev-lang/php hash ldap pcre session xml nls >> /etc/portage/package.use/php
Пересборка php с нужными расширениями:
emerge dev-lang/php -1Nav
Установка пакета:
emerge net-nds/phpldapadmin -av
Возможно потребуется размаскировать пакет:
echo net-nds/phpldapadmin >> /etc/portage/package.keywords/phpldapadmin
Далее необходимо настроить phpldapadmin. Если установка проводилась с выключенным флагом vhosts то конфиг находиться здесь /var/www/localhost/htdocs/phpldapadmin/config/config.php
Файл конфигурации по-умолчанию вполне подходит для начала, поэтому необходимо произвести настройку вашего веб-сервера и веб-интерфейс будет готов к работе.
Связка с nginx
Пример настройки для веб-сервер nginx.
server {
        listen          *:80;
        server_name     phpldapadmin.server.com;
 
        index index.php;
 
        root /var/www/localhost/htdocs/phpldapadmin;
 
        location ~ \.php$ {
                fastcgi_pass   unix:/var/run/spawn-fcgi/spawn-fcgi.admin.sock;
        }
}
Настройка php+spawn-fcgi выходит за рамки этого howto.
Теперь веб-интерфейс к openldap будет доступен по адресу http://phpldapadmin.server.com



Обсуждение
But I can't add the policy, I join the include and modulepath ppolicy.so in my slapd.conf When I join that will show adding new entry "cn=ppolicy,cn=schema,cn=config" ldap_add: Insufficient access (50). But I'm the admin only. Please give me something advice Thank you.