Глава 4. LDAP — Сервис директорий

Содержание

4.1. LDAP против NIS
4.2. Структура дерева каталога LDAP
4.3. Конфигурирование сервера LDAP с помощью YaST
4.4. Конфигурирование клиента LDAP с помощью YaST
4.5. Конфигурация пользователей и групп LDAP в YaST
4.6. Просмотр дерева каталогов LDAP
4.7. Конфигурация сервера LDAP вручную
4.8. Управление данными в каталоге LDAP
4.9. Дополнительная информация

Облегченный протокол доступа к каталогам (LDAP) — это набор протоколов, созданный для доступа и поддержания информационных каталогов. LDAP может использоваться для различных целей, например, управление пользователями и группами, управление системной конфигурацией или управление адресами. В этом разделе дается краткое описание как работает OpenLDAP и как управлять данными LDAP с помощью YaST.

В сетевом окружении важно сохранить ценную информацию структурированной и быстро доступной. Это может быть сделано с помощью такого сервиса каталогов, как общие желтые страницы, хранящие информацию доступной в отлично структурированной форме, приспособленной для быстрого поиска.

В идеальном случае, центральный сервер хранит данные в каталоге и распределяет их всем клиентам по определенному протоколу. Данные структурированы в таком виде, который позволяет широкому кругу приложений получить доступ к ним. Таким образом, отпадает необходимость в хранении клиентом каждого календаря или базы электронной почты - вместо этого будет доступен центральный репозиторий. Использование открытого и стандартизированного протокола, как LDAP, гарантирует возможность получения доступа к информации для различных приложений.

Каталог в этом контексте — это тип базы данных, оптимизированного на чтения и поиск:

Дизайн сервиса каталогов, как LDAP, не подразумевает поддержки сложных модификаций и механизмов запросов. Все приложения, обращающиеся к этому сервису, должны получать доступ к нужным данным легко и быстро.

4.1. LDAP против NIS

Администраторы Unix-систем традиционно используют сервис NIS (Network Information Service, Информационная служба сети) для разрешения имен и предоставления данных по сети. Данные конфигурации содержатся в файлах group, hosts, mail, netgroup, networks, passwd, printcap, protocols, rpc и services в каталоге /etc, которые предоставляются всем пользователям в сети. Эти файлы могут поддерживаться без особых усилий, так как они состоят из простого текста. Обработка большого количества данных, однако, становится все более и более сложной из-за отсутствия структурирования. NIS разрабатывался для Unix платформ и, потому, не очень подходит для централизованного управления в гетерогенных сетях.

В отличие от NIS, сервис LDAP не ограничен только сетями UNIX. Серверы Windows (начиная с 2000) поддерживают LDAP, как сервис каталогов. Прикладные задачи, описанные выше, дополнительно поддерживаются в не-Unix сетях.

Принцип LDAP может быть применен к структуре любых данных, которая может централизованно администрироваться. Примеры нескольких приложений:

  • Применение в качестве замены сервиса NIS

  • Перенаправление почты (postfix, sendmail)

  • Адресные книги для таких почтовых клиентов, как Mozilla, Evolution и Outlook

  • Администрирование зоны, написанной для сервера имен Bind9

  • Аутентификация пользователей совместно с Samba в гетерогенных сетях

Этот список может быть расширен, поскольку LDAP более гибкая вещь, чем NIS. Ясная иерархическая структура облегчает администрирование большого количества данных, так как они могут быть найдены значительно проще.

4.2. Структура дерева каталога LDAP

Для лучшего понимания, как работает LDAP и как хранятся данные, очень важно понимать, каким образом данные организованы на сервере и как эта структура позволяет обеспечить быстрый доступ к необходимым данным. Для успешной установки LDAP необходимо ознакомиться с используемой терминологией. Эта секция позволяет понять основной вывод дерева и описывает терминологию в контексте LDAP. Эту секцию можно пропустить, если вы уже имеете некоторое представление о работе LDAP и просто хотите научиться установке LDAP-окружения в . Прочитайте Раздел 4.3, «Конфигурирование сервера LDAP с помощью YaST» или Раздел 4.7, «Конфигурация сервера LDAP вручную».

Каталог LDAP имеет структуру дерева. Все записи (называемые объектами) каталога имеют определенную позицию в этой иерархии. Эта иерархия называется Информационным деревом справочника (DIT, Directory Information Tree). Полный путь к необходимой записи, который однозначно идентифицирует ее, называется характерное имя (distinguished name) или DN. Единый узел вдоль пути к этой записи называется (relative distinguished name) или RDN.

Отношения элементов в пределах дерева LDAP хорошо видны на рисунке Рисунок 4.1, «Структура каталога LDAP».

Рисунок 4.1. Структура каталога LDAP

Структура каталога LDAP

Полная диаграмма является вымышленным информационным деревом каталога. Изображены записи на третьем уровне. Каждая запись соответствует одному прямоугольнику на картинке. Полное distinguished name для вымышленного пользователя Geeko Linux будет, в данном случае, cn=Geeko Linux,ou=doc,dc=example,dc=com. Оно создается путем добавления RDN cn=Geeko Linux к DN предыдущей записи ou=doc,dc=example,dc=com.

