четверг, 5 февраля 2009 г.

Как установить LDAP сервер и его клиентов. (ldap linux debian & ubuntu auth)

Сервер LDAP (Lightweight Directory Access Protocol) позволяет
централизовать управление пользователями, группами, доменами,
аутентификацией, хранением инфомации.

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

Это руководство разделено на 2 части. В первой части я опишу как
установить, сконфигурировать LDAP сервер, добавить нескольких
пользователей и групп, во второй - мы настроим Linux-клиента для
аутентификации через LDAP, если пользователь не существует на локальном
компьютере.

В этом туториале я рассчитываю на то, что наш LDAP сервер расположен по
адресу 192.168.1.4. Все машины в сети могут распознавать сетевое имя
ldap как ip-адрес 192.168.1.4. LDAP сервер предназначен для управления
доменом debuntu.local. Сервер работает под Debian 4 (тестируемый, но
почти стабильный) и клиентская машина - под Ubuntu Fiesty 7.04

1. LDAP сервер

1.1 Установка

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

# apt-get install slapd ldap-utils migrationtools

Ответьте на все заданные при их установке вопросы и затем
переконфигурируйте slapd, чтобы заставить dpkg задать нам вопросов
немного больше.

#dpkg-reconfigure slapd

#пропустить настройку сервера LDAP? ... Нет

Omit OpenLDAP server configuration? ... No

#Доменное имя DNS: ... debuntu.local

DNS domain name: ... debuntu.local

#Название организации: ... Всечтоугодно & Со

Name of your organization: ... Whatever & Co

#Пароль для admin: XXXXXX

Admin Password: XXXXX

#Подтвердите пароль: XXXXX

Confirm Password: XXXXX

#Настраивается пакет slapd (информация о формате базы ldap)

OK

#Выбор формата базы ldap

BDB

#Удалять базу данных при вычистке slapd? ... Нет

Do you want your database to be removed when slapd is purged? ... No

#Переместить старую базу данных? ... Да

Move old database? ... Yes

#Включить протокол LDAPv2? ... Нет

Allow LDAPv2 Protocol? ... No

Ну, теперь мы установили домен, а заодно и административную учетную
запись “admin”

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

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

Если вы получили сообщение об ошибке, похожее на:

ldap_bind: Can't contact LDAP server (-1)

Чаще всего это означает, что ваш сервер не запущен. Введите команду:

# /etc/init.d/slapd start

чтобы запустить его.

Хорошо, теперь пришло время добавить наших пользователей и группы в базу LDAP.

1.2. Заполнение базы

Используя 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

К сожалению, скрипт не создает 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 будет брать данные для добавления

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

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

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

#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:
XXXX

#Создать учетную запись администратора для локальной базы: Да
Make local root database admin: yes

#База данных требует учетное имя: Нет
Database require logging in: No

#Учетная запись LDAP для root
LDAP account for root: cn=admin,dc=debuntu,dc=local

#Пароль учетной записи LDAP для root:
Root login password: XXXX

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 сервера.

Теперь у вас есть возможность подключиться на любую клиентскую машину,
используя логин и пароль любого пользователя, указанного в LDAP.

Эта статья не является полным руководством по использованию LDAP, но у
вас появилась возможность хотя бы с чего-нибудь начать :)

Оригинал статьи: http://www.opennet.ru/base/net/debian_ldap_install1.txt.html

Комментариев нет:

Отправить комментарий