Смекни!
smekni.com

Инсталляция, настройка и сопровождение LDAP-сервера.Linux FreeBSD (стр. 2 из 2)

LDAP сервер.

LDAP (англ. Lightweight Directory Access Protocol — «облегчённый протокол доступа к каталогам») — это сетевой протокол для доступа к службе каталогов X.500, разработанный IETF как облегчённый вариант разработанного ITU-T протоколаDAP. LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей. Обычно LDAP-сервер принимает входящие соединения на порт 389 по протоколам TCP или UDP. Для LDAP-сеансов, инкапсулированных в SSL, обычно используется порт 636.

Всякая запись в каталоге LDAP состоит из одного или нескольких атрибутов и обладает уникальным именем (DN — англ. Distinguished Name). Уникальное имя может выглядеть, например, следующим образом: «cn=Иван Петров, ou=Сотрудники, dc=example, dc=com». Уникальное имя состоит из одного или нескольких относительных уникальных имен (RDN — англ. Relative Distinguished Name), разделённых запятой. Относительное уникальное имя имеет вид ИмяАтрибута=значение. На одном уровне каталога не может существовать двух записей с одинаковыми относительными уникальными именами. В силу такой структуры уникального имени записи в каталоге LDAP можно легко представить в виде дерева.

Запись может состоять только из тех атрибутов, которые определены в описании класса записи (object class), которые, в свою очередь, объединены в схемы (schema). В схеме определено, одни атрибуты являются для данного класса обязательными, а другие — необязательными. Также схема определяет тип и правила сравнения атрибутов. Каждый атрибут записи может хранить несколько значений.

Из свободно распространяемых открытых реализаций наиболее известен сервер OpenLDAP, из проприетарных — поддержка протокола имеется в Active Directory — службе каталогов от компании Microsoft, предназначенной для централизации управления сетями Windows.

Active Directory — LDAP-совместимая реализация интеллектуальной службы каталогов корпорации Microsoft для операционных систем семейства Windows NT.

OpenLDAP Software — открытая реализация LDAP, разработанная проектом OpenLDAP Project.

В данной работе использовался сервер OpenLDAP.

Описание реализации применяемых методов.

Установка операционной системы

Установка операционной системы Ubuntu не представляет сложностей и напоминает установку Windows.

Выбор часового пояса:

Ввод личных данных.

Нажимаем «Далее» и видим все текущие настройки установки. Нажимаем «Установить».

После установки перезагружаем компьютер.

Установка LDAP сеовера.

Чтобы LDAP сервер заработал, мы должны установить несколько пакетов

# apt-get install slapd ldap-utils migrationtools

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

И затем переконфигурировать сервер

#dpkg-reconfigure slapd

задав следующие параметры:

#пропустить настройку сервера LDAP? ... Нет
#Доменное имя DNS: ... debuntu.local
#Название организации: ... Всечтоугодно & Со
#Пароль для admin: 123
#Подтвердите пароль: 123
#Выбор формата базы ldap BDB
#Удалять базу данных при вычистке slapd? ... Нет
#Переместить старую базу данных? ... Да
#Включить протокол LDAPv2? ... Нет



Теперь вы можете проверить, есть ли доступ к ldap-серверу:

$ ldapsearch -x -b dc=debuntu,dc=local

Если выдается ошибка скорее всего сервер не был запущен. Чтобы запустить нужно ввести команду:

# /etc/init.d/slapd start

Настройка LDAP сервера.


Заполнение базы:

Используя migrationtools мы получаем возможность быстро импортировать
всех существующих пользователей и групп с локальной системы в LDAP.

#cd /usr/share/migrationtools/

Нам необходимо отредактировать конфигурационный файл
migrationtools, имеющий имя migrate_common.ph и заменить следующие
параметры:

$DEFAULT_MAIL_DOMAIN = "debuntu.local";
$DEFAULT_BASE = "dc=debuntu,dc=local";

Затем экспортируем данные:

# ./migrate_group.pl /etc/group ~/group.ldif
# ./migrate_passwd.pl /etc/passwd ~/passwd.ldif

Cкрипт не создает ldap-узлы Group и People, так что нам
нужно самим создать их. Чтобы сделать это, создаем фай в домашнем
каталоге с именем ~/people_group.ldif и заполняем его следующими
данными:

dn: ou=People, dc=debuntu, dc=local
ou: People
objectclass: organizationalUnit

dn: ou=Group, dc=debuntu, dc=local
ou: Group
objectclass: organizationalUnit

Теперь у нас есть списки наших пользователей и групп, сконвертированные
в LDAP формат ldif. Импортируем их в нашу LDAP базу.

# cd
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/people_group.ldif
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/group.ldif
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/passwd.ldif

где:
-x означает, что мы не используем sasl
-W будет запрошен пароль администратора LDAP
-D используется для идентификации администратора
-f указывает файл, где ldapadd будет брать данные для добавления

Теперь сервер готов для идентификации пользователей. Идем дальше и настроим наших клиентов.

Настройка клиентов

Каждый клиент нуждается в установке нескольких пакетов. Установим следующие пакеты:

#apt-get install libnss-ldap libpam-ldap nscd

#Универсальный Идентификатор Ресурса сервера LDAP:
ldapi:///debuntu.local

#Универсальное имя базы поиска
dc=debuntu,dc=local
#Использовать версию LDAP 3
#Учетная запись LDAP для root
cn=admin,dc=debuntu,dc=local
#Пароль учетной записи LDAP для root: 123
#Создать учетную запись администратора для локальной базы: Да
#База данных требует учетное имя: Нет
#Учетная запись LDAP для root
#Пароль учетной записи LDAP для root: 123

libnss-ldap позволит нам использовать ldap как сервер имен, lippam-ldap
позволит pam аутентифицировать пользователей через LDAP и, наконец, nscd
- это lookup-демон паролей, групп и хостов, который кеширует результаты,
чтобы не запрашивать повторно LDAP каждый раз, когда аутентификация
будет пройдена.

Теперь отредактируем конфигурационные файлы и убедимся, что у нас
установлены следующие настройки:

#vi /etc/libnss-ldap.conf
host ldap
base dc=debuntu,dc=local
rootbinddn cn=admin,dc=debuntu,dc=local

#vi /etc/libnss-ldap.secret
XXXXX

#vi /etc/pam_ldap.conf
host ldap
base dc=debuntu,dc=local
rootbinddn cn=admin,dc=debuntu,dc=local

#vi /etc/pam_ldap.secret
XXXXX

Файлы конфигурации pam должны быть отредактированы как указано ниже:

#vi /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so
#если вы хотите, чтобы домашний каталог пользователя создавался
# при первом логине
#if you want user homedir to be created on first login
#session required pam_mkhomedir.so umask=0022 skel=/etc/skel/ silent
#vi /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
#vi /etc/pam.d/common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5

#vi /etc/pam.d/common-session
session sufficient pam_ldap.so
session required pam_unix.so
session optional pam_foreground.so

Наконец, отредактируем nsswitch, так чтобы система имела возможность
переключаться с локальной аутентификации на аутентификацию ldap.

# vim /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap

С этими настройками при логине пользователь сначала пытается залогиниться как
локальный пользователь. Если совпадений имен не найдено, тогда
запускается аутентификация с ldap сервера.

Список литературы.

1. http://ubuntu.ru

2. http://ru.wikipedia.org

3. http://sudouser.com