Аппаратные средства и архитектура



Скачать 10.18 Mb.
Pdf просмотр
страница42/68
Дата22.11.2016
Размер10.18 Mb.
Просмотров7303
Скачиваний0
1   ...   38   39   40   41   42   43   44   45   ...   68
Тема
экзамена
LPI 301
Руководство
developerWorks
Краткое описание руководства
Тема 301
Подготовка к экзамену
LPI 301:
понятия, архитектура и модель
Узнайте о понятиях и архитектуре LDAP, о том, как проектировать и внедрять каталог
LDAP, а также о схемах.
Тема 302
Подготовка к экзамену
LPI 301:
установка и разработка
Узнайте, как устанавливать, настраивать и использовать программное обеспечение
OpenLDAP.

Тема 303
Подготовка к экзамену
LPI 301:
конфигурирование
Узнайте более подробно о том, как настраивать программное обеспечение
OpenLDAP.
Тема 304
Подготовка к экзамену
LPI 301:
использование
Узнайте, как следует выполнять поиск по дереву каталога LDAP и использовать утилиты OpenLDAP.
Тема 305
Подготовка к экзамену
LPI 301:
интеграция и миграция
(Это руководство) Узнайте, как использовать
LDAP в качестве источника данных для ваших системных приложений. См. подробные цели
Тема 306
Подготовка к экзамену
LPI 301:
планирование пропускной способности
Появится в ближайшее время.
Чтобы сдать экзамен 301 (и получить сертификацию третьего уровня), вы должны:

обладать несколькими годами опыта установки и поддержки Linux на большом числе компьютеров, используемых в различных целях

обладать опытом интеграции с различными технологиями и операционными системами

обладать профессиональным опытом или пройти профессиональную подготовку специалиста Linux корпоративного уровня (включая опыт, полученный при работе в другой роли)

знать администрирование Linux на углубленном и высоком уровне, включая установку, управление, обеспечение безопасности, решение возникающих проблем и техническое обслуживание

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

иметь профессиональный опыт применения LDAP для интеграции с сервисами
UNIX® и Microsoft® Windows®, в том числе Samba, Pluggable Authentication Modules
(PAM), электронной почтой и Active Directory

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

уметь создавать сценарии на Bash или Perl или знать как минимум один язык системного программирования (например, C)
Для дальнейшей подготовки к сертификации уровня 3, ознакомьтесь с серией руководств для подготовки к экзамену 301 Института LPI
(EN), а также со всей серией руководств developerWorks для подготовки к экзаменам LPI
Институт Linux Professional Institute не дает рекомендаций по каким-либо конкретным материалам и методикам для подготовки к экзаменам, разработанным сторонними лицами.
Об этом руководстве
Добро пожаловать в пятое из шести руководств
, призванных помочь вам подготовиться к сдаче экзамена LPI 301, - "Интеграция и миграция". Из этого руководства вы узнаете об интеграции LDAP с системами аутентификации и другими службами UNIX.
Это руководство организовано в соответствии с целями LPI по этой теме. Условно говоря, чем выше вес цели, тем больше вопросов по этой теме будет на экзамене.

Цели
В таблице 2 подробно перечислены цели этого руководства.
Таблица 2. Интеграция и миграция: цели экзамена, описанные в этом руководстве
Цель экзамена LPI
Вес
цели
Краткое описание цели
305.1
Интеграция LDAP и
PAM/NSS
2
Осуществите интеграцию LDAP и основных систем аутентификации
305.2
Миграция с NIS на LDAP
1
Разработайте и реализуйте стратегию миграции
NIS, включая развертывание шлюза с NIS на
LDAP
305.3
Интеграция LDAP и служб
UNIX
1
Используйте ваш LDAP-сервер в качестве источника данных для SSH, FTP, HTTP и других служб.
305.4
Интеграция LDAP и
Samba
1
Используйте ваш LDAP-сервер в качестве источника данных для Samba.
305.5
Интеграция LDAP и Active
Directory
2
Используйте ваш LDAP-сервер вместе со службой каталога Active Directory.
305.6
Интеграция LDAP и служб электронной почты
1
Осуществите интеграцию каталога LDAP и ваших почтовых служб.
В начало
Необходимые условия
Чтобы извлечь максимум пользы из этого руководства, вы должны обладать глубокими знаниями Linux и иметь работающую Linux-систему, на которой вы сможете практиковаться в выполнении рассматриваемых задач.
Если ваши базовые знания Linux немного устарели, вы можете сначала ознакомиться с руководствами для экзаменов LPIC-1 и LPIC-2
Различные версии программ могут выводить данные в различных форматах, поэтому результаты, полученные вами, могут отличаться от листингов и рисунков, приведенных в этом руководстве.
Требования к системе
Чтобы выполнить примеры, приведенные в этом руководстве, вам потребуется рабочая станция под управлением Linux с пакетом OpenLDAP и поддержкой PAM. Большинство современных дистрибутивов удовлетворяют этим требованиям.
Подготовка к экзамену LPI 301: Тема 305.
Интеграция и миграция
Профессионал Linux высокого уровня (LPIC-3)

