Нововведения в LDAP-клиенте, появившиеся в 7-ой версии ОС AIX

Протокол LDAP (lightweight directory access protocol - облегчённый протокол доступа к каталогам) является подклассом x.500 – другого протокола для доступа к каталогам. Протокол LDAP хранит информацию о различных объектах и может быть использован для отображения имён пользователей или групп, названий файлов и т.д. Этот протокол позволяет осуществлять обмен информацией между LDAP-клиентами и LDAP-сервером. Приложения используют LDAP-клиентов для взаимодействия с LDAP-сервером, чтобы получить запрашиваемую информацию. В этой статье представлен краткий обзор возможностей встроенного AIX LDAP-клиента, появившихся в версиях 6.1 и 7.1 ОС AIX®.

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

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



Джойти Б. Тенгинакаи, разработчик ПО, IBM

фото Джойти Б. ТенгинакаиДжойти Тенгинакаи (Jyoti Tenginakai) работает разработчиком ПО в IBM India. Джойти обладает семилетним опытом в области разработки ПО и уже 5 лет работает в IBM India. В начале работы в IBM она работала над такими OpenSource-компонентами, как OpenSSH и LSOF. Также Джойти работала над функциональностью Trusted Execution и EFS. Она имеет степень бакалавра в области электроники и коммуникаций, полученную в технологическом университете Висвешварайа.



29.04.2013

Введение

Поддержка LDAP в виде загружаемого модуля появилась в AIX начиная с версии 4.3. Протокол LDAP требует наличия соединения и работает поверх TCP/IP. Этот модуль может быть сконфигурирован для управления пользователями и группами в ОС AIX. Собственные команды AIX интегрированы с функциональностью LDAP. Демон LDAP-клиента в AIX (secldapclntd) выполняет запросы к LDAP-серверу и загружает необходимую информацию с LDAP-сервера в зависимости от запроса приложения или команды. В этой статье рассматриваются нововведения в AIX LDAP-клиенте, появившиеся начиная с версий 6.1 Tl06 и 7.1. В версии AIX 6.1 Tl06 в LDAP-клиент были внесены следующие улучшения:

  • чувствительность к регистру;
  • поддержка псевдонимов;
  • улучшенное кэширование информации;
  • кэширование запросов на поиск несуществующей информации;
  • интеграция LDAP с функциональностью Domain RBAC.

Чувствительность к регистру

Для имён пользователей и групп, хранящихся на LDAP-сервере, не делается различий между регистром символов (строчные или прописные). Так, для LDAP пользователи с именами foo, Foo и FOO – это один и тот же пользователь. На платформе UNIX®, однако, регистр символов учитывается, и все эти пользователи будут считаться уникальными. Поэтому, когда определённые привилегии даются или отнимаются у любого из перечисленных пользователей в системе AIX, то на LDAP-сервере это изменение будет применено ко всем указанным пользователям. Подобное поведение может привести к появлению "бреши" в системе защиты ОС AIX.

В LDAP-клиент AIX были внесены улучшения для устранения данной проблемы с различением регистров. В конфигурационный файл LDAP-клиента (/etc/security/ldap/ldap.cfg) был добавлен новый параметр caseExactAccountName. Если значение этого параметра равно yes, LDAP-клиент проверяет, что введённое имя пользователя в точности соответствует результатам, возвращённым LDAP-сервером. По умолчанию эта опция имеет значение no. Чтобы изменения, внесенные в конфигурационный файл, вступили в силу, необходимо перезапустить демон LDAP-клиента.

Для перезапуска демона LDAP-клиента используйте следующую команду:

#/usr/sbin/restart-secldapclntd

Если значение параметра caseExactAccountName равно yes, а на LDAP-сервере существует пользователь с именем foo, то при попытке администратора создать нового пользователя с именем Foo команда mkuser выведет следующее сообщение.

#mkuser -R LDAP Foo       
3004-698 Error committing changes to "Foo".

Аналогично, при использовании команды lsuser выводится следующее сообщение:

# lsuser -R LDAP Foo
3004-687 User "Foo” does not exist.

Поддержка псевдонимов в LDAP

Протокол LDAP хранит информацию в формате DIT (directory information tree – информационное дерево каталога) и управляет пользователя и группами. Иногда пользователь может иметь сразу несколько имён или называться псевдонимом, указывающим на основного пользователя.

