Я устанавливаю openldap с phpldapadmin на 2 разных серверах CENTOS 7 со следующей конфигурацией:
сервер openldap:
firewall-cmd --permanent --add-service=ldap
firewall-cmd --permanent --add-port=389/tcp
firewall-cmd --reload
yum install -y openldap openldap-clients openldap-servers
slappasswd
установите пропуск и обратите внимание на хеш
в: /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
Изменить:
olcSuffix: dc =mydomain, dc = com
olcRootDN: cn =пользователь, dc =mydomain, dc = com
olcRootPW: {SSHA} therandomhashfromslappswd
в /usr/share/openldap-servers/slapd.ldif
Изменить:
Строка 134: n = auth "прочитано
dn.base = "cn =пользователь, dc =mydomain, dc = com "прочитано * none Строка 144:
olcSuffix: dc =mydomain, dc = com Строка 145: olcRootDN:
cn =пользователь, dc =mydomain, dc = com
Добавить:
olcRootPW: {SSHA} therandomhashfromslappswd
в /etc/openldap/ldap.conf
изменение:
БАЗА dc = mydomain, dc = com
URI ldap: //hostname.domain.local
Бегать:
slaptest -u
тестирование файла конфигурации прошло успешно
Я получаю ошибку контрольной суммы, как показано ниже, но игнорирую ее.
54a39508 ldif_read_file: ошибка контрольной суммы на "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
54a39508 ldif_read_file: ошибка контрольной суммы на "/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif"
Бегать:
systemctl enable slapd
systemctl start slapd
systemctl restart slapd
cd /etc/openldap/
vi base.ldif
Создайте
base.ldif
следующим образом:
dn: dc=mydomain,dc=com
objectClass: dcObject
objectClass: organization
o: mydomain.com
dc: mydomain
dn: ou=users,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: users
dn: ou=groups,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: group
наконец запустить:
ldapadd -x -W -D "cn=root,dc=mydomain,dc=com" -f base.ldif
systemctl restart slapd
Сервер phpldapadmin:
Бегать:
yum -y install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
systemctl restart httpd.service
systemctl start httpd.service
systemctl enable httpd.service
yum -y install php php-mbstring php-pear php-ldap
systemctl restart httpd.service
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum --enablerepo=epel -y install phpldapadmin
setsebool -P httpd_can_connect_ldap on
результат:
соединение работает нормально, я могу получить доступ к сайту phpldapadmin и войти через открытый сервер ldap.
Проблема:
Я получаю много ошибок: Автоматически удалил ObjectClass из шаблона - хотя он мне действительно нужен для создания acct и т. Д.
Кто-нибудь знает, что здесь не так?
Я потратил немало часов на выяснение :(
Пожалуйста, дайте мне знать, если кто-нибудь может мне помочь :)
Спасибо,
И
Эти ошибки не влияют на функциональность. Вы можете скрыть эти сообщения об ошибках шаблона, раскомментировав эту строку в /etc/phpldapadmin/config.php:
$config->custom->appearance['hide_template_warning'] = true;
Сообщение об ошибке кажется довольно ясным. inetOrgPerson
не определен в схеме вашего сервера. По умолчанию его там нет, и не похоже, что вы его добавили.
inetOrgPerson
схема зависит от cosine
схема, которая, в свою очередь, зависит от core
схема. Схема ядра может присутствовать по умолчанию.
ldapadd <auth for cn=config> -f /etc/openldap/schema/core.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/cosine.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/inetorgperson.ldif
Возможно, вам придется немного взломать /etc/openldap/slapd.d/cn=config.ldif
чтобы иметь возможность писать на cn=config
. Некоторые дистрибутивы не имеют разумных значений по умолчанию для OpenLDAP.