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

Страницы

Расширенный поиск в статьях блога

8 февраля 2012 г.

Как установить 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, но у
вас появилась возможность хотя бы с чего-нибудь начать :)

.

Счетчик тИЦ и PR Яндекс.Метрика Msn bot last visit powered by MyPagerank.NetYahoo bot last visit powered by MyPagerank.Net ping fast  my blog, website, or RSS feed for Free