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

    Общий рейтинг статьи: 0 (проголосовало 0 )
    Опубликовано:  [просмотров 600]


    Один из моих текущих проектов напрямую связан с 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 файлах конфигурации сервера.


    Обсуждение статьи

    Ваш комментарий: