января 25 2008 06:54 пп

Как установить 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





4 комментария »


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

  1. a23s4a on 29 Апр 2010 at 22:32 #

    На этапе установки
    # apt-get install slapd ldap-utils migrationtools
    пакеты устанавливаются молча, без всяких вопросов по начальной настройке.
    При дальнейшей настройке согласно оф. мануалу по настройке сервера на сайте ubuntu.com
    и попытке воспользоваться командой типа
    ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb olcDbIndex
    получаю сообщение
    ldap_sasl_bind(SIMPLE): Can’t contact LDAP server (-1)
    дальнейшая работа с Ldap соответственно невозможна, вылазит то же самое сообщение
    У кого-то было подобное?
    Как исправить?

  2. Максим Степанов on 29 Апр 2010 at 22:59 #

    А сам сервер Ldap запущен?

  3. a23s4a on 30 Апр 2010 at 15:37 #

    Сервер запущен.
    Сначала проверяю командой slaptest -u
    Получаю сообщение наподобие «config file test succeeded» (успешно)
    Запускаю либо просто:
    slapd
    либо под OpenBSD вот так:
    /usr/local/libexec/slapd -4 -d 256 -u _openldap -g _openldap
    Никаких сообщений об ошибках. Под OpenBSD есть только предупреждение «No dynamic config support for database ldbm»
    В мануале указано, что bdb в OpenBSD с версии 4.3 считается битым, поэтому в качестве database используется ldbm, опять же в соответствии с мануалом по адресу
    http://www.kernel-panic.it/openbsd/pdc/pdc2.html
    После чего пробую команду ldapsearch с указанными выше параметрами.
    Получаю сообщение ldap_sasl_bind(SIMPLE): Can’t contact LDAP server (-1)
    То же самое при установке под OpenBSD. Либо я в обоих случаях что-то упускаю, либо есть какая-то ошибка в мануалах. И нигде нет внятного ответа на такое сообщение об ошибке.

  4. Максим Степанов on 30 Апр 2010 at 15:49 #

    Я с таким не сталкивался

Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »



Server load average: 0.00, 0.00, 0.00
Server uptime: 415 days, 12:08
Your IP is: 54.80.113.185.