Шон Уолберг
, старший сетевой инженер, P.Eng
Описание: В этом руководстве Шон Уолберг поможет вам подготовиться к экзамену института Linux® Professional Institute на квалификацию профессионала Linux высокого уровня (LPIC-3). В этом руководстве, пятом из серии из шести руководств
, Шон расскажет об интеграции LDAP с вашими системными учетными данными и приложениями. Также он подробно расскажет о процедуре интеграции вашего сервера в среду Microsoft® Active
Directory.
Интеграция LDAP и PAM/NSS
В этом разделе описывается материал по теме 305.1 экзамена на профессионала Linux высокого уровня (LPIC-3) 301. Эта тема обладает весом 2.
Из этого раздела вы узнаете, как:

Настроить NSS на получение информации из каталога LDAP

Настроить PAM на использование LDAP для аутентификации

Настроить модули PAM в различных средах UNIX
В традиционном для UNIX стиле средства PAM и NSS (Name Service Switch) абстрагируют многочисленные компоненты систем аутентификации и поиска от их реализации, что позволяет администратору менять конечные хранилища данных без перекомпилирования приложений. Например, переход от традиционной аутентификации на основе файла
/etc/passwd к службе NIS (Network Information Service) прозрачен, поскольку механизм NSS реализован как часть библиотеки C. Для поиска пользователей приложения используют стандартные библиотечные вызовы, такие как getpwent(3), однако при помощи некоторых хитростей в конфигурации данные перенаправляются в другое хранилище, например, NIS.
PAM работает немного иначе, поскольку приложения должны быть специально написаны с учетом того, что им предстоит работать с PAM. Администраторы могут использовать богатый набор библиотек, позволяющих выполнять необходимые настройки ориентированного на работу с PAM приложения; например, чтобы пользователь мог успешно пройти аутентификацию, можно потребовать, чтобы он являлся членом определенной группы и выполнял вход в систему только в определенное время.
При аутентификации пользователей PAM и NSS могут работать в связке. Приложения, ориентированные на работу с PAM, дают указания PAM выполнять проверку учетных данных пользователя. Помимо других ограничений, администратор может настроить PAM на проверку пароля через механизм NSS. PAM используется только для работы с базами password и shadow, и не может работать с другими базами, такими как groups и hosts.
Поддержку PAM и NSS со стороны LDAP обеспечивает Open Source-пакет от PADL Software.
Настройка NSS на использование LDAP
Функционал NSS реализован в библиотеке C в виде перехватчика традиционных библиотечных вызовов, служащего для получения информации. Библиотека C содержит такие функции, как getpwent – для получения информации о пользователе и gethostbyname(3) – для получения информации о хосте. Традиционно эти функции были реализованы в виде процедур просмотра файлов etc/passwd и /etc/hosts соответственно.
Путем настройки NSS администратор может заставить функцию просмотра информации о хосте также использовать службу DNS (Domain Name Service), при этом приложение даже не будет знать об этих изменениях.

