Я устанавливаю 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
Change:
olcSuffix: dc=mydomain,dc=com
olcRootDN: cn=user,dc=mydomain,dc=com
olcRootPW: {SSHA}therandomhashfromslappswd
in /usr/share/openldap-servers/slapd. ldif
Изменение:
Строка 134: n=auth" прочитан
dn. base="cn=user,dc=mydomain,dc=com" read by * none Line 144:
olcSuffix: dc=mydomain,dc=com Line 145: olcRootDN:
cn=user,dc=mydomain,dc=com
add:
olcRootPW: {SSHA}therandomhashfromslappswd
in /etc/openldap/ldap. conf
change:
BASE dc=mydomain,dc=com
URI ldap://hostname.domain.local
Run:
slaptest -u
config file testing succeeded
I receive checksum error as following, but i ignore it.
54a39508 ldif_read_file: checksum error on "/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 сервер.
Проблема:
Я получаю много ошибок: Automatically removed ObjectClass from template - while I actually need it to create acct, etc.
Кто-нибудь знает, что здесь не так?
Я потратил довольно много часов на выяснение :(
Пожалуйста, дайте мне знать, если кто-то может мне помочь :)
Спасибо,
AnD
Сообщение об ошибке кажется довольно ясным. inetOrgPerson
не определен в схеме вашего сервера. По умолчанию его там нет, и похоже, что вы его не добавили. Схема
inetOrgPerson
зависит от схемы косинуса
, которая, в свою очередь, зависит от ядра
] схема.Схема ядра может присутствовать по умолчанию.
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 = конфигурация
. Некоторые дистрибутивы не имеют разумных значений по умолчанию для OpenLDAP.
Эти ошибки не влияют на функциональность. Вы можете скрыть эти шаблонные сообщения об ошибках, не комментируя эту строку в файле /etc/phpldapadmin/config.php:
$config->custom->appearance['hide_template_warning'] = true;