Ключевые слова:ldap, linux, debian, auth, (найти похожие документы)
From: Igor Moroz <igor.moroz@gmail.com.>
Newsgroups: email
Date: Mon, 18 Dec 2007 14:31:37 +0000 (UTC)
Subject: Как установить LDAP сервер и его клиентов.
Оригинал на анлийском: http://www.debuntu.org/ldap-server-and-linux-ldap-clientshttp://www.debuntu.org/ldap-server-and-linux-ldap-clients-p2
Сервер 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, но у
вас появилась возможность хотя бы с чего-нибудь начать :)
У меня такой вопрос ставлю LDAP и выдает ошибку 404 не найден perlapi у меня один репозиторий deb http://ftp.ru.debian.org/debian/ lenny main в чем может быть ошибка?? Может репозитории надо какие нить добавить ??? у меня debian 5.0
dpkg-reconfigure
после чего задает пару вопросов и ВСЕ!
ТОГО ЧТО НИЖЕ ПРОСТО НЕТУ!!!
//////////////////////////////////
#Доменное имя 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)
Та же фигня. Ни при установке, ни при dpkg-reconfigure не задает подобных вопросов. Поднимал на Ubuntu-server 10.4.
В итоге подправил /etc/default/slapd на использование как конфига /etc/ldap/slapd.conf и написал собственно этот slapd.conf. В котором указал все необходимые настройки. Все отлично завелось и работает.
У меня с убунтой тоже так было. гдето вычитал там траблы с хешированием. побороть можна, но лучше пересесть на дебиан 6. там все как по книжке. я даже Gosa прикрутил... спустя 2 недели!:)))
Пытался поставить по мануалу на чистый Debian, после установки, настройки и перезагрузки попытался зайти через GUI интерфейсы (использовал jXplorer а также Ldap administration tool) результат отрицательный. РугаеЦо на "Invalid DN Syntax" порт открыт.подскажите в чем причина ? Хотя при заполнении дерева через ldapadd все прошло без проблем.
nmap -p 389 localhost
Starting Nmap 5.00 ( http://nmap.org ) at 2012-04-27 11:13 MSK
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE
389/tcp open ldap
delayu
#dpkg-reconfigure sldap
vydaet:
takogo paketa net ili povrejden
Pri pereustanovke,ne daet vvesti pass,tablichka poyavlyaetsa, no pass ne prohodyat
chto delat'???