Типы объектов, которые хранятся в DIT, в общем случае определяются, следуя Схеме (Schema). Тип объекта определяется классом объекта (object class). Класс объекта определяет, какие свойства связанного объекта должны или могут быть назначены. Схема, в свою очередь, должна содержать определения всех классов объекта и свойства, использующиеся в нужном прикладном сценарии. Существует несколько общих схем (RFC 2252 и 2256). LDAP RFC определяют несколько наиболее часто используемых схем (см., например, RFC4519). Кроме того, существует много других схем (например, замена Samba, NIS и т.д.). При этом можно самому создавать схемы или использовать несколько дополняющих друг друга схем (если это требуется окружением, в котором будет эксплуатироваться LDAP-сервер).

В Таблица 4.1, «Общий блок используемых классов объектов и атрибутов» показан небольшой обзор классов объекта из core.schema и inetorgperson.schema, использующихся в примере, включая свойства и действительные значения свойств.

Таблица 4.1. Общий блок используемых классов объектов и атрибутов

Класс объекта

Значение

Пример записи

Необходимые свойства

dcObject

domainComponent (именованные компоненты домена)

example

dc

organizationalUnit

organizationalUnit (организационная единица)

doc

ou

inetOrgPerson

inetOrgPerson (персональные данные)

Geeko Linux

sn and cn


В Пример 4.1, «Выдержка из schema.core» показана часть из директивы схемы с объяснениями.

Пример 4.1. Выдержка из schema.core

attributetype (2.5.4.11 NAME ( 'ou' 'organizationalUnitName') 1
       DESC 'RFC2256: organizational unit this object belongs to' 2
       SUP name ) 3

...
objectclass ( 2.5.6.5 NAME 'organizationalUnit' 4
       DESC 'RFC2256: an organizational unit' 5
       SUP top STRUCTURAL 6
       MUST ou 7
MAY (userPassword $ searchGuide $ seeAlso $ businessCategory 8
  $ x121Address $ registeredAddress $ destinationIndicator 
  $ preferredDeliveryMethod $ telexNumber 
  $ teletexTerminalIdentifier $ telephoneNumber 
  $ internationaliSDNNumber $ facsimileTelephoneNumber 
  $ street $ postOfficeBox $ postalCode $ postalAddress 
  $ physicalDeliveryOfficeName
  $ st $ l $ description) )
  ...

Тип свойства organizationalUnitName и переданный класс объекта organizationalUnit в данном случае служат примером.

1

Имя свойства, его уникальный OID (идентификатор объекта, object identifier (цифровой)) и аббревиатура свойства.

2

Краткое описание свойства с помощью DESC. Соответствующий RFC, на котором основано данное определение, также упоминается в этой строке.

3

SUP указывает на соподчинённый тип свойства, к которому принадлежит это свойство.

4

Описание класса объекта organizationalUnit, как и в описании свойства, с OID и имени класса объекта.

5

Краткое описание класса объекта.

6

Запись SUP top указывающая, что этот класс объекта не зависит от другого класса объекта.

7

Начиная с MUST перечисляются все типы свойств, которые должны использоваться в связке с объектом типа organizationalUnit.

8

Начиная с MAY перечисляются все типы свойств, которые позволено связывать с этим классом объекта.

Очень хорошим введением с описанием использования схем можно найти в документации к openLDAP. После установки, она доступна в /usr/share/doc/packages/openldap2/guide/admin/guide.html.

4.3. Конфигурирование сервера LDAP с помощью YaST

Используйте YaST для первоначальной настройки сервера LDAP. Типичные случаи использования серверов LDAP включают в себя: управление аккаунтами пользователей и задание настроек почты, серверов DNS и DHCP.

Рисунок 4.2. YaST: Настройка сервера LDAP

YaST: Настройка сервера LDAP

Рисунок 4.3. YaST: Сервер LDAP — Новая база данных

YaST: Сервер LDAP — Новая база данных

Для установки сервера LDAP для управления аккаунтами пользователей, потребуется установить пакеты yast2-ldap-server и openldap2. Сделайте следующее:

  1. Запустите YaST от имени root и выберите Сетевые службы+Сервер LDAP, чтобы вызвать диалог первоначальной настройки.

  2. Задайте параметры вашего LDAP-сервера в разделе Общие настройки (их можно будет изменить позднее) — см. Рисунок 4.2, «YaST: Настройка сервера LDAP»:

    1. Укажите необходимость автоматического запуска LDAP-сервера во время загрузки системы.

    2. Если необходимо, чтобы сервер LDAP предоставлял свои возможности через SLP, выберите Регистрироваться в демоне SLP.

    3. Задайте Настройки брандмауэра.

    4. Нажмите Далее.

  3. Выберите тип сервера: обособленный сервер, основной сервер репликации или вторичный сервер.

  4. Выберите опции безопасности (Настройки TLS).

    Строго рекомендуется Включить TLS. Дополнительную информацию см. в Шаг 4.

    [Warning]Шифрование паролей

    Активация TLS обеспечивает шифрование пролей передаваемых по сети. Если эта опция не активна, то пароли будут передаваться в не зашифрованном виде.

    Так же рассмотрите возможность применения сертификатов и SSL.

  5. Подтвердите Основные настройки базы данных введя Пароль администратора LDAP и нажмите Далее — см. Рисунок 4.2, «YaST: Настройка сервера LDAP».

  6. Проверьте Итог настройки сервера LDAP и нажмите Готово, чтобы закрыть мастер настройки.

