IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  AIX и UNIX  >

Настройка и использование LDAP-сервера в операционной системе AIX

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: средний

Ума М. Чандолу, разработчик программного обеспечения, IBM
Рави К. Коввила, разработчик программного обеспечения, IBM

29.01.2008

В данной статье рассмотрены вопросы, связанные с диагностикой и устранением проблем в IBM Directory Server. Эта статья может использоваться как краткий справочник по настройкам IBM Directory Server в операционной системе AIX(R).

Введение

Управление пользователями является важной частью распределенных вычислений сред. Оно обеспечивает однозначную идентификацию пользователя и проверку его прав доступа, необходимые для организации доступа к системе. Для обеспечения централизованного управления безопасностью многие пользователи используют IBM Directory Server. Для достижения оптимальной конфигурации IBM Directory Server с защитой "от дурака" и для его дальнейшего использования необходимо понимать основные концепции протокола Lightweight Directory Access Protocol (LDAP) и управление его конфигурацией.

Эта статья предоставляет обзор протокола LDAP и его архитектуры. В ней также рассмотрены основы настройки и управления LDAP под управлением AIX. Основное внимание в статье уделено различным типам проблем, возникающих при конфигурировании LDAP-сервера и клиента. Рекомендации, высказанные в разделе, посвященном поиску неисправностей, будут полезными для системных администраторов AIX, специалистов технической поддержки и разработчиков программного обеспечения для этой операционной системы.

Краткий обзор архитектуры LDAP

LDAP - это стандартный протокол для осуществления доступа к серверам каталогов. IBM Directory Server должен быть настроен так, чтобы поддерживать аутентификацию пользователей на LDAP способом, определенным в RFC 2307.

LDAP оптимизирован для чтения, просмотра и поиска в каталогах и специализированных базах данных, хранящих информацию о пользователях. Множество компьютерных сред были разработаны для того, чтобы сделать сетевые ресурсы доступными для пользователей, работающих где-угодно - на домашних компьютерах, компьютерах в публичных местах и т.д. IBM Directory Server может быть использован для достижения этих целей.

Рисунок 1 показывает схему LDAP.


Рисунок 1. Схема LDAP
Рисунок 1. Схема LDAP

LDAP является одновременно стандартным протоколом и специализированной базой данных для хранения информации о пользователях. Когда пользователи пытаются войти в систему, LDAP-клиент посылает запрос к LDAP-серверу для получения пользовательской информации из централизованной базы данных. DB2® - это база данных, используемая для хранения информации о группах и пользователях. База данных LDAP хранит и отыскивает по необходимости информацию, основываясь на иерархической структуре записей, каждая из которых имеет собственное имя, тип и атрибуты. Атрибуты (или свойства) определяют допустимые значения для каждой записи в базе данных. База данных LDAP может хранить и обрабатывать записи для множества пользователей.

Загрузочный модуль безопасности LDAP впервые появился в AIX 4.3. Этот загрузочный модуль обеспечивал аутентификацию пользователей и выполнял функции по централизованному управлению пользователями и группами при помощи IBM SecureWay® Directory. Учетная запись пользователя на LDAP-сервере может быть настроена так, чтобы пользователь мог загружаться в LDAP-клиенте на компьютерах, где он даже не зарегистрирован. Загрузочный модуль LDAP полностью интегрирован с операционной системой AIX.

Конфигурирование IBM Directory Server

IBM Directory Server под управлением ОС AIX может быть сконфигурирован при помощи следующих средств:

  • инструментальное средство с интерфейсом командной строки ldapcfg;
  • аналог ldapcfg с графическим интерфейсом - ldapxcfg;
  • команда mksecldap.

Необходимы следующие пакеты файлов для конфигурирования IBM Directory Server:

  • пакеты файлов ldap.server
  • DB2 - база данных, которая требуется для работы с IBM Directory Server

Предварительные условия

  • Система должна работать в 64-битном режиме ядра. Для определения режима ядра используется команда bootinfo -K.
  • AIX требует 64-битное оборудование. Получить информацию об оборудовании можно с помощью команды bootinfo -y
  • Требуется минимум оперативной памяти 512MB (рекомендуется иметь не менее 1GB).
  • IBM Directory Server требует по меньшей мере 80MB свободного пространства на диске, где будет создана база данных DB2.
  • Если планируется установить InstallShield GUI, то нужно по крайней мере 100MB свободного пространства в каталоге /var и по меньшей мере свободных 400MB в каталоге /tmp.

AIX предоставляет команду mksecldap для настройки серверов IBM Directory и клиентов, которые будут работать с этими серверами:

Команда mksecldap выполняет следующие действия при осуществлении настройки нового сервера:

  1. Создает базу данных с именем ldapdb2.
  2. Создает дерево AIX DN (суффикс) для каждого пользователя или группы пользователей ОС AIX.
  3. Экспортирует пользователей и группы из базы данных локального хоста в базу данных LDAP.
  4. Устанавливает имя и пароль администратора LDAP-сервера.
  5. Предоставляет в качестве дополнительной возможности серверу использовать протокол Secure Sockets Layer (SSL).
  6. Устанавливает плагин /usr/ccs/lib/libsecldapaudit для аудита LDAP-сервера.
  7. Запускает LDAP-сервер после того, как все действия, описанные выше, выполнены.
  8. Добавляет запись LDAP-сервера в файл /etc/inittab для автоматического запуска после перезагрузки системы.

mksecldap -s -a cn=admin -p passwd -S rfc2307aix

Вся установочная информация хранится в файле /etc/ibmslapd.conf.

Конфигурация клиентской системы AIX для IBM Directory Server

Пакет файлов ldap.client содержит библиотеки клиента IBM Directory, заголовочные файлы и утилиты. С помощью команды mksecldap можно настроить клиент для операционной системы AIX для совместного использования с IBM Directory Server, как показано далее:

mksecldap -c -h <LDAP Server name> -a cn=admin -p adminpwd -S rfc2307aix

У системного администратора должен быть логин и пароль администратора IBM Directory для конфигурирования AIX-клиента (клиентской операционной системы). Как только AIX-клиент настроен, демон-процесс secldapclntd начинает выполняться. Cразу после того, как AIX-клиент будет настроен для работы с IBM Directory Server, нужно изменить параметр SYSTEM в файле /etc/security/user на LDAP OR compat или compat or LDAP для осуществления аутентификации пользователей в клиентской AIX.

Файл /usr/lib/security/methods.cfg содержит определение загрузочного модуля. Команда mksecldap добавляет следующий фрагмент кода для запуска в работу загрузочного модуля LDAP при настройке клиентской операционной системы.

 LDAP:
	program = /usr/lib/security/LDAP
	program_64 = /usr/lib/security/LDAP64

Файл /etc/security/ldap/ldap.cfg, находящийся на клиентском компьютере, содержит конфигурационную информацию для клиентского демон-процесса secldapclntd. Этот конфигурационный файл содержит информацию о названии IBM Directory Server, binddn, и пароле. Файл автоматически обновляется командой mksecldap во время установки LDAP-клиента.

Параметр auth_type в файле /etc/security/ldap/ldap.cfg определяет, где нужно проводить аутентификацию пользователя. Если параметр auth_type равняется UNIX_AUTH, тогда пользователь проходит аутентификацию в клиентской операционной системе. Если значение параметра равняется ldap_auth, тогда пользователь проходит аутентификацию на IBM Directory Server.

Настройка IBM Directory Server для использования SSL

IBM Directory Server и клиент IBM Directory можно сконфигурировать с учетом использования SSL. Это позволяет избежать передачи данных в виде открытого текста через сеть. SSL шифрует информацию и затем посылает ее через сеть. IBM Directory Server при помощи SSL шифрует информацию о пароле пользователя и затем посылает ее через сеть.

Необходимы следующие пакеты файлов для осуществления шифрования на стороне клиента и сервера:

  • ldap.max_crypto_server;
  • ldap.max_crypto_client.

Для начальной установки сервера нужно выполнить следующую команду:

mksecldap -s -a cn=admin -p pwd -S rfc2307aix -k usr/ldap/etc/mykey.kdb -w keypwd

где mykey.kdb - база данных с ключами, а keypwd является паролем к ней.

Для серверов, которые уже настроены и работают, следует запустить команду:

mksecldap -s -a cn=admin -p pwd -S rfc2307aix -n NONE -k /usr/ldap/etc/mykey.kdb -w keypwd

Для начальной установки клиента нужно выполнить команду:

mksecldap -c -h <ldapserver name> -a cn=admin -p adminpwd -k /usr/ldap/key.kdb -w keypwd

Часто используемые команды на AIX LDAP-клиенте представлены в таблице 1 ниже.


