Повесть о Linux и
аутентификации пользователей через Novell
e-Directory.
Автор: Иван Песин
Цель статьи - описать настройку системы аутентификации пользователей Linux-систем в едином хранилище Novell e-Directory. Примеры приведены для системы RedHat Linux 7.3 и Novell e-Directory 8.6.0 Предполагается, что у читателя имеется достаточный уровень подготовки по освещаемому вопросу.
Аутентификация пользователя Linux-систем в хранилище Novell e-Directory обеспечивается системой PAM, Pluggable Authentication Modules. Дополнительно устанавливаются модули nss_ldap и pam_ldap, которые поставляются вместе с операционной системой RedHat Linux 7.3
Процесс аутентификации пользователя и установки параметров сессии протекает следующим образом:
Итак, первым шагом является установка пакета 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. В конфигурации по-умолчанию версии 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.
Copyright (c) 2003, Ivan Pesin