Дистанционная поддержка образовательного процесса

Лекция 28 Централизованное хранилище данных. Каталоги LDAP

Лекция 28  
Тема: Централизованное хранилище данных. Каталоги LDAP
В ОС Linux существует несколько сервисов, позволяющих централизованно управлять учетными записями пользователей и другой сервисной информацией.
К таким сервисам относятся NIS и LDAP.
Сервис NIS позволяет хранить следующую информацию по учетным записям
пользователей:
• имена пользователей;
• пароли пользователей;
• группы пользователей;
• расположения домашних каталогов.
В настоящее время на смену сервису NIS пришел более защищенный и производительный сервис каталогов LDAP.
При выборе способа управления учетными записями пользователей следует учитывать ОС, с которой работает большинство пользователей предприятия.
Если для хранения учетных данных используется сервис LDАР, пользователи могут работать как на ОС Unix/Linux, так и на ОС Windows. Более того, в ОС Linux существует возможность реализовать подобие домена Active Directory для аутентификации пользователей с использованием протокола Kerberos.
Если же для хранения учетных данных используется NIS, пользователи могут работать только на ОС Unix/Linux. Существуют, конечно, средства, позволяющие установить клиенты NIS на ОС Windows, однако данное решение не является разумным с точки зрения безопасности. 
Для реализации сервиса каталогов LDAP в ОС Linux используется ПО openLDAP. Данное ПО можно разделить на следующие компоненты:
• серверы: предоставляют службы LDAP;
• клиенты: оперируют данными LDAP;
• утилиты: поддерживают работоспособность сервера LDAP;
• библиотеки: предоставляют API для доступа к данным LDAP;
Серверная часть сервиса LDAP представлена демоном slapd, который предоставляет доступ к одному или нескольким каталогам данных. Серверная часть LDAP может хранить данные локально или предоставлять доступ к внешним источникам данных. LDAP предоставляет возможности аутентификации компьютеров и пользователей, поиску и изменению данных, таких, например, как группы и адресная книга. Клиенты, например, инструменты командной строки для поиска данных ldapsearch и изменения данных Idapmodify - получают доступ к сервису LDAP через LDAP-протокол. Их функция заключается в формировании и передаче запросов к демону slapd, который выполняет необходимые операции над данными в каталогах. Обычно сначала клиент подключается к демону slapd, аутентифицируется, а затем осуществляет необходимые операции, посылая LDAP запросы (поиск, изменение, удаление и пр.). После получения ответа на посланный запрос клиент завершает процесс биндинга и отключается (рис. 1).
 
Рис. 1
Утилиты LDAP, в отличие от клиентов, не используют протокол LDAP для доступа к каталогам - они подключаются к серверу на более низком уровне и выполняют служебные операции над данными, например, создают новые каталоги. Данные утилиты используются в основном для сопровождения демона slapd. В ОС Linux при инсталяции пакета openLDAP устанавливается несколько библиотек, которые используются LDAP-приложениями и позволяют сторонним разработчикам создавать ПО, взаимодействующее с каталогом по протоколу LDAP. Для развертывания сервиса LDAP в ОС Linux должны быть установлены пакеты openLDAP и openLDAP-servers. В общем случае процесс развертывания сервиса LDAP можно разделить на следующие этапы:
• установка бинарных пакетов openLDAP и openLDAP-servers;
• настройка сервера LDAP при помощи конфигурационного файла slapd.conf;
• проверка конфигурационного файла slapd.conf при помощи утилиты slaptest;
• создание каталога LDAP;
• настройка клиентов LDAP при помощи конфигурационного файла ldap.сonf.