Понимание NSS
В таблице 3 перечислены базы данных, с которыми работает NSS. Большинство из них имеют соответствующий файл в директории /etc, в которой обычно хранятся данные.
Таблица 3. Базы данных NSS
Имя базы
данных
Описание
aliases
Почтовые псевдонимы для sendmail, используемые для перенаправления одного локального адреса на другой.
ethers
Сопоставляет Ethernet-адреса IP-адресам. Редко встречается в настоящее время, поскольку теперь для этого существует протокол ARP (Address Resolution Protocol).
group
Содержит список групп и пользователей, являющихся их участниками.
hosts
Сопоставляет IP-адреса именам хостов.
netgroup
Используется для группировки серверов. Наиболее часто используется для безопасности NIS и NFS (Network File System).
networks
Сопоставляет имена сетей их номерам. Используется не часто, поскольку информация об имени сети не представляет большого значения.
passwd
Хранит информацию об учетных записях пользователей, содержащую имя, ID, главную группу, домашний каталог и иногда пароль пользователя.
protocols Сопоставляет IP-протоколы их именам.
publickey Используется для распространения ключей NFS и NIS+.
rpc
Сопоставляет имена RPC-функций (Remote Procedure Call) их номерам.
services
Сопоставляет имена служб TCP и UDP номерам портов.
shadow
Защищенный, зашифрованный файл паролей. Обычно в этом файле хранится поле password из файла /etc/passwd, чтобы обеспечить конфиденциальность пароля.
Настройки NSS хранятся в файле /etc/nsswitchconf, содержащем по одной строке для каждой базы данных из таблицы 3.
Листинг 1. Пример файла nsswitch.conf
passwd: files nis shadow: files nis group: files nis hosts: files nis dns
В листинге 1 приведен пример настройки четырех таблиц сопоставления: passwd, shadow, group и hosts. За именем таблицы следует знак двоеточия (:) и упорядоченный список методов доступа к данным. Первые три строки листинга 1 одинаковы: первая строка выполняет поиск необходимой информации в файлах, а затем обращается к службе NIS, иногда называемой службой "желтых страниц" (Yellow Pages). Поиск данных в NIS выполняется только в том случае, если ничего не было найдено в файлах. Последняя строка листинга использует для поиска информации о хостах файлы (/etc/hosts), службу NIS, а затем службу DNS.
Для каждого метода, доступного для использования в nsswitch.conf, в директории /lib имеется
соответствующая библиотека, имя которой начинается с libnss_. Например, функционал для работы с файлами содержится в библиотеке /lib/libnss_files-2.5.so (номер версии не имеет значения, поскольку он распознается и обрабатывается программой динамической линковки ld-linux.so).
Использование LDAP совместно с NSS
С учетом предыдущего рассмотрения динамических библиотек и формата файла nsswitch.conf вы не должны удивиться тому, что интеграция LDAP и NSS выполняется через совместно используемую библиотеку под названием libnss_ldap, и что для этого используется ключевое слово ldap в файле /etc/nsswitch.conf. Совместно используемая библиотека загружает свою конфигурацию из файла /etc/ldap.conf (не перепутайте с файлом конфигурации OpenLDAP для клиентов командной строки, /etc/openldap/ldap.conf). В листинге 2 показан пример файла ldap.conf.
Листинг 2. Пример файла ldap.conf для настройки libnss_ldap
# IP-адрес сервера (или адреса, разделенные пробелами)
host 192.168.1.138
# База поиска base dc=ertw,dc=com
# необязательные учетные данные для привязки binddn: cn=nssldap,dc=ertw,dc=com bindpw: letmein
# Если запрос выполняет пользователь root, то вместо этого используйте это имя dn
# Пароль хранится в файле /etc/ldap.secret и доступен для чтения только пользователю root rootbinddn cn=root,dc=ertw,dc=com
# Указание баз данных passwd, shadow и group в имени DN
# Параметр ?one определяет область nss_base_passwd ou=People,dc=ertw,dc=com?one nss_base_shadow ou=People,dc=ertw,dc=com?one nss_base_group ou=Group,dc=ertw,dc=com?one
# Отключение поиска вторичных групп для любого из этих пользователей nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd
В дополнение к содержимому файла /etc/ldap.conf, показанному в листинге 2, вам также необходимо добавить ключевое слово ldap в строки passwd, shadow и group файла
/etc/nsswitch.conf. Всегда проверяйте, чтобы первым элементом являлось значение files; в противном случае может получиться так, что вы будете ожидать ответа от выключенных серверов вплоть до истечения времени ожидания или же можете быть отключенными от вашей системы (если вы были отключены из-за проблемы с файлом nsswitch.conf, загрузитесь в однопользовательском режиме, верните в файле nsswitch.conf обратно значение files и выполните перезагрузку).
Можно использовать LDAP для всех баз данных, но только три базы, приведенные в этом листинге, входят в число полезных. Другие базы изменяются редко, и ими следует управлять отдельно. Исключением является база данных hosts, которая может использовать LDAP, хотя намного предпочтительнее использовать DNS.
Проверка
Если вы правильно настроили файлы nsswitch.conf и ldap.conf, то вы должны суметь выполнить вход в систему под учетными данными пользователя LDAP (необходимо, чтобы были доступны следующие атрибуты):

uid: имя для входа в систему


uidNumber: числовой код пользователя (userid)

gidNumber: числовой код первичной группы (groupid)

homeDirectory: домашний каталог пользователя