Рисунок 4.4. YaST: Настройка сервера LDAP

YaST: Настройка сервера LDAP

Для изменения параметров конфигурации запустите модуль Сервер LDAP и в левой панели выберите Общие настройки, чтобы перейти к этому подпункту — см. Рисунок 4.4, «YaST: Настройка сервера LDAP»:

  1. Подпункт Настройки уровня журнала позволяет настроить уровень регистрируемых в журнале событий (уровень подробности) сервера LDAP. Добавьте или удалите из предопределенного списка параметры ведения журнала в соответствии с вашими потребностями. Чем больше опций будет включено, тем быстрее будут разрастаться лог-файлы.

  2. Укажите какие типы соединений серверу разрешено принимать в Разрешить/запретить возможности. Среди них:

    Запросы связи LDAPv2

    Эта опция позволяет запросы на соединение (bind requests) от клиентов, использующих предыдущую версию протокола (LDAPv2).

    Анонимная связь при непустых реквизитах доступа

    Обычно сервер LDAP запрещает любые попытки аутентификации с пустыми регистрационными данными (DN или пароль). Включение этой опции, однако, делает возможным соединение с паролем и без DN для установки анонимного соединения.

    Не прошедшая аутентификацию связь при непустом DN

    Включение этой опции делает возможным соединение без аутентификации (анонимно), используя DN, но без пароля.

    Неаутентифицированные операции обновления для обработки

    Включение этой опции позволяет делать неаутентифицированные (анонимные) модификации. Доступ ограничивается согласно ACL и другими правилами.

  3. Разрешить/запретить возможности также позволяет установить флаги сервера. Среди них:

    Запретить приём анонимных запросов связи

    Сервер больше 
не будет принимать анонимные соединения. Заметьте, что это не запрещает анонимный 
доступ к каталогам.

    Отключить аутентификацию Simple Bind

    Полное отключение аутентификации Simple Bind.

    Отключить перевод сессии в анонимное состояние перед операциями StartTLS

    Сервер больше не будет принудительно переводить аутентифицированное соединение обратно в анонимное состояние при получении операции StartTLS.

    Запретить StartTLS, если аутентифицировано

    Сервер будет отклонять операцию StartTLS для уже аутентифицированных соединений.

  4. Для настройки безопасного соединения между клиентом и сервером перейдите к подпункту Настройки TLS:

    1. Отметьте Включить TLS для активации шифрования по протоколам TLS и SSL клиент-серверных соединений.

    2. Нажмите Импорт сертификата, чтобы указать точный путь его расположения или активируйте Использовать общий сертификат сервера. Если пункт Использовать общий сертификат сервера не доступен, так как сертификат не был создан во время установки, то нажмите Запустить модуль управления CA. Дополнительную информацию см. в Раздел 15.2, «YaST Modules for CA Management».

Включить файл схемы в конфигурации сервера можно выбрав подпункт Файлы схем в левой части диалога. По умолчанию указанные файлы схемы относятся к серверу, являющемуся для YaST источником данных об учетных записях пользователей.

YaST поддерживает традиционные файлы схем (как правило, с именем, заканчивающимся на .schema) или LDIF-файлы содержащие описание схемы в LDIF формате OpenLDAP.

Рисунок 4.5. YaST: Сервер LDAP — Настройка базы данных

YaST: Сервер LDAP — Настройка базы данных

Чтобы настроить базы данных вашего LDAP-сервера, проделайте следующее:

  1. Выберите пункт Базы данных в левой части диалога.

  2. Нажмите Добавить базу данных, чтобы добавить базу данных.

  3. Введите необходимые данные:

    Основной DN

    Введите основной DN вашего сервера LDAP.

    DN администратора

    Укажите DN администратора отвечающего за этот сервер. Если выбрать Добавить базовый DN, то достаточно указать только cn администратора — система подхватит остальные значения автоматически.

    Пароль администратора LDAP

    Введите пароль администратора базы данных.

    Использовать эту базу данных по умолчанию для клиентов OpenLDAP

    Выберите эту опцию, если нужно.

  4. В следующем диалоге задайте параметры репликации.

  5. В следующем диалоге включите возможность политик паролей для обеспечения дополнительной безопасности для сервера LDAP:

    1. Выберите Включить политику паролей, чтобы задать политики для паролей.

    2. Активируйте Хэшировать текстовые пароли, чтобы при изменении или создании пароля, его представление в открытом виде хэшировались перед записью в базу данных.

    3. Пункт Выявить состояние "Учётная запись заблокирована" обеспечивает вывод соответствующего сообщение об ошибке для запросов к заблокированным аккаунтам.

      [Warning]Блокирование учетных записей в средах с повышенными требованиями к безопасности

      Не используйте опцию Выявить состояние "Учётная запись заблокирована", если ваше окружение имеет повышенные требования к безопасности, потому что сообщение «Учётная запись заблокирована» предоставляет важную с точки зрения безопасности информацию, которая может эксплуатироваться потенциальными злоумышленниками.

    4. Введите DN объекта политики по умолчанию. Для использования DN, отличного от предложенного YaST, укажите здесь нужное значение. Иначе принимаются значения, установленные по умолчанию.

  6. Завершите конфигурирование базы данных, нажав Готово.

