Настройка и работа в Linux
adb5321d

УСТАНОВКА И ИСПОЛЬЗОВАНИЕ OPENLDAP


LDAP — это протокол для доступа к службе каталогов в архитектуре клиент-сервер. Он берет свое начало от X.500, но сегодня он может использоваться для доступа и к другим службам каталогов. Нам требовался пакет «все в одном», где бы наряду с собственно протоколом был реализован механизм хранения баз данных. Мы выбрали наиболее позднюю из стабильных версий OpenLDAP (1.2.11) для среды Linux 2.2.x. Предполагалось, что единственной целью системы будет аутентификация пользователей ftp; таким образом, разработка базы данных значительно упрощалась. Интеграция этих функций в уже существующую базу данных LDAP потребовала бы большего времени и сил.

Процесс установки происходил в соответствии со стандартной документацией, которую можно найти по адресу: http://www.openldap.org/ — там же находятся соответствующие исходные коды программ.

Файл slapd.conf — основной конфигурационный файл для slapd (slapd — это сервер LDAP в проекте OpenLDAP). В нем есть три директивы, на которые надо обратить внимание:

suffix "dc=your-domain, dc=com"
rootdn "cn=Admin, dc=your-domain, dc=com"
rootpw your-secret-password



В этих директивах rootdn и rootpw — имя и пароль пользователя, которые необходимы для доступа к базе данных, о чем будет рассказано позже. Строки, приведенные выше, — это просто пример задания директив; на самом деле рекомендуется использовать зашифрованный пароль — в документации вы найдете соответствующие указания. В Листинге 1 файл slapd.conf приведен полностью. (Все листинги, упоминаемые в этой статье, можно найти на http://www.sysadminmag.com.)

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

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


Нам было важно создать формат данных, который был бы понятен нашему серверу ftp. Мы воспользовались рекомендуемой Джоном Моррисси конфигурацией для модуля mod_ldap ProFTPD, которая более подробно описана ниже.

В результате содержимое нашего файла local.oc.conf выглядело следующим образом:

# FTP account object class.

objectclass ftpAccount requires objectclass, cn, uid, homeDirectory allows userPassword, accountStatus, loginShell, uidNumber, gidNumber

Многие из указанных атрибутов хорошо знакомы системным администраторам, хотя это, возможно, не касается атрибута cn. Это сокращение означает common name (общее имя). В данном классе мы используем его для хранения имени домена. Поскольку наша конфигурация ориентирована на домены, в любой работе администратор, скорее всего, будет использовать имя домена, например, для поиска.

В вышеприведенной схеме каждый домен, о котором знает система, имеет соответствующую учетную запись на сервере ftp (имя домена — cn, имя ftp-записи — uid). Каждый домен имеет по одной учетной записи.

Ниже приведена краткая суммарная информация об атрибутах класса:

objectclass — класс элемента (ftpAccount);
cn — имя домена (описывалось ранее);
uid — имя учетной записи ftp;
userPassword — пароль для аутентификации на сервере ftp (см. ниже);
accountStatus — атрибут для административных целей (открыт?, оплата позднее? и т. д.);
loginShell — не используется (поскольку пользователи не имеют доступа к оболочке);
uidNumber — идентификатор UID, выделенный поль зователю;
gidNumber — групповой идентификатор GID, выделенный пользователю.

Обратите внимание, что атрибуты uidNumber и gidNumber не применяются, поскольку вместо них мы используем значения, заданные при конфигурации нашего ftp-сервера. Детали приведены ниже.

В главном конфигурационном файле сервера slapd с именем slapd.conf необходимо указать ссылку на local.oc.conf следующим образом:

include /usr/local/etc/openldap/local.oc.conf

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


Содержание раздела