LDAP, AD и почтовый сервер на Linux (часть 1)
Когда я только начинал осваивать Linux, буквосочетание LDAP вгоняло меня в ступор и наводило ужас одновременно. Мне почему-то казалось, что LDAP – это нечто монструозное, применяемое в гигантских сетях, а потому недоступное среднему сисадмину. Встречая заголовки статей, описывавших взаимодействие всевозможных служб с LDAP, я думал, что их авторы – редкостные извращенцы, призывающие «стрелять по воробьям из пушки». Так продолжалось до тех пор, пока однажды, натолкнувшись на очередную статью про скрещивание postfix и LDAP на почтовом сервере, я не решил разобраться, что же это за «зверь» такой, что о нем все говорят.
Энциклопедии Wikipedia.org тогда еще не было (а может и была, но я про нее ничего не знал), однако в Интернете нашлось изрядно статей, которые помогли разобраться. Мы же обратимся к тому, как описывает LDAP Wikipedia.org:
LDAP (Lightweight Directory Access Protocol — облегчённый протокол доступа к каталогам) — это сетевой протокол для доступа к службе каталогов X.500, разработанный IETF как облегчённый вариант разработанного ITU-T протокола DAP. LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей. Обычно LDAP-сервер принимает входящие соединения на порт 389 по протоколам TCP или UDP. Для LDAP-сеансов, инкапсулированных в SSL, обычно используется порт 636.
Если вы ничего не поняли из этого определения, не переживайте. Давайте разбираться дальше.
X.500 — серия стандартов для службы распределенного каталога сети. Каталоги X.500 предоставляют централизованную информацию обо всех именованных объектах сети - ресурсах, приложениях и пользователях. Иными словами, каталоги были придуманы для упорядоченного хранения относительно редко изменяющейся информации, касающейся сети. Такими данными являются имена пользователей, контактные данные, имена компьютеров и серверов, списки и уровни доступа. В связи с тем, что содержимое каталога меняется не очень часто, службы доступа к каталогам оптимизированы на поиск и чтение данных, что является основным их отличием от баз данных, ориентированных на динамический контент.Применение каталогов в сети, по задумкам авторов идеи, должно привести к следующим положительным последствиям:
- Упрощенное управление сетью.
- централизованное управление информацией о пользователях;
- централизованное управление сетевыми объектами и их конфигурацией;
- централизованное управление аккаунтами пользователей;
- уменьшение стоимости поддержки, за счет централизации.
- Унифицировнный доступ к сетевым ресурсам.
- унифицированный подход к именованию;
- возможность единого входа, для доступа ко всем ресурсам.
- Единое место хранения общей информации.
- контактной информации;
- местоположения сетевых ресурсов;
- можно использовать для хранения любой информации.
- Улучшенное управление данными.
- единое место хранение широко используемых данных;
- единое место управления доступом к данным;
- организация данных в единую логическую структуру.
- Единый поисковый механизм для приложений и сервисов.
Если вы внимательно читали предыдущие два абзаца, то у вас внутри должна была зашевелиться мысль о том, что каталоги очень похожи на то, что компания Microsoft называет Active Directory. Собственно, скажете вы, Active Directory реализует все то, о чем сказано выше – и будете абсолютно правы. То, что подается компанией Microsoft как прорывная технология, на самом деле было придумано еще, как минимум, в 1993 году. Конечно, заслуг MS умалять нельзя – они построили на базе стандартов X.500 законченный продукт и подготовили его для использования конечными потребителями, однако ничего экстраординарного в AD нет. Это обычный каталог, построенный по стандарту X.500, доступ к которому может осуществляться стандартными средствами.А вот с этого места, как говорится – поподробнее. Как уже было сказано выше, доступ к каталогам X.500 осуществляется посредством протокола LDAP. Из этого следует вывод, что при помощи протокола LDAP можно получать данные, содержащиеся в Active Directory, при этом нет никакой разницы, под управлением какой операционной системы будет работать LDAP-клиент, и кем он был написан. И это абсолютная правда. Иными словами, любая программа, поддерживающая получение данных из внешнего каталога при помощи протокола LDAP, может получать данные из Active Directory и использовать их для своих целей.Всякая запись в каталоге LDAP состоит из одного или нескольких атрибутов и обладает уникальным именем (DN - Distinguished Name). Уникальное имя учетной записи сотрудника Ивана Петрова, находящегося в OU «Сотрудники» в домене example.com в нотации LDAP может выглядеть, например, следующим образом: «cn=Иван Петров, ou=Сотрудники, dc=example, dc=com». Уникальное имя состоит из одного или нескольких относительных уникальных имен (RDN — Relative Distinguished Name), разделённых запятой. Относительное уникальное имя имеет вид имяАтрибута=значение. На одном уровне каталога не может существовать двух записей с одинаковыми относительными уникальными именами. В силу такой структуры уникального имени записи в каталоге LDAP можно легко представить в виде дерева (что, собственно, и сделано в оснастке «Active Directory Users and Computers»).Вы наверняка обращали внимание, что при создании нового пользовательского аккаунта в домене Windows, помимо имени пользователя и пароля администратор может ввести огромное количество информации. Например, вы можете указать телефон сотрудника, адрес электронной почты, закрепленный за данным клиентом, адрес сотрудника, должность, отдел, имя непосредственного руководителя, домашнюю страницу и другую информацию. Все это хранится в каталоге Active Directory и доступно к прочтению средствами LDAP.
Продолжение следует…