Если политики паролей не были выбирали, то сервер, в данный момент, готов к запуску. В противном случае, продолжите конфигурирование политик паролей. Если был выбран объект политики паролей, которого не существует, то YaST создаст его:

  1. Введите пароль сервера LDAP. В навигационной панели ниже Базы данных откройте объект вашей базы и активируйте пункт Настройка политики пароля.

  2. Убедитесь, что пункт Включить политику паролей активирован. Затем нажмите Редактировать политику.

  3. Сформируйте политику изменения паролей:

    1. Определите количество паролей, хранящихся в истории. Сохраненные пароли не могут использоваться пользователем несколько раз.

    2. Определите, будут ли пользователи иметь возможность менять свои пароли и будет ли им нужно задать новый пароль, после его сброса администратором. Дополнительно, при изменении пароля можно затребовать ввод старого пароля.

    3. Определите, какую сложность должен иметь пароль. Задается минимальная длина, меньше которой пароль не принимается. Если выбрано Принимать не проверяемые пароли, то пользователи смогут использовать зашифрованные пароли, но в этом случае их проверка не может быть выполнена. Если выбрано Принимать только проверенные пароли, то пароли, не удовлетворяющие всем критериям сложности, будут отклоняться.

  4. Определите политику устаревания паролей:

    1. Определите минимальный срок дествия паролей (время, которое должно пройти до появления возможности изменить текущий пароль) и максимальный возраст пароля.

    2. Определите временной промежуток используемый для вывода предупреждения о истечении времени действия пароля перед его фактическим устареванием.

    3. Установите количество выводимых предупреждений об окончании срока действия пароля перед тем, как он станет недействительным.

  5. Определите политики блокировок:

    1. Разрешите блокировку паролей.

    2. Укажите количество неудачных попыток, по исчерпании которых пароль блокируется.

    3. Укажите, на какое время будет блокироваться пароль.

    4. Укажите, как долго неудачные попытки ввода паролей будут храниться в кэше.

  6. Сохраните сделанные настройки политик паролей, нажав OK.

Чтобы отредактировать ранее созданную базу данных, выберите ее DN в дереве слева. В правой части окна, YaST покажет диалог, подобный тому, который использовался при создании новой базы данных (с главным отличием в том, что запись основного DN неактивна и не может быть изменена).

После того, как все необходимые настройки в конфигурацию сервера LDAP будут внесены, нажмите Готово. Ваш сервер LDAP готов к работе. Для тонкой настройки используйте механизм динамического конфигурирования OpenLDAP.

Механизм динамического конфигурирования OpenLDAP хранит настройки в самой базе данных LDAP. Она состоит из набора .ldif файлов в каталоге /etc/openldap/slapd.d. Доступа к этим файлам напрямую не требуется. Для доступа к настройкам можно воспользоваться модулем YaST Сервер LDAP (пакет yast2-ldap-server) или клиентом LDAP с помощью команд: ldapmodify или ldapsearch. Дополнительную информацию об этом механизме см. в Руководстве администратора OpenLDAP.

4.4. Конфигурирование клиента LDAP с помощью YaST

YaST включает в себя модуль для установки управления пользователями через LDAP. Если эта возможность не была выбрана во время установки, то запустите модуль, выбрав Сетевые службы+Клиент LDAP. YaST автоматически произведет изменения для PAM и NSS, необходимые для LDAP, и установит необходимые файлы. Просто подключите клиента к серверу и пусть YaST управляет пользователями через LDAP. Эти действия описаны в Раздел 4.4.1, «Стандартная процедура настройки».

Используйте Клиент LDAP для последующего задания настроек в модулях YaST по настройке групп и пользователей. Сюда относится задание настроек по умолчанию для новых пользователей и групп, а также количество и характер атрибутов, назначенных пользователю или группе. Управление пользователями через LDAP позволяет применять гораздо больше атрибутов к пользователям и группам, чем традиционные решения. Это описано в Раздел 4.4.2, «Конфигурирование модулей YaST управления пользователями и группами».

4.4.1. Стандартная процедура настройки

Стандартный диалог настройки клиента LDAP (см. Рисунок 4.6, «YaST: Конфигурация клиента LDAP») открывается во время установки, если выбрано управление пользователями через LDAP или если выбрать Сетевые службы+Клиент LDAP в Центре управления YaST во время установки.

Рисунок 4.6. YaST: Конфигурация клиента LDAP