userPassword: пароль пользователя, зашифрованный при помощи процедуры
{crypt} (для генерации пароля используйте slappasswd)
Эти и другие атрибуты добавляются через класс объекта posixAccount .
Для проверки попробуйте войти в систему с учетными данными пользователя, который есть в вашем каталоге LDAP, но не в локальных файлах паролей. Также вы можете использовать команду getent passwd для просмотра всех данных пользователя, о которых знает NSS.
Если команда getent работает, но вы не можете войти в систему, скорее всего ваш атрибут userPassword задан неправильно.
Если вы проверили конфигурацию клиента, но NSS и LDAP все еще не работают вместе, установите уровень регистрации событий stats на сервере OpenLDAP и посмотрите, видит ли сервер ваши запросы и разрешены ли они.
Настройка PAM на использование LDAP
Модуль PAM похож на NSS тем, что он абстрагирует набор библиотечных вызовов от фактической реализации. В отличие от NSS, PAM не замещает существующие вызовы UNIX; вместо этого он предоставляет ряд новых вызовов, которые могут использоваться приложениями.
Понимание PAM
PAM реализован в виде библиотеки, которую используют приложения. Приложения обращаются к этой библиотеке для использования функций PAM, выполняющих проверку аутентификации, управление учетными записями, сеансами и паролями.
Проверка аутентификации является основной задачей PAM. Обращаясь к библиотекам PAM, приложения узнают, аутентифицирован ли пользователь. Библиотеки PAM, в свою очередь, в соответствии с правилами, установленными системным администратором, запрашивают пароли пользователей или выполняют любые другие проверки.
Управление учетной записью вступает в силу после того, как пользователь укажет действующие учетные данные, и отвечает за проверку того, разрешена ли эта учетная запись.
Учетная запись может быть не разрешена в определенные промежутки времени или для некоторых приложений.
Управление сеансом предоставляет приложению возможность настройки среды пользователя после его успешного входа. Часто нужно предоставить вошедшему в консоль пользователю некоторые дополнительные разрешения, такие как использование локального дисковода компакт-дисков или других устройств; это достигается на уровне управления сеансом.
Наконец, управление паролем предоставляет гибкие способы изменения паролей. Как вы скоро увидите, эта функциональная возможность позволяет пользователям менять их пароли
LDAP при помощи знакомой программы passwd(1). Управление паролями PAM также позволяет вам задавать политики надежности паролей, которые работают независимо от того, какое хранилище паролей используется.
Чтобы настроить PAM на совместную работу с какой-либо службой, вы должны создать файл с именем этой службы в каталоге /etc/pam.d, например, /etc/pam.d/sshd – для службы sshd. Это не твердое правило, поскольку каждое приложение определяет свое собственное имя для службы PAM. Если вы не уверены, какое имя использовать, используйте имя бинарного файла и проверьте журналы регистрации на предмет ошибок.
Каждый файл конфигурации в каталоге /etc/pam.d задает упорядоченный список инструкций
для каждой управляющей функции PAM. Каждая строка этого файла имеет следующий формат: function control module arguments. Поле function содержит управляющую функцию, определяемую ключевыми словами auth, account, session и password.
Поле control задает способ использования полученного в результате проверки значения, и определяется следующими ключевыми словами:

required – чтобы функция оказалась успешной, необходимо, чтобы проверка также была выполнена успешно. Если выполнение этой проверки завершается неудачей,
PAM продолжает проверять остальные инструкции для данной функции, но полученные результаты ни на что не влияют.

requisite – чтобы функция оказалась успешной, необходимо, чтобы проверка также была выполнена успешно. Если выполнение этой проверки завершается неудачей, PAM прекращает дальнейшую проверку остальных инструкций и возвращает статус неудачи.

sufficient – если эта проверка оказывается успешной, обработка прекращается и функция возвращает статус успеха при условии, что все предыдущие элементы с уровнем "required" успешно прошли проверку. Если выполнение этой проверки завершается неудачей, ее результат игнорируется, и обработка продолжается.

