Ключевые слова:linux, auth, ldap, (найти похожие документы)
From: Иван Песин <ipesin at post.Lviv.UA>
Newsgroups: Russian Linux Gazette
Date: Mon, 14 Jan 2004 14:31:37 +0000 (UTC)
Subject: Аутентификации пользователей через Novell e-Directory
Оригинал: http://gazette.linux.ru.net/rus/articles/lnx_nov_edir.html
Повесть о Linux и аутентификации пользователей через Novell e-Directory.
Автор: Иван Песин <ipesin at post.Lviv.UA>
Введение
Цель статьи - описать настройку системы аутентификации пользователей
Linux-систем в едином хранилище Novell e-Directory. Примеры приведены
для системы RedHat Linux 7.3 и Novell e-Directory 8.6.0
Предполагается, что у читателя имеется достаточный уровень подготовки
по освещаемому вопросу.
Настройка Linux
Аутентификация пользователя Linux-систем в хранилище Novell
e-Directory обеспечивается системой PAM, Pluggable Authentication
Modules. Дополнительно устанавливаются модули nss_ldap и pam_ldap,
которые поставляются вместе с операционной системой RedHat Linux 7.3
Процесс аутентификации пользователя и установки параметров сессии
протекает следующим образом:
1. Введенный пользователем пароль вместе с именем используется
модулем pam_ldap для получения доступа к Novell e-Directory. Отказ
в доступе свидетельствует о неверном имени или пароле.
2. При помощи модуля nss_ldap система получает необходимые для работы
данные, как то: uid, gid, homeDirectory, shell и др.
3. При отсутствии каталога пользователя средствами системы PAM
обеспечивается автоматическое его создание.
Итак, первым шагом является установка пакета nss_ldap. Он содержит
необходимые модули для работы с сервером Novell e-Directory.
После установки пакета нужно отредактировать конфигурационный файл
/etc/ldap.conf:
server 192.168.0.1
base ou=london,o=acme
binddn cn=ndsbrowser,ou=london,o=acme
bindpw ndspass
ssl yes
pam_password nds
nss_map_attribute userPassword authPassword
scope sub
В каталоге /etc/openldap/ также находится файл ldap.conf. Он должен
содержать те же данные. Можно создать вместо него символическую
ссылку:
# cd /etc/openldap && rm -f ldap.conf && ln -s /etc/ldap.conf
Рассмотрим конфигурационный файл более детально:
server <ip address> ip-адрес сервера Novell e-Directory
base <context> Базовый контекст сервера, откуда начинается поиск
binddn <credentials> Специальный пользователь для подключения системы
к Novell e-Directory. Должен иметь права на чтение всех атрибутов, а
если вы хотите иметь возможность изменять пароли командой passwd, то и
права на запись
bindpw <password> Пароль специального пользователя
ssl yes Использовать шифрование
pam_password nds Указывает режим работы с Novell e-Directory
nss_map_attribute userPassword authPassword Задает отображение
атрибутов
scope sub Задает режим поиска
Перейдем к настройке системы PAM (Pluggable Authentication Modules),
подключаемых модулей аутентификации. Файлы настроек в системе RedHat
Linux 7.3 расположены в каталоге /etc/pam.d/. Нам будет нужно внести
изменения в файл system-auth. После необходимых настроек он должен
выглядеть так:
#%PAM-1.0
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth sufficient /lib/security/pam_ldap.so try_first_pass
auth required /lib/security/pam_deny.so
account sufficient /lib/security/pam_unix.so
account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] /lib/security/pam_ldap.so
password required /lib/security/pam_cracklib.so retry=3 type=
password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/pam_ldap.so use_authtok
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional /lib/security/pam_ldap.so
Это содержимое сообщает системе, что пользователя необходимо вначале
проверить локальными средствами, а при ошибке попробовать
аутентифицировать через Novell e-Directory. Обратите внимание на
строку "session required /lib/security/pam_mkhomedir.so
skel=/etc/skel/ umask=0077". Она обеспечит создание каталога
пользователя и перенос базовых настроек.
Возможно, вам будет необходимо добавить свои специфические настройки,
если вы используете другие дополнительные механизмы аутентификации.
Учтите, что при запуске утилиты authconfig, данный файл будет
перегенерирован и его настройки уничтожатся.
Следующим шагом настройки является настройка модуля nss_ldap.
Откройте файл /etc/nsswitch.conf в редакторе и найдите строки
начинающиеся с passwd, shadow и group. Добавьте в конец
соответствующих строк слово "ldap". Строки должны будут выглядеть
примерно так:
passwd: files ldap
shadow: files ldap
group: files ldap
Наконец, необходимо настроить систему шифрования SSL. Для этого
скопируйте с тома SYS: сертификат сервера (файл RootCert.der) в
каталог /usr/share/ssl/certs/. Выполните команду конвертации:
# openssl x509 -in /usr/share/ssl/certs/RootCert.der -inform DER -out /usr/share/ssl/certs/RootCert.pem -outform PEM
Теперь добавьте сконвертированный сертификат в конфигурационный файл
/usr/share/ssl/openssl.cnf. Для этого найдите в нем ключи "value
certificate", "my private key" и сопоставьте им значение
"/usr/share/ssl/certs/RootCert.pem". Например:
certificate = /usr/share/ssl/certs/RootCert.pem # The CA certificate
private_key = /usr/share/ssl/certs/RootCert.pem # The private key
Настройка Novell e-Directory
Переходим к настройке сервера Novell e-Directory. В конфигурации
по-умолчанию версии 8.6.0 существует ошибка в преобразовании атрибутов
NDS в атрибуты LDAP (Насколько мне известно, в версии 8.7.0 ошибка
исправлена). Поэтому их нужно исправить вручную. Для этого запустите
утилиту ConsoleOne и откройте свойства объекта "LDAP Group". Перейдите
к закладке "Attribute Map" и добавьте такие соответствия (если есть
старые соответствия, удалите их):
LDAP Attribute
NDS Attribute
loginShell
loginShell
uidNumber
uidNumber
gidNumber
gidNumber
Теперь создайте группу для пользователей Linux систем и укажите ее
номер (GID) в закладке свойств "UNIX Profile".
Добавьте необходимых пользователей, указав в закладке свойств "UNIX
Profile" необходимые значения UID, GID, shell, homeDirectory.
Вот и все. Можно регистрироваться в Linux системе пользователем,
введенном на сервере Novell e-Directory.
Заключение.
Все упомянутые в статье торговые марки и продукты принадлежат их
владельцам. Исследования по организации аутентификации Linux
пользователей сервером Novell e-Directory велась в рамках моей работы
в компании N-iX Newcomp GmbH (http://www.n-ix.com/).
Copyright (c) 2003, Ivan Pesin