Собрание статей и заметок преимущественно по администрированию операционных систем Linux и Windows (но не только). Цель - собрать в одном месте полезное и интересное, что то вроде записной книжки. Большая часть скопирована целиком или скомпилирована из найденного в интернете, и я никоим образом не предендую на авторство, которое мне не принадлежит, чукча не писатель, чукча читатель. Некоторые же статейки - написаны мной, в качестве шпаргалок по мотивам прохождения некоторых квестов.
Как установить 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 и заменить следующие
параметры:
К сожалению, скрипт не создает 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. Настройка клиентов
Каждый клиент нуждается в установке нескольких пакетов. Так что
залогинимся на одном из наших клиентов и установим следующие пакеты:
#Универсальное имя базы поиска 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.
С этими настройками при логине юзер сначала пытается залогиниться как
локальный пользователь. Если совпадений имен не найдено, тогда
запускается аутентификация с ldap сервера.
Теперь у вас есть возможность подключиться на любую клиентскую машину,
используя логин и пароль любого пользователя, указанного в LDAP.
Эта статья не является полным руководством по использованию LDAP, но у
вас появилась возможность хотя бы с чего-нибудь начать