optional – результаты проверки игнорируются.
Поля module и arguments определяют способ выполнения самой проверки. Один и тот же модуль может реализовывать одну или несколько вышеописанных функций, поэтому он может перечисляться несколько раз. Одним из модулей, который вы будете видеть очень часто, является модуль pam_stack, позволяющий вам вызвать стеки команд из других файлов. В листинге 3 показан PAM- файл, в котором используется pam_stack.
Листинг 3. Использование модуля
pam_stack для вызова других стеков команд
auth required pam_nologin.so auth required pam_stack.so service=system-auth account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth password required pam_stack.so service=system-auth
В листинге 3 приведен формат PAM-файла. Функция auth содержит две строки, обе из которых имеют статус "required" и поэтому обязаны успешно пройти проверку, чтобы аутентификация была успешной. Первая строка auth обращается к модулю pam_nologin, задачей которого является возврат статуса неудачи в том случае, если вход в систему пытается выполнить не-root пользователь и существует файл /etc/nologin. Следующая строка auth обращается к модулю pam_stack и передает ему аргумент service=system-auth. Затем модуль pam_stack.so считывает содержимое файла
/etc/pam.d/system-auth и проверяет все инструкции, соответствующие функции auth. Если все проверки выполняются успешно, pam_stack возвращает статус успеха назад в файл из листинга 3.
Остальные три функции — account, session и password — ссылаются только на модуль pam_stack и службу system-auth. Если соответствующие функции system-auth возвращают статус успеха, результат проверки также считается успешным.
Многие системы используют общие методы аутентификации, поэтому модуль pam_stack используется в большинстве файлов со службой system-auth (или эквивалентной),
содержащей все интересующие детали. В оставшейся части этого раздела файл system-auth будет одним из файлов, использующихся для интеграции LDAP в PAM-процесс.
Использование LDAP совместно с PAM
Для настройки как модуля NSS, так и модуля PAM используется файл /etc/ldap.conf, поэтому, если вы следуете этому руководству, вы уже на полпути к работающей системе PAM-LDAP.
Можно совместно использовать NSS и PAM таким образом, что выполнять аутентификацию в LDAP смогут как приложения, ориентированные на работу с PAM, так и старые приложения. В дополнение к функционалу NSS, PAM предоставляет некоторые новые возможности, включая следующие:

Изменение пароля пользователями

Более детальная конфигурация требований аутентификации

Поддержка большего числа типов шифрования

Централизованное администрирование учетных записей пользователей
Убедитесь, что в файле /etc/ldap.conf присутствует строка pam_password md5, и удалите все остальные строки pam_password, если они есть. Это укажет библиотеке pam_ldap на то, что при изменении паролей необходимо выполнять их локальное хэширование по алгоритму MD5 (Message Digest 5), прежде чем отправлять их на сервер LDAP.
Отредактируйте файл /etc/pam.d/system-auth (или его эквивалент) и добавьте ссылки на модуль pam_ldap, как показано в листинге 4. Строки следует добавлять после каждого упоминания модуля pam_unix (чтобы локальные учетные записи имели более высокий приоритет по сравнению с учетными записями LDAP), но перед любыми упоминаниями модулей pam_allow и pam_deny (которые предоставляют разрешения и запреты по умолчанию).
Листинг 4. Новая конфигурация system-auth, использующая pam_ldap
pam_ldap
auth sufficient pam_unix.so nullok try_first_pass
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so account required pam_unix.so broken_shadow
account sufficient pam_ldap.so
account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so session required pam_limits.so session required pam_unix.so
session optional pam_ldap.so
Строки, выделенные жирным шрифтом, являются дополнением к файлу конфигурации
PAM. Обратите внимание на добавление аргумента broken_shadow для функции account модуля pam_unix. Благодаря этому модуль pam_unix.so не возвращает статус неудачи в случае, если пользователь не имеет записи в базе shadow (этой записи не существует потому, что учетная запись хранится в LDAP).
Аргумент use_first_pass для функции auth модуля pam_ldap заставляет pam_ldap.so
использовать пароль, полученный от pam_unix.so, вместо того чтобы запрашивать новый пароль. Аргумент use_authtok делает то же самое для функции password.
Новая конфигурация позволяет использовать для авторизации как пароли UNIX, так и пароли
LDAP, то есть, первый найденный действующий пароль позволяет пользователю войти в систему. Если никакой из паролей не подходит (возвращается либо ошибка, либо сообщение "no such user"), pam_deny возвращает ошибку.
Проверка
Попытайтесь изменить пароль пользователя с помощью команды passwd, а затем проверьте, что пароль изменился в каталоге LDAP. Наконец, убедитесь в том, что пользователь, как и прежде, может войти в систему.
Если вы смогли заставить работать NSS, PAM также должен работать. Наиболее вероятными причинами ошибок могут стать опечатки в строках конфигурации PAM, помещение строк в неправильное место файла или не в тот файл.



Поделитесь с Вашими друзьями:
1   ...   38   39   40   41   42   43   44   45   ...   68


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал