Несколько интересных особенностей OpenLDAP (slapd)

HELP-ME-24.COM (Freelance Team), Черноусов Антон

Один из моих текущих проектов напрямую связан с Linux - реализацией сервера каталогов LDAP и за время работы у меня скопилось несколько интересных заметок которые,возможно, будут вам полезны. Сразу скажу, что речь пойдет о дистрибутиве Centos 7.

Несколько интересных особенностей OpenLDAP

1. Сменить порт по умолчанию на котором "слушает" LDAP и разрешить доступ из локальной сети

В файле /etc/sysconfig/slapd измените параметр:

SLAPD_URLS="ldap://0.0.0.0:1389/"

Открываем доступ к этому порту из внешней сети:

# firewall-cmd --permanent --zone=public --add-port=1389/tcp
# firewall-cmd --reload

2. Изменить DN базы данных (по умолчанию после установки olcSuffix: dc=my-domain,dc=com)

Во-первых, создайте хэш пароля администратора при помощи команды:

# slappasswd -h {SHA} -s SuperSecretFile

Во-вторых, не обращайте внимания на инструкции где призывают модифицировать основные файлы только при помощи ldapmodify. Просто отредактируйте файл olcDatabase={2}hdb.ldif изменив параметры подключения администратора:

olcRootDN: cn=Manager,dc=my-domain,dc=com
olcRootPW: {SHA}W0WS2xNnQP3e6IjwsnuXveR8JVo=

Так-же, вас скорее всего, не устроит корневой домен dc=my-domain,dc=com и вы можете просто изменить его во всех ldif-файлах. После чего выполните проверку конфигурации командой:

# slaptest -u

На вывод предупреждений можете не обращать внимания. Если проверка прошла успешно, то перезапустите демона командой:

# service slapd restart

И вот теперь момент, который толком нигде не описан, а именно, помимо изменения настроек необходимо загрузить данные о корне DC в LDAP-базу при помощи команды ldapadd:

# ldapadd -x -W -D "cn=admin,dc=my_domain" -f ./domain.ldiff

Файл содержит следующие записи:

dn: dc=my_domain
objectClass: dcObject
objectClass: organization
o: my_domain
dc: my_domain

И только теперь можно подключаться при помощи графического клиента и создать другие записи.

3. Запретить анонимный доступ и создать пользователя с правами "Только чтение"

Для полного запрета анонимных подключений добавьте в файл /etc/openldap/slapd.d/cn=config.ldif параметр (сразу после cn: config):

olcDisallows: bind_anon

Создайте пользователя ldap (или другого, которому назначим права на чтение) при помощи ldiff-файла или в графической среде Apache Directory Studio:

dn: cn=ldap,dc=my_domain
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: zimbra
userPassword:: e3NzaGF9SnhRT2Ruc2ttZmpKN1JjZUxjVllwSnhwQ1RUUHdyQ3JXNzBabmc9PQ==
description: LDAP viewer

Параметр userPassword создаем командой из пункта 2. В стандартной конфигурации этот пользователь будет иметь права только на чтение. Права доступа назначаются в соответствующих ldiff файлах конфигурации сервера.

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий