Что входит в LDAP
Системы, основанные на использовании LDAP-протокола, обычно сложные. Данные сформированы в виде иерархической древовидной структуры, в отличие от более привычных реляционных баз данных, в которых информация связана друг с другом отношениями. Подробнее про это можно прочитать в статье про БД.
Атрибуты. Это своеобразные единицы, в которых хранится информация. Выше мы писали, что сведения в каталоге представлены в виде пар из ключей и значений. Одна такая пара и есть атрибут. Например, запись вида «имя: Василий» — это атрибут. В таком формате хранится большая часть фактической, значимой информации в каталоге. Атрибут — это информационная единица. Остальные составные компоненты — в основном структурные и иерархические, они отвечают не за саму информацию, а за структуру ее хранения.
У атрибутов в каталогах LDAP есть особенность: имена ключей предопределены заранее в зависимости от того, как даны классы в записи.
Записи. Атрибуты не находятся в каталоге просто так — они собираются в кластеры, которые называются записями. Если атрибут — аналог поля и значения в реляционных базах данных, то запись — это аналог строки. В ней хранятся атрибуты какой-либо конкретной сущности.
Например, атрибуты «имя: Василий», «фамилия: Иванов», «должность: менеджер» могут быть составными частями записи об отдельном сотруднике. Для каждого сотрудника в каталоге можно иметь отдельную запись.
Записи могут принадлежать к каким-либо классам. В зависимости от этого у них могут быть те или иные атрибуты.
DIT. Это аббревиатура, которая расшифровывается как Data (Directory) Information Trees — информационные деревья каталогов. Это древовидные структуры, которые определяют иерархию между записями. Можно провести аналогию с файловой системой — назначение у DIT такое же. Деревья нужны, чтобы структурировать информацию. Каждая запись в LDAP-каталоге будет иметь отдельное место в DIT.
Насчет расположения записей есть определенные правила. У каждой из них может быть «предок», родительский элемент, но только один, зато неограниченное количество «потомков». Исключение — корневая запись, у которой нет родительского элемента. Хорошей аналогией опять же может служить файловая система любой ОС, где в «родительских» папках находятся дочерние.
Классы объектов. Выше мы упомянули, что записи могут относиться к каким-либо классам. Класс в программировании — это шаблон для объекта, код, описывающий «базовую» сущность. Это понятие пришло из объектно-ориентированного программирования.
Классы объектов в LDAP, соответственно, определяют «тип» записи и по сути представляют собой группы связанных атрибутов. Например, можно создать класс «сотрудник» и указать, что у объектов этого класса будут атрибуты «имя», «фамилия», «должность», «срок службы» и так далее. После этого можно будет создать запись, определить для нее класс «сотрудник» и потом использовать атрибуты «сотрудника» внутри этой записи.
Классы нужны для организации и для большей четкости структуры. У них может быть своя иерархия: от базового класса можно унаследовать более специфические. Например, можно создать классы «сотрудник отдела продаж» или «сотрудник отдела развития» как дочерние от основного класса «сотрудник». Им можно добавлять дополнительные атрибуты и свойства.
Схемы. Схема, или schema, — это конструкция, в которой определены классы и атрибуты. Чтобы создать класс, его нужно описать внутри схемы — написать, как он будет называться, какие у него будут атрибуты, добавить дополнительные свойства. Там же описываются различные атрибуты: можно указать, к каким классам они могут относиться и какие значения принимать.
В одном DIT может быть множество схем, при этом они имеют возможность ссылаться друг на друга и требовать, например, атрибуты и свойства из другой схемы. Это не запрещено.
Благодаря такому построению данных в DIT можно гибко создавать записи с различными атрибутами, использовать шаблоны и «наследовать» от них дополнительные классы. Это лишь малая часть того, как устроено хранение данных в LDAP-системах, — но основная.
Example 2: LDAP number filter
Here you have to specify your search criteria for number look ups.
When you type in this field for example:(|(telephoneNumber=%)(Mobile=%)(ipPhone=%))the result of your search will be all LDAP records which have the “telephoneNumber” OR “Mobile” OR “ipPhone” field equal to the entered prefix.
When you type in this field: (&(telephoneNumber=%)(sn=*))the result of your search will be all LDAP records which have the “sn” field set AND the “telephoneNumber” field equal to the entered prefix.
Additionally as of version 10.1.27.0 the greater or equal, less or equal and approximate filters are supported. What is returned is dependent on the server implementation. When you type (telephoneNumber >= 5) , it could result in a numeric or lexicographic comparison, and the subsequent result. Likewise
Какие атаки может предотвратить Active Directory?
Как видите, Active Directory — это центральный инструмент для управления рядом функций безопасности бизнеса. Существует ряд распространенных атак, которые могут помочь предотвратить хорошие практики Active Directory:
- Атака передачи хэша: эта атака существует уже более десяти лет. Несмотря на то, что данный тип один из самых известных, ему все же удалось нанести значительный ущерб. Используя атаку передачи хэша, злоумышленник извлекает хешированные (более короткие значения фиксированной длины) учетные данные пользователя, чтобы перейти на удаленный сервер. Проще говоря, если злоумышленник добьется успеха с помощью тактики передачи хэша, в вашем процессе аутентификации есть слабость.
- Brute-force: простая, но эффективная атака методом «грубой силы», включает в себя перебор случайных имен пользователей и паролей в быстрой последовательности, чтобы получить доступ к вашей системе. Каковы шансы хакера на успех с помощью этого метода? Больше, чем ты думаешь. Злоумышленники, практикующие грубую силу, используют усовершенствованное программирование для создания триллионов комбинаций за считанные секунды.
Основные компоненты данных LDAP
Выше мы обсуждали, как LDAP является протоколом, используемым для связи с базой данных директорий с целью запроса, добавления или изменения информации. Однако это простое определение искажает сложность систем, поддерживающих этот протокол. То, как LDAP отображает данные для пользователей, очень зависит от взаимодействия и отношений между некоторыми определенными структурными компонентами.
Атрибуты
Сама информация в LDAP-системе в основном хранится в элементах, называемых атрибутами. Атрибуты, в основном, являются парами ключ-значение. В отличие от некоторых других систем, ключи имеют предопределённые имена, которые продиктованы выбранным для данной записи объектными классами (об этом мы поговорим чуть позже). Более того, данные в атрибуте должны соответствовать типу, определённому в исходном определении атрибута.
Установка значения для атрибута производится с помощью имени атрибута и значения атрибута, разделенного двоеточием и пробелом. Пример атрибута под названием , который определяет почтовый адрес, будет выглядеть следующим образом:
При обращении к атрибуту и его данным (когда он не задан), две стороны соединяются знаком равенства:
Значения атрибутов содержат большую часть фактических данных, которые вы хотите хранить, и к которым вы хотите получить доступ в системе LDAP. Остальные элементы внутри LDAP используются для определения структуры, организации и т. д.
Записи
Атрибуты сами по себе не очень полезны. Чтобы иметь смысл, они должны быть связаны с чем-то. В LDAP вы используете атрибуты в пределах записи (entry). Запись, по сути, представляет собой набор атрибутов под именем, используемым для описания чего-либо.
Например, вы можете иметь запись для пользователя в вашей системе, или для каждого предмета инвентаризации. Это примерно аналогично строке в системе реляционной базы данных, или одной странице в адресной книге (атрибуты здесь будут представлять различные поля в каждой из этих моделей). В то время как атрибут определяет качество или характеристику чего-либо, запись описывает сам предмет, просто собирая эти атрибуты под именем.
Пример записи, отображаемой в LDIF (LDAP Data Interchange Format), будет выглядеть примерно так:
Приведенный выше пример может быть валидной записью в системе LDAP.
DIT
Начав знакомиться с LDAP, легко понять, что данные, определяемые атрибутами, представляют собой лишь часть доступной информации об объекте. Остальное — это расположение записи в системе LDAP и связи, проистекающие из этого.
Например, если можно иметь записи как для пользователя, так и для объекта инвентаризации, как кто-то сможет отличить их друг от друга? Один из способов отличить записи разных типов — это создание отношений и групп. Это в значительной степени зависит от того, где находится запись при ее создании. Все записи добавляются в систему LDAP в виде веток на деревьях, называемых Data Information Trees, или DIT-ы.
DIT представляет собой организационную структуру, похожую на файловую систему, где каждая запись (кроме записи верхнего уровня) имеет ровно одну родительскую запись и под ней может находиться любое количество дочерних записей. Поскольку записи в LDAP-дереве могут представлять практически все, некоторые записи будут использоваться в основном для организационных целей, подобно каталогам внутри файловой системы.
Таким образом, у вас может быть запись для «people» и запись для «inventoryItems». Ваши фактические записи данных могут быть созданы как дочерние записи приведенных выше, чтобы лучше различать их тип. Ваши организационные записи могут быть произвольно определены, чтобы наилучшим образом представить ваши данные.
В примере записи в разделе выше мы видим одно указание на DIT, в строке :
Эта строка называется distinguished name («dn», «отличительное имя») записи (подробнее об этом позже) и используется для идентификации записи. Она функционирует как полный путь до «корня» DIT. В данном случае у нас есть запись под названием , которую мы создаем. Прямым родителем является запись с именем , которая, вероятно, используется в качестве контейнера для записей, описывающих людей. Родители этой записи произошли от доменного имени , которое выступает как корень нашей DIT.
Наследование в LDAP
По большей части то, как данные в LDAP-системе соотносятся друг с другом, зависит от иерархии, наследования и вложенности. Изначально LDAP для многих людей кажется непривычным, поскольку в его дизайн реализованы некоторые объектно-ориентированные концепции. В основном это связано с использованием классов, о чем мы уже говорили ранее, и с возможностью наследования, о котором мы поговорим сейчас.
Наследование объектных классов
Каждый objectClass — это класс, который описывает характеристики объектов данного типа.
Однако, в отличие от простого наследования, объекты в LDAP могут быть, и часто являются, экземплярами нескольких классов (некоторые языки программирования предоставляют аналогичную функциональность посредством множественного наследования). Это возможно потому, что LDAP под классом понимает просто набор атрибутов, которые он ДОЛЖЕН (MUST) или может (MAY) иметь. Это позволяет указать для записи несколько классов (хотя только один структурный объектный класс может и должен присутствовать), в результате чего объект просто имеет доступ к объединенной коллекции атрибутов со строжайшими определениями MUST или MAY, имеющими приоритет.
По своему определению, объектный класс может иметь указывать на родительский объектный класс, от которого он наследует свои атрибуты. Это делается с помощью определениям , за которым следует название объектного класса, от которого происходит наследование. Например, определение объектного класса начинается следующим образом:
Родительским объектом является объектный класс, следующий за идентификатором . Класс-родитель должен быть того же типа, как и определяемый объектный класс (например, или ). Дочерний объектный класс автоматически наследует атрибуты и требования атрибутов родителя.
При назначении объектного класса конкретной записи, Вам нужно только указать самого последнего потомка цепочки наследования, чтобы иметь доступ ко всему набору атрибутов. В предыдущем разделе мы использовали это для указания в качестве единственного objectClass для нашей записи John Smith, в то же время получив доступ к атрибутам, определенным в объектных классах и . Иерархия наследования выглядит следующим образом:
Почти все деревья наследования каждого объектного класса заканчиваются специальным объектным классом, называемым «top». Это абстрактный объектный класс, единственное предназначение которого заключается в том, чтобы можно было выполнить требование задавания объектного класса. Он используется для указания вершины цепочки наследования.
Наследование атрибутов
Точно так же, сами атрибуты могут указать родительский атрибут в своем определении. В этом случае атрибут наследует свойства, которые были установлены в родительском атрибуте.
Это часто используется для создания более специфических версий общего атрибута. Например, атрибут фамилия (surname) имеет тот же тип, что и имя, и может использовать все те же методы для сравнения и проверки на равенство. Он может унаследовать эти качества, чтобы получить обобщенную форму атрибута «имя» (name). На деле, конкретное определение фамилии может содержать чуть больше, чем указатель на родительский атрибут.
Это полезно, так как позволяет создать конкретный атрибут, полезный для людей, интерпретирующих элемент, даже когда его обобщенная форма остаётся неизменной. Наследование атрибута , о котором мы говорили здесь, помогает людям различать фамилию и более обощенное имя, но кроме разницы в значениях названия, разница между фамилией и именем в LDAP системе невелика.
Что такое контроллер домена
Контроллер домена — это сервер, на котором выполняется роль доменной службы Active Directory Domain Services (AD DS).
Контроллер домена используется для организации локальных вычислительных сетей, обеспечивает централизованное управление аутентификацией и авторизацией (проверяет подлинность и разрешения учетных записей пользователей и компьютеров в сети), правами (определяет, является пользователь сисадмином или обычным пользователем, какие у пользователя права доступа), назначает и применяет политики безопасности и т.д.
Функции контроллера домена:
- Запуск службы каталогов, например Windows Active Directory
- Централизованное управление списком пользователей сети и их правами
- Создание шаблонов настройки компьютеров сети
- Хранение идентификаторов и паролей пользователей
- Проверка подлинности пользователя при входе в сеть (аутентификация)
- Поиск по записям службы каталогов
- Управление политиками безопасности домена
GOsa2
- Сайт проекта: oss.gonicus.de/labs/gosa.
- Лицензия: GNU GPL.
- Дистрибутивы: пакеты — Debian/Ubuntu, RedHat/CentOS/Fedora, openSUSE/SLES, из исходных текстов — любой *nix.
Проект GOsa2, являющийся надстройкой для популярных опенсорсных приложений, предоставляет администратору единый центр управления всей ИТ-инфраструктурой. Интерфейс позволяет управлять учетными записями *nix и Samba, правами пользователей и групп, компьютерами, списками рассылок, приложениями, настройками основных сетевых служб: DHCP, DNS, HTTP, SMTP и т. д. Разработка ведется под эгидой компании Gonicus GmbH, которая использует GOsa в своих сервисах.
Все функции вынесены в плагины (принцип «один сервис = один плагин»), поэтому админ собирает конфигурацию в соответствии со своими нуждами.
В настоящее время реализовано более 30 плагинов, обеспечивающих управление такими сервисами, как Squid, DansGuardin, Postfix, Courier-IMAP, Maildrop, GNARWL, Cyrus-SASL, OpenSSL, ISC DHCP, WebDAV, PureFTPd, PPTP, Kerberos, Asterisk, Nagios, OPSI, Netatalk, FAI, rsyslog, и серверами коллективной работы: SOGo, OpenGroupware, Kolab, Scalix. При этом все вышеуказанные плагины не обязательно должны работать на одном сервере, некоторые из них можно установить на отдельные хосты.
GOsa позволяет управлять учетными записями *nix и сервисами
Учетные записи пользователей объединяются в группы, для которых назначаются разрешенные приложения. При создании новых аккаунтов применяются шаблоны (админ создает их сам) с прописанными правами доступа к объектам. Набор разрешений ACL состоит из типа, определяющего видимость, объектов (пользователей/групп) и разрешений. Разрешения определяют все возможные действия: создание, удаление, перемещение, чтение, запись и т. д.
GOsa — единственный в нашем обзоре проект с локализованным интерфейсом управления. Правда, локализован он пока не полностью, но использование gettext позволяет при необходимости сделать это самостоятельно.
Поддерживается установка в любом дистрибутиве Linux. Разработчики рекомендуют Debian, под который создан отдельный репозиторий. Также доступны пакеты для Red Hat/CentOS/Fedora и openSUSE/SLES, но, как правило, разработчики не спешат их собирать, поэтому версии немного запаздывают. Можно использовать любой веб-сервер, однако предпочтение отдается Apache2 и nginx. Документация доступна только на английском и не поспевает за развитием проекта, многие моменты отражены в ней весьма поверхностно.
Девиз Identity Policy Audit хорошо поясняет сущность FreeIPA
INFO
FreeIPA используется для аутентификации и авторизации в решении oVirt для виртуализации, построенном на основе KVM.
Инсталляцию описываемых продуктов рекомендуется производить на «чистую» систему, не выполняющую никаких других функций.
Для синхронизации 389DS с Active Directory необходимо установить Windows Sync.
После установки пакета 389-ds для конфигурации 389DS следует запустить скрипт.
Утилита system-config-autentification, входящая в состав Fedora, содержит вкладку, позволяющую активировать аутентификацию через FreeIPA.
Заключение
Даже невооруженным глазом видно, что наиболее многофункциональным инструментом является GOsa2. Это решение обеспечивает управление учетными записями и многочисленными сервисами, поддерживает установку в большинстве дистрибутивов Linux, имеет локализованный интерфейс. Однако окончательный выбор зависит от конкретной задачи.
Структуры в Active Directory
Структуру важно понимать для эффективного администрирования Active Directory, так как правильные методы хранения и организации являются ключом к построению безопасной иерархии. Ниже приведены некоторые основные структурные аспекты управления Active Directory:
Домены. Домен AD — это совокупность объектов, таких как пользователи или устройства, которые совместно используют политики, и базы данных. Домены содержат идентифицирующую информацию об этих объектах и имеют DNS-имя. Групповая политика может применяться ко всему домену или подгруппам, называемым организационными единицами (OU).
Деревья. Несколько доменов AD в одной группе называются деревьями. Они совместно используют конфигурацию сети, схему и глобальный каталог. Существует правило доверия с деревьями — когда новый домен присоединяется к дереву, ему сразу же доверяют другие домены в группе.
Леса. Лес — это группа деревьев, которые совместно используют одну базу данных. Это вершина организационной иерархии в AD. Один лес должен быть использован для каждого отдела
Важно отметить, что администраторы пользователей в одном лесу не могут автоматически получать доступ к другому лесу.
Системы настройки и управления LDAP
- Zentyal,
- GOsa,
- Webmin,
- phpLDAPadmin,
- Lume.
Для чего можно использовать LDAP?
Концепция похожа на структуру каталогов на жестком диске, за исключением того, что в этом контексте корневой каталог — это мир, и первый уровень подкаталогогов — страны. Более низшие уровни структуры каталогов содержат записи для компаний, организаций или мест, в то время как еще ниже мы находим записи каталога для людей, и возможно, оборудования или документов.
В общем случае, службу каталогов можно использовать, когда Вам требуется надёжное хранение информации с возможностью централизованного управления и доступа к ней, с использованием стандартизированных методов.
Примеры промышленного использования служб каталогов:
- Идентификация компьютеров
- Аутентификация пользователей в единой системе
- Группировка пользователей (в том числе системные группы)
- Адресные книги
- Представление штатно-кадровой структуры организации
- Учет закрепления имущества организации за сотрудниками
- Телефонные справочники
- Управление пользовательскими ресурсами
- Справочники адресов электронной почты
- Хранение конфигурации приложений
- Хранение конфигурации АТС
Использование LDAP
- Какой тип информации может храниться в директориях? Информационная модель LDAP основана на записях (entry). Запись — это коллекция атрибутов (attribute), обладающая уникальным именем (Distinguished Name, DN). DN глобально-уникально для всего каталога и служит для однозначного указания на запись. Каждый атрибут записи имеет свой тип (type) и одно или несколько значений (value). Обычно типы — это мнемонические строки, в которых отражено назначение атрибута, например «cn» — для общепринятого имени (common name), или «mail» — для адреса электронной почты. Синтаксис значений зависит от типа атрибута. Например, атрибут cn может содержать значение Babs Jensen. Атрибут mail может содержать значение «[email protected]». Атрибут jpegPhoto будет содержать фотографию в бинарном формате JPEG.
- Как информация храниться в LDAP? Записи каталога LDAP выстраиваются в виде иерархической древовидной структуры. Традиционно, такая структура отражает географические и организационные границы. Записи, обозначающие страны, находятся наверху дерева. Чуть ниже располагаются записи о регионах и организациях. Еще ниже — информация об отделах, людях, принтерах, документах или о том, о чем вы подумаете. Дерево может быть создано, основываясь на доменных именах интернета такое именование позволяет узнать расположение службы директорий, используя Раздел DNS: Что такое DNS.
- Как можно обратиться к информации? К записи обращаются по ее уникальному имени, которое состоит из собственно имени записи (так называемое относительное уникальное имя (Relative Distinguished Name, RDN) с прибавлением к нему имён записей-предков. Так, запись, описывающая Barbara Jensen в приведенном выше примере с Internet-именованием, имеет RDN uid=babs, и DN — uid=babs,ou=People,dc=example,dc=com.
- Что такое slapd и что он может сделать? slapd (Stand-alone LDAP демон) это сервер директорий LDAP. Вы можете использовать его для обеспечения собственного сервера директорий. Ваша директория может содержать любую информацию, которую вы захотите. Вы так же можете подключить свою директорию к глобальной службе директорий LDAP или запустить службу директорий самостоятельно. Некоторые возможности slapd: пункт 1.9., например SASL, TLS (или SSL), поддерживает Unicode и языковые теги.
- Что такое slurpd и что он может делать? slurpd(8) — демон, который, с помощью slapd(8), обеспечивает работу службы репликаций. Он отвечает за распространение изменений, сделанных в главной БД slapd, на другие БД slapd. Slurpd освобождает slapd от необходимости беспокоится, если другие БД slapd выключены или недоступны, когда произошли изменения в главной БД. Slurpd автоматически повторяет запросы на обновление. Slapd и Slurpd связаны через простой текстовый файл, который используется для записи изменений.
Ссылки
- LDIF — формат обмена данными LDAP.
-
LDAP
-
PHP LDAP
- Про LDAP по-русски: Руководство администратора OpenLDAP 2.4, Перевод учебника «LDAP for Rocket Scientists» и статьи.
-
samba_pdc + ddns + dhcp — с хранением всех данных в LDAP
Структура
Протокол доступа к каталогам LDAP соответствует модели X.500, принятой в качестве стандарта в 1993 году:
- Каталог представляет собой дерево каталогов записей.
- Запись состоит из набора атрибутов.
- Атрибут имеет имя (атрибут типа или атрибут описания) и одно или несколько значений.
- Каждая запись имеет уникальный идентификатор — отличительное имя (Distinguished Name, DN). Которое состоит из относительного отличительного имени (Relative Distinguished Name, RDN) составленное из атрибута(ов) записи, за которым следует родительская запись отличительного имени. То есть DN является полным именем файла, а RDN относительное имя в папке.
Имейте ввиду, что DN может меняться в течение существования записи. На пример, когда запись перемещается внутри дерева каталога. Чтобы надёжно и однозначно определить позиции записи в набор её оперативных атрибутов может быть включён UUID.
В LDAP запись может выглядеть примерно так:
dn: cn=Иван Иванов,dc=example,dc=com
cn: Иван Иванов
givenName: Иван
sn: Иванов
telephoneNumber: +1 888 555 6789
telephoneNumber: +1 888 555 1232
mail: [email protected]
manager: cn=Ася Александрова, dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
Здесь: dn — это имя записи, которое не является не атрибутом, не частью записи. «cn=Иван Иванов» — это RDN записи, a «dc=example,dc=com» — DN родительской записи, в которой dc обозначает доменный компонент. В остальных строках показаны атрибуты записи.
Сервер хранит подкаталог (subtree) начиная с конкретной записи, например, «dc=example,dc=com» и её расширения. На сервере также могут храниться ссылки на другие серверы, таким образом, попытка найти «ou=department,dc=example,dc=com» может вернуть предложение или постоянную ссылку на сервер, который хранит эту часть папки каталога. Клиент может подсоединиться к этому серверу. Некоторые серверы объединены в цепи, то есть отдельный сервер связывается с другим сервером и возвращает результат клиенту.
Конфигурирование IBM Directory Server
IBM Directory Server под управлением ОС AIX может быть сконфигурирован при
помощи следующих средств:
- инструментальное средство с интерфейсом командной строки
; - аналог с графическим интерфейсом —
; - команда .
Необходимы следующие пакеты файлов для конфигурирования IBM Directory
Server:
- пакеты файлов ldap.server
- DB2 — база данных, которая требуется для работы с IBM Directory
Server
Предварительные
условия
- Система должна работать в 64-битном режиме ядра. Для определения
режима ядра используется команда . - AIX требует 64-битное оборудование. Получить информацию об
оборудовании можно с помощью команды - Требуется минимум оперативной памяти 512MB (рекомендуется иметь не
менее 1GB). - IBM Directory Server требует по меньшей мере 80MB свободного
пространства на диске, где будет создана база данных DB2. - Если планируется установить InstallShield GUI, то нужно по крайней
мере 100MB свободного пространства в каталоге /var и по меньшей мере
свободных 400MB в каталоге /tmp.
AIX предоставляет команду для настройки серверов IBM
Directory и клиентов, которые будут работать с этими серверами:
Команда выполняет следующие действия при
осуществлении настройки нового сервера:
- Создает базу данных с именем ldapdb2.
- Создает дерево AIX DN (суффикс) для каждого пользователя или группы
пользователей ОС AIX. - Экспортирует пользователей и группы из базы данных локального хоста в
базу данных LDAP. - Устанавливает имя и пароль администратора LDAP-сервера.
- Предоставляет в качестве дополнительной возможности серверу
использовать протокол Secure Sockets Layer (SSL). - Устанавливает плагин /usr/ccs/lib/libsecldapaudit для аудита
LDAP-сервера. - Запускает LDAP-сервер после того, как все действия, описанные выше,
выполнены. - Добавляет запись LDAP-сервера в файл /etc/inittab для автоматического
запуска после перезагрузки системы.
mksecldap -s -a cn=admin -p passwd -S rfc2307aix
Вся установочная информация хранится в файле /etc/ibmslapd.conf.
Протокол LDAP и устройство DIT
Когда в DIT создается новая запись, она сразу же «прикрепляется» к уже существующей — другая запись становится ее «родителем». Исключение составляет, как уже говорилось, самая верхняя запись. Она обычно не информационная, это просто метка, которая обозначает корневую точку — например, название компании.
Записей без родителей, кроме корневой, быть не может. Так создается древовидная структура. Именно с ней работает протокол LDAP, который получает, ищет и модифицирует данные.
LDAP проходит по «дереву» и находит в нем нужные данные, причем позволяет сделать это относительно быстро и безопасно. Протокол использует стандартные методы доступа — это значит, что он относительно независим и разные реализации LDAP можно применять с одним и тем же деревом с одинаковым результатом.
Протокол оптимизирован на чтение, причем на чтение слева направо, а не сверху вниз. Это значит, что слишком глубокая вложенность в DIT может навредить скорости поиска.
FusionDirectory
Поскольку доступ к исходному коду GOsa для тех, кто не имеет отношения к компании Gonicus GmbH, был затруднен, разработчики приняли решение о создании более открытого и полностью поддерживаемого сообществом форка для привлечения сторонних специалистов, а также обеспечения условий для написания плагинов под большее количество приложений. Новый проект получил название FusionDirectory. Разработчики обещали не только создать самое «мощное и универсальное» решение для управления, имеющее более удобные инструменты для разработки, но и усовершенствовать документацию. В октябре 2011-го вышла версия FusionDirectory 1.0.2, но, так как работа над проектом началась совсем недавно, о каких-то особых функциональных отличиях от GOsa пока говорить не приходится. Документация, по сути, состоит из пары руководств, но, учитывая родство с GOsa, на стадии ознакомления с FusionDirectory можно использовать документацию на родительский проект. Четко определен список поддерживаемых дистрибутивов (Debian, CentOS 5/RHEL 5, Fedora 14/15, openSUSE 11.3/11.4, SLES 11), и, главное, для каждого из них создан репозиторий, обеспечивающий простую установку.
Реализации
Серверная часть
LDAP является широко используемым стандартом доступа к службам каталогов. Из свободно распространяемых открытых реализаций наиболее известен сервер OpenLDAP, из проприетарных — поддержка протокола имеется в Active Directory — службе каталогов от компании Microsoft, предназначенной для централизации управления сетями Windows. Сервер IBM Lotus Domino в своём составе также имеет службу LDAP. Свои реализации служб каталогов, поддерживающие LDAP как протокол доступа, предлагают и другие крупные компании, например, Novell и Sun — OpenDS и, впоследствии, OpenDJ.
Перечень наиболее известных на сегодняшний день LDAP-серверов:
- OpenLDAP
- ForgeRock OpenDJ
- Novell eDirectory
- Apple Open Directory (форк проекта OpenLDAP)
- Microsoft Active Directory
- Samba4 LDAP (OpenSource-реализация MS AD)
- RedHat Directory Server
- 389 Directory Server (по сути тестовая версия предыдущего)
- Oracle Directory Server
- Apache Directory Server
- IBM Tivoli Directory Server
- IBM Domino LDAP
- CommuniGate LDAP
Клиентская часть
В качестве клиентов LDAP выступают как адресные книги почтовых клиентов, так и back-end’ы различных сетевых служб (серверы DNS, SMTP, Samba, UTS и т. д.).
Для чего нужен протокол LDAP
- Определение, каким образом данные будут представлены в системе LDAP, например на сервере.
- Доступ к этим данным по определенным правилам. LDAP сам по себе не описывает архитектуру сервера, он только показывает, по какому принципу тот передает информацию.
- Чтение, запись, добавление новых данных или модификация существующих.
- Аутентификация — выдача определенных прав доступа только после авторизации в системе.
- Обеспечение безопасности данных — LDAP позволяет гибко настраивать права доступа и защищать информацию при передаче по сети.
- Хранение баз данных, которые не слишком часто обновляются. Обычно это списки контактов, перечень страниц клиентов и прочие подобные базы.
- Создание «обертки» вокруг стандартной реляционной базы данных — иногда так оптимизируют доступ к ней.
Разница между группой безопасности и группой рассылки
AD состоит из двух основных групп — групп рассылки и групп безопасности.
Группы рассылки — создаются в первую очередь для распространения электронных писем. Они полезны для таких приложений, как Microsoft Exchange или Outlook, и, как правило, позволяют легко добавлять и удалять контакты из одного из этих списков. Нельзя использовать группу рассылки для фильтрации параметров групповой политики, группа не предназначена для работы с предоставлением доступа на ресурсы. По возможности, пользователей следует назначать в группы рассылки, а не в группы безопасности, поскольку членство в слишком большом количестве групп безопасности может привести к замедлению входа в систему.
Группы безопасности — позволяют ИТ-отделу управлять доступом к общим ресурсам, контролируя доступ пользователей и компьютеров. Группы безопасности можно использовать для назначения прав безопасности в сети AD. (Эти группы также можно использовать для рассылки электронной почты.) Каждой группе безопасности назначается набор прав пользователей, определяющих их возможности в лесу. Например, некоторые группы могут восстанавливать файлы, а другие нет.
Эти группы обеспечивают ИТ-контроль над параметрами групповой политики, что означает, что разрешения могут быть изменены на нескольких компьютерах. Разрешения отличаются от прав — они применяются к общим ресурсам в домене. Некоторые группы могут иметь больше доступа, чем другие, когда дело доходит до общих ресурсов.