Таблица 1. Часто используемые команды
/usr/sbin/start-secldapclntdЗапускает secldapclntd; аналогичного результата можно добиться введя в командную строку secldapclntd
/usr/sbin/stop-secldapclntdОстанавливает демон secldapclntd
/usr/sbin/restart-secldapclntdОстанавливает выполняемый в данный момент демон secldapclntd и перезапускает его. Если secldapclntd не выполняется, действие этой команды аналогично действию start-secldapclntd
/usr/sbin/ls-secldapclntdВыводит статус демона secldapclntd, включая сервер, к которому было совершено обращение, номер порта и т.д.
/usr/sbin/flush-secldapclntdОчищает кэш демона secldapclntd
mkuser -R LDAP <username>Создает пользователей от LDAP-клиента

Возможные проблемы при использовании LDAP

Этот раздел описывает несколько типичных проблем, для каждой из которых приведено рекомендуемое решение.

Проблема: LDAP-сервер запускается только в режиме конфигурации...

LDAP-сервер запускается только в конфигурационном режиме, а его перезапуск или конфигурирование возвращают следующие ошибки: "Failed to initialize be_config. Error encountered. Server starting in configuration only mode".

Решение:

  1. Нужно проверить, что сервер запускается только в режиме конфигурации. Для этого используются следующее команды или анализируется файл /var/ldap/ibmslapd.log.

    # ldapsearch -h teak01.upt -b "" -s base objectclass=* | grep config
    ibm-slapdisconfigurationmode=TRUE
    	

  2. Иногда лицензионный ключ DB2 зарегистрирован некорректно. Это одна из главных причин рассматриваемой нами сейчас проблемы. Для того чтобы зарегистрировать лицензионный ключ правильно и устранить проблему, нужно:
    1. Войти под администраторской учетной записью.
    2. Зарегистрировать лицензионный ключ базы данных DB2:
    #/usr/opt/db2_08_01/adm /db2licm -a /usr/ldap/etc/ldap-custom-db2ese.lic
    #/usr/opt/db2_08_01/adm /db2licm -a /usr/ldap/etc/db2wsue.lic
    	

  3. Если шаги выше не решили проблему, следует восстановить настройки по умолчанию для LDAP-сервера и экспортировать LDAP_DBG=1, прежде чем заново настраивать LDAP-сервер. Файлы /var/ldap/dbg.out, /var/ldap/dbg.log и /var/ldap/ibmslapd.log должны содержать необходимую диагностическую информацию для отладки этой проблемы в дальнейшем.

Проблема: невозможно войти в систему зарегистрированным в LDAP пользователем

Невозможно войти в систему зарегистрированным в LDAP пользователем после успешной настройки IBM Directory Server.

Решение:
Скорей всего, возникла одна из следующих ошибок, которые могут создать неправильное представление о существовании какого-либо конкретного пользователя в базе данных LDAP.

  1. При конфигурации LDAP-клиента использовалась команда mksecldap -u <userlist> с разделенным запятыми списком имен пользователей или ALL для выбора всех пользователей на данном LDAP-клиенте. Это означает, что параметры регистрации пользователей передаются в LDAP.

    mksecldap -c -h monster -a cn=admin -p adminpwd -u user1,user2
    

    Флаг -u гарантирует что пользователи user1 и user2 могут работать на LDAP-клиенте, но этот флаг не добавляет никаких пользователей в базу данных LDAP-сервера. Вход в систему будет успешным для пользователей, если они были добавлены в базу данных LDAP-сервера при помощи команды mkuser -R LDAP <user name> или если они были добавлены при выполнении конфигурации сервера, как показано ниже:

    mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix
    

    Все локальные пользователи будут добавлены в базу данных LDAP-сервера в этом случае. Поскольку user1 и user2 локальные пользователи, они будут автоматически добавлены в базу данных LDAP-сервера.

  2. Нужно убедиться, что LDAP-сервер запущен. Должны выполняться процессы ibmdiradm и ibmslapd:

    # ps -eaf |grep ibm
        ldap 278760      1   0   Jan 14      -  0:08 /usr/ldap//bin/ibmdiradm -l
        ldap 434392      1   2   Jan 14      - 339:44 ibmslapd -f/etc/ibmslapd.conf
    			

  3. Нужно убедиться, что LDAP-клиент запущен. Должен выполняться процесс secldapclntd:

    # ps -eaf |grep -i secldap
        root 393408      1   0   Jan 14      -  0:15 /usr/sbin/secldapclntd
        root 725062 692358   0 03:20:38  pts/0  0:00 grep -i secldap
    			

  4. Нужно проверить, существует ли нужный нам пользователь на сервере:

    # lsuser -R LDAP usr_3112
    usr_3112 id=3112 pgrp=gp_3112 groups=gp_3112,gp_3118,gp_3124 home=/tmp shell=/usr/bin/ksh
    login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups=
        tpath=nosak
    ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=LDAP
    SYSTEM=KRB5LDAP OR compat logintimes= loginretries=0 pwdwarntime=0
    account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minother=0
    mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= fsize=-1
    cpu=-1 data=262144 stack=65536 core=2097151 rss=65536 nofiles=2000 roles=
    

  5. Нужно проверить параметры регистрации пользователя и атрибут SYSTEM. Они должны быть заданы на LDAP-клиенте.

    lsuser -a registry SYSTEM username
    

  6. Нужно проверить, был ли добавлен следующий фрагмент кода в файл /usr/lib/security/methods.cfg:

    # grep -p LDAP /usr/lib/security/methods.cfg
    LDAP:
            program = /usr/lib/security/LDAP
            program_64 =/usr/lib/security/LDAP64
    