YaST: Конфигурация клиента LDAP

Для аутентификации и управления пользователей через сервер OpenLDAP выполните следующие действия:

  1. Нажмите Использовать LDAP, для активации авторизации через LDAP. Выберите Использовать LDAP, но отключить вход в систему, если нужно использовать LDAP для проверки подлинности, но, при этом, другие пользователи не могли авторизироваться через этот клиент.

  2. Введите IP-адрес используемого сервера LDAP.

  3. Введите Базовый DN LDAP для выбора базы поиска на сервере LDAP. Для получения базового DN автоматически нажмите Запрос DN. После этого YaST проверит каждую базу данных LDAP на сервера, указанном выше. Выберите необходимый базовый DN из результатов поиска, предоставленных YaST.

  4. Если сервер требует, чтобы соединение защищалось с помощью TLS или SSL, то выберите LDAP TLS/SSL. Нажмите Загрузить сертификат CA, чтобы загрузить сертификат в PEM-формате по указанному URL.

  5. Выберите Запустить automounter для монтирования удаленных директорий на клиенте, такие как внешний каталог /home.

  6. Выберите Создать домашний каталог при входе в систему для автоматического создания домашнего каталога пользователя при первом входе в систему.

  7. Нажмите OK, чтобы применить настройки.

Для изменения данных на сервер, в качестве администратора, нажмите Дополнительная настройка. Следующее диалоговое окно разделено на две вкладки. См. Рисунок 4.7, «YaST: Дополнительная настройка».

Рисунок 4.7. YaST: Дополнительная настройка

YaST: Дополнительная настройка

  1. На вкладке Настройки клиента измените следующие параметры, если это необходимо:

    1. Если база поиска для пользователей, паролей и групп отличается от глобальной базы поиска, указанной в Базовый DN LDAP, введите нужные значения в Отображение пользователей, Отображение паролей и Отображение групп.

    2. Укажите протокол используемый для смены пароля. Стандартный метод, который используется по умолчанию — crypt — используются хэши паролей, созданные crypt. За более подробной информацией об этой и других опциях обратитесь к man-странице pam_ldap.

    3. Укажите группу LDAP, которая будет использоваться в Атрибут члена группы. Значение по умолчанию — member.

    4. Если для проверки сертификата требуется защищенное соединение, то укажите его расположение в PEM-формате в Файл сертификата CA. Или укажите каталог с сертификатом.

    5. Если сервер LDAP по прежнему использует LDAPv2, то укажите использовать эту версию протокола выбрав LDAP Версия 2.

  2. В Настройки администратора измените следующие параметры:

    1. Установите базу для хранения данных управления пользователями через Основной DN настроек.

    2. Введите соответствующее значение для DN администратора. Это DN должно быть идентично значению rootdn, указанному в /etc/openldap/slapd.conf, чтобы дать возможность простым пользователям манипулировать данными, хранящимися на сервере LDAP. Введите полное имя DN (например, cn=Administrator,dc=example,dc=com) или активируйте Добавлять основной DN, чтобы основной DN автоматически добавлялся при вводе cn=Administrator.

    3. Отметьте Создать конфигурационные объекты по умолчанию для создания основных объектов конфигурации на сервере, чтобы разрешить управление пользователями через LDAP.

    4. Если клиентская машина должна служить файловым сервером для домашних каталогов пользователей сети, то отметьте Домашние каталоги на этой машине.

    5. Используйте раздел Политика пароля для выбора, добавления, изменения или удаления параметров настройки использующихся политик паролей. Конфигурация политики паролей с помощью YaST является одной из частей установки сервера LDAP.

    6. Нажмите OK, чтобы выйти из Дополнительная настройка, затем Готово для принятия настроек.

Используйте Настройка параметров управления пользователями для редактирования записей на сервере LDAP. Доступ к модулям конфигурации предоставляется согласно ACL и ACI, находящимся на сервере. Следуйте указаниям описанным в Раздел 4.4.2, «Конфигурирование модулей YaST управления пользователями и группами».

4.4.2. Конфигурирование модулей YaST управления пользователями и группами

Используйте YaST Клиент LDAP для адаптации модуля управления пользователями и группами и расширения их по необходимости. Определите шаблон со значениями по умолчанию для конкретных атрибутов, чтобы сделать процедуру регистрацию данных более простой. Преднастройки, сделанные здесь, хранятся, как объекты LDAP в каталоге LDAP. Регистрация данных пользователей совершается с помощью обычных модулей YaST для управления пользователями и группами. Зарегистрированные данные хранятся в виде объектов LDAP на сервере.

Рисунок 4.8. YaST: Конфигурация модулей

YaST: Конфигурация модулей

Диалог конфигурации модулей (Рисунок 4.8, «YaST: Конфигурация модулей») позволяет создать новые модули, выбирать и модифицировать уже существующие модули, а также создавать и изменять шаблоны для таких модулей.