Настройка конфигурационных файлов LDAP
Все модули LDAP условно разделяются на хранилища данных LDAP (backends), в которых непосредственно хранятся записи каталога LDAP, и  расширения LDAP (overlay), которые используются для добавления новых функциональных возможностей сервиса LDAP.
Основным конфигурационным файлом, который использует демон slapd, является файл /etc/slapd.conf. Данный файл содержит множество директив, которые разделяются на три группы: Basics, Database Configuration и ACLs.
В группе директив Basics выполняется:
• описание установленных схем (директива include);
• определение дополнительных системных параметров - уровня журналирования (директива log level) и аргументов запуска демона slapd (директива argsfile);
• определение используемых модулей LDAP (директивы moduleload и modulepath).
Под схемой в директиве include понимается служебная информация, описывающая разные классы объектов и типы атрибутов, которые поддерживает данный сервис LDAP. Кроме того, в данной группе описывается административная учетная запись пользователя rootdn.
В группе директив Database Configuration задаются:
• тип используемых баз данных каталогов (директива database);
• суффикс пространства имен (директива suffix);
• расположение файлов каталога (директива directory);
• индексируемые атрибуты (директива index).
Выбор типа базы данных каталога зависит от данных, которые необходимо хранить в этом каталоге. Если в нем хранятся главным образом данные пользователей или какие-то справочные данные, имеет смысл остановиться на иерархическом типе (Hierarchical Database (HDB)), он обеспечит наиболее быстрый поиск данных. Если в каталоге необходимо хранить различные данные, такие как документы pdf, видео- или аудиофайлы, то имеет смысл использовать файловую систему совместно с реляционной базой данных, которая будет использоваться для выполнения запросов к записям, ссылающимся на данные, находящиеся на файловой системе. В каталоге /var/lib/ldap должен присутствовать файл DB_CONFIG, образец которого содержится в каталоге /etc/openldap. Данный файл содержит опции, необходимые для настройки производительности базы данных каталога LDAP. Если демон slapd не обнаружит его в нужном каталоге, то будет выведено сообщение об ошибке.
Директива suffix определяет, для какой части каталога используется указанная база данных каталога. Данная директива определяет отличительное имя записей Distinguish Name (DN). В группе ACLs определяется, какие клиенты к каким данным каталога имеют доступ, а также уровень этого доступа.
После того, как конфигурационный файл slapd.conf будет создан, необходимо проверить его синтаксис, запустив команду slaptest -у -f /etc/openldap/ slapd. conf. Если файл содержит ошибки, то в выводе будет указана строка, содержащая ошибку и сама ошибка.
Создание каталога LDAP
Каждый объект в каталоге LDAP называется записью, а каждая запись обладает несколькими атрибутами, например, такими как имя (паше) или расположение (location). Среди атрибутов есть обязательные и необязательные. Каждая запись идентифицируется своим отличительным именем Distinguish Name (DN). Записи LDAP обычно составляются на основе использования атрибута objectClass. Классы объектов определяют атрибуты, которые может содержать запись. Каждому атрибуту назначается тип данных. При добавлении в каталог записи она должна удовлетворять требованиям схемы базы данных каталога. 
Верхний уровень дерева класса объектов называется top; он определяет только то, что запись должна иметь атрибут objectClass. Некоторые схемы по умолчанию присутствуют в openLDAP. Администратор может добавлять дополнительные схемы и включать их в каталог, используя директиву include. Например, схема dnszone.schema, входящая в состав пакета bind-sdb, позволяет хранить в каталоге LDAP зоны DNS. Большинство сетевых сервисов, например Samba, также имеют свои схемы, которые позволяют использовать каталог LDAP для хранения своих конфигурационных файлов.
Записи добавляются в каталог с использованием файла формата LDIF. Каждая запись в данном файле начинается с отличительного имени (DN), которое уникальным образом идентифицирует запись в каталоге. Запись состоит из нескольких атрибутов, записанных в отдельной строке. Каждый атрибут должен иметь значение, которое может быть представлено текстом в кодировке UTF-8, бинарными данными в кодировке base64, адресом URL или адресом файла. Каждая запись в файле LDIF разделяется пробелом. Примеры двух записей показаны в следующем листинге.
# Организация: example.com
dn: dc=example, dc=com
dc: example
о: Softline
objectClass: top
objectClass: dcObject
objectClass: organization
# Организационная единица ≪маркетинг≫: marketing
dn: ou=marketing, ou=employeedir, dc=example, dc=com
ou: marketing
objectClass: top
objectClass: organizationalUnit
Файл LDIF можно импортировать в каталог, используя команду slapadd -v -1 <имя_файла>.Міґ. Если синтаксис каждой записи корректен, то на терминал в процессе импорта будут выводиться сообщения о добавленных записях следующего вида:
added: "cn=IvanPetrov,ou=accounting,ou=employeedir,dc=example,dc=com" (0000000a)
После добавления всех записей из файла LDIF необходимо установить соответствующие права для пользователя ldap, от имени которого запускается демон slapd, на все файлы базы данных каталога LDAP, находящихся в каталоге /var/lib/ldap. Запуск демона slapd осуществляется через стартовый скрипт /etc/init.d/slapd или при помощи команды service. Если запустить демон slapd при помощи стартового скрипта не удается, то для определения причины данной проблемы можно запустить демон slapd, используя команду slapd -d <config>.  Команда запускает демона slapd в отладочном режиме, при котором на терминал выводятся все сообщения отладки, относящиеся к указанному уровню. Уровень отладки указывается параметром для аргумента -d.
Подключение к серверу LDAP
Для того чтобы клиенты могли подключаться к серверу LDAP, в их системе должны быть установлены пакеты openldap-clients и nss_ldap. Данные пакеты могут использовать как утилиты работы с каталогами LD АР, такие как ldapsearch (поиск записей) или ldapadd (добавление записей), так и конечные приложения, например, почтовый клиент Evolution.
Для того чтобы настроить ОС Linux в качестве клиента LDAP, необходимо добавить в файлы /etc/openldap/ldap.conf и /etc/ldap.conf  ІР-адрес сервера LDAP и корневую запись каталога, с которым будет осуществляться дальнейшая работа 
URI ldap://<1Р_адрес_сервера_LDAP>/
BASE dc=example,dc=com
Если при подключении к серверу LDAP используется протокол TLS, то в данные файлы необходимо добавить путь к каталогу, в котором располагаются соответствующие сертификаты:
TLS_CACERTDIR /etc/openldap/cacerts
Если сервис LDAP используется для аутентификации пользователей, то необходимо отредактировать файл /etc/nsswitch.conf и добавить обращение системы к сервису LDAP в следующих записях:
passwd: files ldap
shadow: files ldap
group: files ldap
В данном случае при аутентификации пользователей, сначала будет просматриваться локальный файл /etc/passwd. Если пользователь имеет локальную учетную запись, то он будет аутентифицироваться на основе файла /etc/passwd.
Если в файле /etc/passwd не содержится учетная запись пользователя, запрос аутентификации будет передан на сервер LDAP.
После того, как клиент LDAP будет настроен, необходимо протестировать подключение к серверу LDAP. Для проверки можно послать запрос для просмотра служебной информации о сервере LDAP, содержащейся записи root DSE:
# ldapsearch -х -W -D ‘cn=admin,dc=example,dc=com' -b "" -s base
‘(objectclass=*)' +
Enter LDAP Password: <P@sswOrd>
dn:
structuralObjectClass: OpenLDAProotDSE
configContext: cn=config
namingContexts: dc=example,dc=com
supportedControl: 1.3.6.1.4.1.4203.1.9.1.1
supportedControl: 2.16.840.1.113730.3.4.18
supportedExtension: 1.3.6.1.4.1.4203.1.11.1
supportedExtension: 1.3.6.1.4.1.4203.1.11.3
Для настройки аутентификации с использованием сервиса LDAP в ОС Linux существует графическая утилита Red Hat Authentication Configuration tool, которая запускается при помощи команды system-config-authentication (утилита имеет консольный вариант называющийся authconfig-tui). В ее настройках необходимо указать ІР-адрес сервера LDAP и корневую запись каталога (Base DN), относительно которой будет выполнять поиск учетных записей пользователей.

Четверг, 02.05.2024, 01:38
Приветствую Вас Гость

Вход на сайт

Поиск

Календарь

«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Друзья сайта

  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0