Проблема: нужно перенести всех пользователей AIX на LDAP-сервер

Что необходимо выполнить, чтобы всех пользователей AIX зарегистрировать на LDAP-сервере? Позволяет ли применение mksecldap во время конфигурации LDAP-сервера перенести на него определенную группу пользователей AIX?

Решение:
Нет. По умолчанию команда mksecldap принуждает выполнять авторизацию на LDAP-сервере всех пользователей AIX.

Если не нужно, чтобы все пользователи AIX проходили LDAP-авторизацию, то следует использовать команду mksecldap с опцией -u NONE.

#mksecldap -s -a cn=admin -p adminpwd -s rfc2307aix -u NONE

Проблема: mkuser возвращает сообщение об ошибке

Команда mkuser может возвращать следующее сообщение об ошибке:

  # mkuser -R LDAP test
3004-686 Group "staff" does not exist.
3004-703 Check "/usr/lib/security/mkuser.default" file.

Решение:
Если LDAP-клиент и NIS-клиент сконфигурированы на одном компьютере, тогда невозможно будет осуществить добавление новых пользователей к LDAP-клиенту. Потому в этом случае будет выдано сообщение об ошибке. Для исправления этой ошибки нужно установить APAR IY90556.

Проблема: как с помощью mksecldap выполнить LDAP-авторизацию определенной группы пользователей AIX?

Можно ли, пользуясь mksecldap во время конфигурации сервера, выполнять LDAP-авторизацию определенной группе пользователей AIX?

Решение:
Нет. mksecldap не позволяет выполнять LDAP-авторизацию определенной группе пользователей AIX. Однако существует выход - запустить команду mksecldap пока без указания пользователей, которые должны проходить LDAP-авторизацию, и создать требуемых пользователей командой mkuser -R LDAP позже.

Отметим, что флаг -u во время выполнения конфигурирования сервера поддерживает только аргумент NONE.

mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix -u user1,user2

В этом случае все локальные пользователи будут проходить LDAP-авторизацию.

Проблема: проблемы, которые могут возникнуть с конфигурацией LDAP-клиента, если конфигурация сервера выполнялась с использованием опции -u NONE

Эта проблема возникает в трех случаях.

Решение


Проблема 1:

/usr/sbin/mksecldap -c -h batonrouge05.upt.austin.ibm.com  -a cn=admin -p passw0rd

"Cannot find users from all base DN
client setup failed."

При установке LDAP-клиента выполняется проверка командой ldapsearch чтобы узнать, добавлены ли уже какие-либо пользователи в LDAP-сервер. Конфигурация прекращается, если на LDAP-сервере не было обнаружено пользователей. По крайней мере один пользователь должен быть добавлен в LDAP-сервер чтобы исключить эту проблему.

Добавим пользователя к LDAP DIT (Directry Information Tree) при помощи команды ldapadd.

dn: ou=People,cn=admin
ou: People
objectClass: organizationalUnit

dn: uid=testuser,ou=People,cn=admin
uid: testuser
objectClass: aixauxaccount
objectClass: shadowaccount
objectClass: posixaccount
objectClass: account
objectClass: ibm-securityidentities
objectclass: top
cn: testuser
passwordchar: *
uidnumber: 203
gidnumber: 203
homedirectory: /home/testuser
loginshell: /usr/bin/ksh
isadministrator: false

Проблема 2:

mksecldap -c -h batonrouge05.upt.austin.ibm.com -a cn=admin -p passw0rd

"Cannot find the group base DN from the LDAP server.
Client setup failed."

Отличительное имя группы пользователей должно быть отражено в LDAP DIT прежде, чем будет осуществлена конфигурация LDAP-клиента DN. Ошибка возникает из-за несуществующего отличительного имени группы DN. Необходимо добавить группу, чтобы решить эту проблему.