Для создания нового модуля конфигурации проделайте следующее:

  1. В Настройка клиента LDAP нажмите Дополнительная настройка, затем откройте вкладку Настройки администратора. Нажмите Настройка параметров управления пользователями и укажите полномочия сервера LDAP.

  2. Нажмите Создать и выберите тип создаваемого модуля. Для модуля конфигурации пользователя выберите suseUserConfiguration, а для конфигурации группы — suseGroupConfiguration.

  3. Укажите имя нового шаблона (например, userConfig). Затем содержимое будет выведено в виде таблицы с перечислением всех атрибутов, разрешенных в этом модуле, с установленными им значениями.

  4. Оставьте предустановленные значения или укажите собственные выбрав соответствующий атрибут и нажав Изменить введите новое значение. Переименуйте модуль, просто изменив атрибут cn. Для удаления выбранного модуля модуля нажмите Удалить.

  5. После нажатия на OK новый модуль будет добавлен в меню выбора.

В модуль YaST для администрирования пользователей и групп уже встроены шаблоны с разумными стандартными значениями. Чтобы отредактировать шаблон, связанный с модулем конфигурации, сделайте следующее (Рисунок 4.9, «YaST: Конфигурирование шаблона объекта»):

  1. В диалоге Конфигурация модуля нажмите Настройка шаблона.

  2. Задайте нужные значения для общих атрибутов, относящихся к этого шаблону, или оставьте их пустыми. Пустые атрибуты удаляются на сервере LDAP.

  3. Измените, удалите или добавьте новые значения по умолчанию для новых объектов (объекты конфигурирования пользователей и групп в дереве LDAP).

Рисунок 4.9. YaST: Конфигурирование шаблона объекта

YaST: Конфигурирование шаблона объекта

Объедините шаблон с его модулем, установив в атрибута модуля susedefaulttemplate значение DN соответствующего шаблона.

[Tip]

Значения по умолчанию для атрибутов можно создать используя другие атрибуты используя переменную вместо абсолютного значения. Например, при создании нового пользователя указав cn=%sn %givenName значения атрибутов sn и givenName поставятся автоматически.

Как только все модули и шаблоны настроены правильно и готовы к работе, новые группы и пользователи могут быть зарегистрированы обычным способом через YaST.

4.5. Конфигурация пользователей и групп LDAP в YaST

Фактическая регистрация данных пользователей и групп лишь слегка отличается от процедуры без использования LDAP. Следующие инструкции относятся к администрированию пользователей. Процесс администрирования групп аналогичен.

  1. Перейдите к администрированию пользователей в YaST: Безопасность и пользователи+Управление пользователями и группами.

  2. Используйте меню Задать фильтр, чтобы ограничиться только пользователями LDAP, введя пароль Root DN.

  3. Нажмите Добавить и укажите параметры для нового пользователя. Откроется диалог с четырьмя вкладками:

    1. Укажите имя пользователя, его логин и пароль на вкладке Информация о пользователе.

    2. На вкладке Подробности уточните членство в группах, оболочку входа и домашний каталог нового пользователя. При необходимости, измените значения по умолчанию на нужные значения значения. Значения по умолчанию так же, как и настройки пароля, могут быть определены с помощью процедуры, описанной в Раздел 4.4.2, «Конфигурирование модулей YaST управления пользователями и группами».

    3. Измените или оставьте настройки по умолчанию на вкладке Настройки пароля.

    4. Выберите вкладку Дополнения, затем выберите плагин LDAP и нажмите Запуск для настройки дополнительных атрибутов LDAP нового пользователя (см. Рисунок 4.10, «YaST: Дополнительные настройки LDAP»).

  4. Нажмите OK для сохранения настроек и выхода из модуля конфигурирования пользователя.

Рисунок 4.10. YaST: Дополнительные настройки LDAP

YaST: Дополнительные настройки LDAP

При открытии формы администрирования пользователей выводятся Опции LDAP. И предоставляется возможность применять фильтры поиска в LDAP для выбора доступных пользователей или перейти к модулю для конфигурирования пользователей и групп LDAP, выбрав Конфигурация пользователей и групп LDAP.

4.6. Просмотр дерева каталогов LDAP

Для просмотра дерева каталогов LDAP и всех его записей удобно использовать Обозреватель LDAP в YaST:

  1. Зайдите под пользователем root.

  2. Запустите YaST+Сетевые службы+Обозреватель LDAP.

  3. Введите адрес сервера LDAP, DN администратора и пароль для корневого DN этого сервера (если нужен доступ к данным, хранящимся на сервере не только на чтение, но и на запись).

    Или не вводите пароль и выберите Анонимный доступ.

    Во вкладке Дерево LDAP отображается содержимое каталога LDAP, к которому подключена ваша машина. Нажмите на элемент, чтобы раскрыть его содержимое.

    Рисунок 4.11. Просмотр дерева каталогов LDAP

    Просмотр дерева каталогов LDAP

  4. Для более подробного просмотра записей выберите ее во вкладке Дерево LDAP и перейдите на вкладку Данные элемента.

    Будут отображены все атрибуты и значения, относящиеся к этой записи.

    Рисунок 4.12. Просмотр данных

    Просмотр данных

  5. Чтобы изменить значение любого из этих атрибутов, выберите его и нажмите Редактировать. Введите новое значени и нажмите Сохранить. Будет запрошен пароль от корневого DN.

  6. Выйдите из браузера LDAP нажав Закрыть.