LDAP хранит информацию в дереве каталога в следующем формате:

dn:uid=foo,ou=people,cn=aixdata
uid:foo
uid:foo1
objectclass: posixaccount
…

Последовательность dn: uid=foo,ou=people,cn=aixdata называется "уникальным именем" (distinguished name - DN) пользователя. Относительным уникальным именем (relative distinguished name - RDN) пользователя является параметр uid: uid: foo или uid : foo1. Команды AIX, такие как lsuser, загружают атрибуты пользователя из LDAP, используя значения foo или foo1. В то же время для входа в систему в AIX используется уникальное имя пользователя. Поэтому вход в систему от имени foo будет успешным, а вот с именем foo1 войти уже не получится. AIX LDAP-клиент был усовершенствован для поддержки псевдонимов LDAP при входе пользователя в систему.


Улучшения в кэшировании данных

Демон AIX LDAP-клиента secldapclntd хранит информацию о пользователях и группах, полученную от LDAP-сервера, в кэше LDAP-клиента. Атрибуты пользователя хранятся в кэше пользователей, а атрибуты групп – в кэше групп. Каждая запись в кэше имеет временную отметку. После того как срок действия истекает (продолжительность этого периода можно настроить), запись в кэше становится недействительной и запрос на поиск пользователя приводит к отправке запроса на LDAP-сервер. Новый результат, полученный от LDAP-сервера, снова кэшируется для последующих запросов к LDAP-клиенту от приложений и команд.

В текущей реализации механизм кэширования имеет одно ограничение. Когда параметры учётной записи пользователя изменяются или обновляются, новые значения могут оказаться «незамеченными» AIX-системой, если в кэше всё ещё находится запись о пользователе со старыми значениями. Например, при смене пароля, пока срок действия кэша не истёк и в нём содержится старое значение пароля, пользователь может иметь возможность войти в систему со старым паролем даже после того, как пароль был изменен на другой системе. И наоборот, пользователь не сможет войти в последнюю систему с новым паролем, пока в кэше находится старый пароль и содержимое кэша считается действительным.

Это ограничение можно устранить путём расширения механизма кэширования LDAP-клиента. В файлы отображения (map files) LDAP, описывающие атрибуты пользователей и групп, добавляется новый атрибут TO_BE_CACHED. По умолчанию значение этого атрибута равно yes, и все атрибуты пользователей и групп кэшируются. Его можно установить в no для тех атрибутов пользователей и групп, которые не должны кэшироваться. Когда приходит запрос на поиск пользователя, LDAP-клиент считывает кэш и проверяет, может ли результат запроса быть извлечён из кэша. Но до этого он сканирует файлы отображения, описывающие атрибуты пользователей и групп, чтобы проверить, что атрибут TO_BE_CACHED не установлен хотя бы для одного атрибута пользователя или группы. Если же он установлен, то запрос считывается не из кэша, а отправляется на LDAP-сервер для получения актуальной информации.


Кэширование запросов на поиск несуществующей информации

Другим улучшением в AIX LDAP-клиенте стало то, что демон secldapclntd кэширует информацию о несуществующих пользователях и группах, полученную от LDAP-сервера. Если приходит запрос о пользователях или группах, информация о которых отсутствует на LDAP-сервере, то сервер посылает сообщение об отсутствии данного пользователя или группы, и эта информация кэшируется. Когда клиент в следующий раз запросит информацию о несуществующих пользователях, вместо отправки запроса на сервер эта информация будет извлечена из кэша и возвращена пользователю. Такой подход повышает производительность в ситуации, когда часто выполняются запросы на предмет одних и тех несуществующих пользователей или групп. Эта особенность AIX LDAP-клиента, когда в кэше сохраняется информация о пользователях, которых на самом деле не существует, называется кэшированием отрицательных результатов (negative caching).


Интеграция Domain RBAC с LDAP-сервером

В версиях AIX 6.1 Tl07 и 7.1 Tl02 и последующих в LDAP-клиент была добавлена возможность интеграции Domain RBAC (Domain Role Based Access Control – управление доступом к домену и его ресурсам на основе ролей) с LDAP-сервером. AIX LDAP-клиент запрашивает информацию, относящуюся к DRBAC, из LDAP-сервера и загружает её в ядро AIX, которое контролирует использование ресурсов системы. Команды DRBAC и LDAP-клиента были доработаны, чтобы поддерживать функциональность DRBAC, хранящуюся на LDAP-сервере.

Для настройки базы данных Domain RBAC внутри LDAP-сервера выполните следующие действия:

  1. Загрузите схему Domain RBAC в LDAP-сервер с помощью команды ldapadd. Эта схема поставляется с серверами AIX 6.1 Tl07 и AIX 7.1 Tl02. Схема для сервера каталогов Tivoli (Tivoli Directory Server) находится в файле /etc/security/ldap/sec.ldif. База данных DRBAC также может быть сконфигурирована и на сервере Microsoft® Windows Active Directory.

    Если LDAP-сервер развёрнут на базе Microsoft Windows Active Directory, то используйте файл /etc/security/ldap/aixSchemaForAD.ldif. Используйте следующую команду для загрузки схемы DRBAC в LDAP-сервер:

        ldapadd –h <ldap servername> -D <bindn> -w <bind password> -i
        <schema file> -c –v
  2. Преобразуйте базу данных DRBAC в формат LDIF. Существующая команда rbactoldif была усовершенствована для преобразования базы данных DRBAC в формат LDIF.

    Следующая команда переведет базу данных DRBAC в формат LDIF и экспортирует её в файл /tmp/domain.ldif.

        rbactoldif -d <basedn> -s eo  >> /tmp/domain.ldif
  3. Экспортируйте базу данных DRBAC в формате LDIF-файла на LDAP-сервер с помощью команды ldapadd:
    ldapadd -h <ldapservername> -D <binddn> -w <bind password > -i
        /tmp/domain.ldif -v
  4. Перенастройте LDAP-клиент с помощью команды mksecldap для добавления записей из древовидной структуры DRBAC в конфигурационный файл LDAP-клиента /etc/security/ldap/ldap.cfg:
    #mksecldap -c –h <LDAP server> -a <bind dn> -p <bind passwd> -S
        rfc2307aix
  5. С помощью команды lsldap убедитесь, что суффиксы домена (domain suffixes) загружены на LDAP-сервер:
    #lsldap

    Эта команда выведет суффиксы DRBAC вместе с суффиксами других доменов.

  6. Добавьте следующий фрагмент в файл /etc/nscontrol.conf на системе, где развёрнут LDAP-клиент, чтобы получать информацию от Domain RBAC из LDAP-сервера с помощью стандартных команд AIX:
    domains:
    	secorder = LDAP,files
    domobjs:
    	secorder = LDAP,files
  7. Загрузите таблицы Domain RBAC в ядро AIX-системы, на которой установлен LDAP-клиент, с помощью команды setkst.
    #setkst
  8. 7. Убедитесь, что суффиксы домена и доменных объектов настроены правильно. Для этого используются такие команды, как mkdom, lsdom, chdom, rmdom и setsecattr, которые при указании опции –R LDAP позволяют управлять доменами и доменными объектами, находящимися на LDAP-сервере.
    mkdom –R LDAP <domain name>

    setsecattr –R LDAP –o domains=<domain name> objtype=file <object name>

Ресурсы

  • LDAP client enhancements in AIX 7: оригинал статьи (EN).
  • LDAP configuration and management (developerWorks, май 2007 г.) (EN): краткий обзор по конфигурации и управлению IBM Directory Server для ОС AIX.
  • Руководство IBM Redbook Understanding LDAP - Design and Implementation поможет освоить навыки работы с LDAP, а также установить и настроить IBM Directory Server.
  • Introduction to Domain RBAC (EN) (developerWorks, сентябрь 2011 г.): эта статья предоставляет вводную информацию, позволяющую познакомиться с Domain RBAC и начать использовать эту технологию для детального контроля доступа к объектам и ресурсам.
  • AIX Security Guide (EN): это руководство содержит полезную информацию об различных особенностях реализации системы безопасности в ОС AIX 7.1

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=900938
ArticleTitle=Нововведения в LDAP-клиенте, появившиеся в 7-ой версии ОС AIX
publish-date=04292013