Следующий файл ldif должен быть добавлен в LDAP DIT при помощи команды ldapadd.

dn: ou=Groups,cn=admin
ou: Groups
objectClass: organizationalUnit

dn: cn=testgrp,ou=Groups,cn=admin
cn: testgrp
objectclass: aixauxgroup
objectclass: posixgroup
objectclass: top
gidnumber: 203
memberuid: testuser
isadministrator: false

Проблема 3:
Создание пользователя при помощи mkuser на сервере, сконфигурированном при помощи -u NONE и с правильно настроенным LDAP-клиентом.

# mkuser -R LDAP id=1000 pgrp=grp_2000 groups="grp_2006,grp_2012" usr_1000
Group "staff" does not exist.
Check "/usr/lib/security/mkuser.default" file.

Команда mkuser проверяет уже существующих пользователей и группы, даже если не собирается их использовать. Выполнение этой команды не удалось, так как группы, названной staff, не существует.

Все проблемы, рассмотренные в этом разделе, можно решить в один прием, если добавить следующий файл к ldif к LDAP.

dn: ou=Groups,cn=admin
ou: Groups
objectClass: organizationalUnit

dn: cn=staff,ou=Groups,cn=admin
cn: staff
objectclass: aixauxgroup
objectclass: posixgroup
objectclass: top
gidnumber: 203
memberuid: testuser
isadministrator: false

dn: ou=People,cn=admin
ou: People
objectClass: organizationalUnit

dn: uid=testuser,ou=People,cn=admin
uid: testuser
objectClass: aixauxaccount
objectClass: shadowaccount
objectClass: posixaccount
objectClass: account
objectClass: ibm-securityidentities
objectclass: top
cn: testuser
passwordchar: *
uidnumber: 203
gidnumber: 203
homedirectory: /home/testuser
loginshell: /usr/bin/ksh
isadministrator: false

Файл ldif можно добавить к LDAP-серверу как показано ниже:

#/usr/bin/ldapadd -D $ADMIN_DN -w $ADMIN_DN_PASSWD -f <ldif file>

Отличительное имя сконфигурированного LDAP-сервера должно быть использовано в ldif-файле. Иначе, файл ldif не будет корректно добавлен.

Поделиться...

digg Отправить на Digg
del.icio.us Опубликовать на del.icio.us
Slashdot Разместить на Slashdot!



Ресурсы

Научиться

Получить продукты и технологии
  • IBM trial software: ознакомительные версии программного обеспечения для разработчика, которые можно загрузить со страницы developerWorks.

Обсудить


Об авторах

фотография Ума Чандолу

Ума М. Чандолу (Uma M. Chandolu) - разработчик AIX и специалист поддержки подсистемы безопасности AIX из IBM India Systems and Technology Lab. Он два года занимался практическими вопросами безопасности AIX. Ума специализируется на безопасности AIX и является экспертом по администрированию AIX и программированию ее подсистемы безопасности. С ним можно связаться по адресу электронной почты uchandol@in.ibm.com.


Фотография Рави Ковиллы

Рави К. Коввила (Ravi K. Kovvila) - лидер группы тестировщиков программного обеспечения для AIX и UNIX в IBM India Systems and Technology Lab. Он сотрудничает с IBM уже семь лет. К его последним проектам относятся обеспечение тестирования AIX, ее тестирование, написание заказных интерфейсов, проектирование процедур тестирования, проверки и инициативы по улучшению технической живучести. Его специализация - обеспечение безопасности AIX (LDAP и Kerberos), NFS, NIS, и WebSphere®MQ. С ним можно связаться по следующему адресу электронной почты rkovvila@in.ibm.com.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



ДаНетНе знаю
 


 


12345
 


В начало


IBM, AIX, AIX 5L, DB2, SecureWay, и Tivoli зарегистрированные торговые марки International Business Machines Corporation в Соединенных Штатах Америки и других странах. Java и все связанные с Java торговые марки принадлежат Sun Microsystems, Inc. в Соединенных Штатах Америки и других странах. Linux зарегистрированная торговая марка Линуса Торвальдса (Linus Torvalds) в Соединенных Штатах Америки и других странах. UNIX зарегистрированная торговая марка The Open Group в Соединенных Штатах Америки и других странах. Другая компания, продукт или название услуги могут быть торговыми марками или знаками обслуживания, принадлежащими иным физическим или юридическим лицам.

IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.

    IBM в России Конфиденциальность Контакты