4.7. Конфигурация сервера LDAP вручную

YaST использует базу данных OpenLDAP динамической конфигурации (back-config) для хранения настроек серверов LDAP. Для получения дополнительной информации о механизме динамической конфигурации см. man-страницу slapd-config(5) или Руководство администратора OpenLDAP 2.4 доступного в файле /usr/share/doc/packages/openldap2/guide/admin/guide.html после установки пакета openldap2.

[Tip]Обновление старой установки OpenLDAP

YaST больше не использует файл /etc/openldap/slapd.conf для хранения конфигурации OpenLDAP. В случае обновления системы, копия оригинального файла /etc/openldap/slapd.conf будет сохранена под именем /etc/openldap/slapd.conf.YaSTsave.

Чтобы получить доступ к серверной конфигурации в удобной форме, можно воспользоваться внешний SASL-аутентификацией. Например, с помощью команды ldapsearch запущенной от имени пользователя root можно полностью просмотреть конфигурацию slapd:

ldapsearch -Y external -H ldapi:/// -b cn=config

4.7.1. Запуск и остановка серверов

Как только сервер LDAP полностью настроен и все необходимые записи сделаны согласно образцу, описанному в Раздел 4.8, «Управление данными в каталоге LDAP», запустите сервер с правами пользователя root, введя команду rcldap start. Для остановки сервера вручную, введите rcldap stop. Запросить статус запущенного сервера можно с помощью команды rcldap status.

Редактор уровня запуска YaST можно использовать для запуска и остановки сервера при загрузке и остановке системы соответственно. Также есть возможность создать символические ссылки для скриптов старта и остановки с помощью команды insserv.

4.8. Управление данными в каталоге LDAP

OpenLDAP предоставляет серию инструментов для администрирования данными в каталоге LDAP. Четыре наиболее важных инструмента для добавления, удаления, поиска и изменения набора данных кратко описаны ниже.

4.8.1. Вставка данных в каталог LDAP

Если конфигурация вашего сервера LDAP выполнена корректно и готова к использованию (имеются соответствующие записи для suffix, directory, rootdn, rootpw и index), то можно приступить к вводу записей. Для этой задачи OpenLDAP предоставляет команду ldapadd. Если возможность — добавляйте объекты в базу данных в связке (по вполне практичным причинам). Для этого в LDAP присутствует поддержка обработки данных в формате LDIF (LDAP data interchange format — Формат обмена данными LDAP). Файл LDIF — это простой тестовый файл, содержащий произвольное количество пар атрибутов и значений. Файл LDIF для создания структуры приведен, например, на Рисунок 4.1, «Структура каталога LDAP» мог бы выглядеть, как в Пример 4.2, «Пример файла LDIF».

[Important]Кодировка файлов LDIF

LDAP работает с UTF-8 (Юникод). Умляуты должны кодироваться правильно. В противном случае, избегайте использования умляутов и других специальных символов или используйте iconv для перевода кодировки в UTF-8.

Пример 4.2. Пример файла LDIF

# The Organization
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
o: Example dc: example

# The organizational unit development (devel)
dn: ou=devel,dc=example,dc=com
objectClass: organizationalUnit
ou: devel

# The organizational unit documentation (doc)
dn: ou=doc,dc=example,dc=com
objectClass: organizationalUnit
ou: doc

# The organizational unit internal IT (it)
dn: ou=it,dc=example,dc=com
objectClass: organizationalUnit
ou: it

Сохраните файл с суффиксом .ldif, затем отправьте его на сервер с помощью следующей команды:

ldapadd -x -D dn_of_the_administrator -W -f file.ldif

Ключ -x, в данном случае, отключает аутентификацию с помощью SASL. Ключ -D указывает пользователя от имени которого инициируется данное действие. Действительный DN администратора, введенный здесь, должен быть таким же, как в файле slapd.conf. В данном примере, это cn=Administrator,dc=example,dc=com. Ключ -W предотвращает ввод пароля в командной строке (открытым текстом) и активирует отдельное приглашение для ввода пароля. С помощью ключа -f указывается имя файла. Детали работы ldapadd можно посмотреть в Пример 4.3, «ldapadd и example.ldif».

Пример 4.3. ldapadd и example.ldif

ldapadd -x -D cn=Administrator,dc=example,dc=com -W -f example.ldif 

Enter LDAP password: 
adding new entry "dc=example,dc=com" 
adding new entry "ou=devel,dc=example,dc=com" 
adding new entry "ou=doc,dc=example,dc=com" 
adding new entry "ou=it,dc=example,dc=com"

Данные конкретного пользователя могут быть подготовлены в отдельном файле LDIF. В Пример 4.4, «Данные LDIF для пользователя Tux» пользователь Tux добавляется в новый каталог LDAP.

Пример 4.4. Данные LDIF для пользователя Tux

# coworker Tux
dn: cn=Tux Linux,ou=devel,dc=example,dc=com
objectClass: inetOrgPerson
cn: Tux Linux
givenName: Tux
sn: Linux
mail: tux@example.com
uid: tux
telephoneNumber: +49 1234 567-8

Файл LDIF может содержать произвольное количество объектов. Возможно сразу отправить полные ветви каталога на сервер или только его часть, как показано в примере для конкретных объектов. Если требуется менять отдельные данные достаточно часто, то рекомендуется использовать для этого отдельную часть одиночного объекта.

4.8.2. Модификация данных в каталоге LDAP

Для модификации набора данных предоставляется команда ldapmodify Наиболее простой способ сделать это — изменить соответствующий файл LDIF, а затем отправить его на сервер. Так, для того, чтобы изменить номер телефона коллеги Tux с +8 1234 5 67-08 на +8 1234 5 67-10 отредактируйте LDIF-файл, как показано в Пример 4.5, «Изменение файла tux.ldif».

Пример 4.5. Изменение файла tux.ldif

# coworker Tux
dn: cn=Tux Linux,ou=devel,dc=example,dc=com 
changetype: modify
replace: telephoneNumber 
telephoneNumber: +8 1234 5 67-10

Импортируйте измененный файл в каталог LDAP с помощью следующей команды:

ldapmodify -x -D cn=Administrator,dc=example,dc=com -W -f tux.ldif

Или отправьте измененные атрибуты напрямую с помощью команды ldapmodify:

  1. Запустите ldapmodify и введите пароль:

    ldapmodify -x -D cn=Administrator,dc=example,dc=com -W 
    Enter LDAP password:
  2. Введите измененные данные (внимательно следите за правильностью синтаксиса) в порядке приведенном ниже:

    dn: cn=Tux Linux,ou=devel,dc=example,dc=com
    changetype: modify
    replace: telephoneNumber
    telephoneNumber: +8 1234 5 67-10

Более подробную информацию о команде ldapmodify и его синтаксисе смотрите на соответствующей man-странице.

4.8.3. Поиск и чтение данных из каталога LDAP

OpenLDAP представляет инструмент командной строки для поиска и чтения данных внутри каталога LDAP — ldapsearch. Простой запрос можно выполнить следующим образом:

ldapsearch -x -b dc=example,dc=com "(objectClass=*)"

Ключ -b задет базу для поиска (раздел дерева, внутри которого будет производиться поиск). В данном случае, это dc=example,dc=com. Чтобы выполнить более подробный поиск в конкретном подразделе каталога LDAP (например, только в пределах раздела devel), укажите его ldapsearch с помощью ключа -b. Ключ -x запрашивает активацию простой авторизации. Строка (objectClass=*) объявляет, что необходимо прочитать все объекты, содержащиеся в каталоге. Эта опция может использоваться для проверки, что все записи были указаны правильно и сервер отвечает корректно, например, после создания нового дерева каталогов. Дополнительную информацию об использовании этой команды можно найти на man-странице ldapsearch(1).

4.8.4. Удаление данных из каталога LDAP

Удалить нежелательные записи можно с помощью команды ldapdelete. Её синтаксис схож с синтаксисом описанных выше команд. Например, чтобы удалить всю информацию о связанной с записью Tux Linux, запустите следующую команду:

ldapdelete -x -D cn=Administrator,dc=example,dc=com -W cn=Tux \
Linux,ou=devel,dc=example,dc=com

4.9. Дополнительная информация

Более сложные темы, вроде конфигурирования SASL или установки реплицирующего сервера LDAP, который распределяет нагрузку на множество подчиненных, намеренно не вошли в этот раздел. Детальная информация об этих темах может быть найдена в Руководство администратора OpenLDAP 2.4.

Веб-сайт проекта openLDAP предоставляет исчерпывающую информацию для начинающих и продвинутых пользователей.

OpenLDAP Faq-O-Matic

Очень богатая коллекция с вопросами и ответами на них по поводу установки, настройки и использования openLDAP. Посетите http://www.openldap.org/faq/data/cache/1.html.

Быстрый старт

Краткие пошаговые инструкции по установке вашего первого сервера LDAP. Ищите их на http://www.openldap.org/doc/admin24/quickstart.html или в установленной системе в разделе 2 файла /usr/share/doc/packages/openldap2/guide/admin/guide.html.

Руководство администратора OpenLDAP 2.4

Детальное введение во все важные аспекты конфигурации LDAP, в том числе, контроль доступа и шифрование. Смотрите на http://www.openldap.org/doc/admin24/ или в установленной системе /usr/share/doc/packages/openldap2/guide/admin/guide.html.

Введение в LDAP

Детальное общее введение в основные принципы LDAP : http://www.redbooks.ibm.com/redbooks/pdfs/sg244986.pdf.

Печатная литература о LDAP:

  • LDAP System Administration by Gerald Carter (ISBN 1-56592-491-6)

  • Understanding and Deploying LDAP Directory Services by Howes, Smith, and Good (ISBN 0-672-32316-8)

Последний справочный материал по теме LDAP — соответствующие документы RFC (запрос комментариев), с 2251 по 2256.


Руководство по безопасности