Аутентификация клиентов Linux с помощью Active Directory - Настройка PAM и NSS

ОГЛАВЛЕНИЕ

Настройка PAM и NSS

PAM и NSS предоставляют средство соединения приложения Linux, такого как рабочая среда, и Winbind. Подобно многим службам Linux, PAM и NSS настраиваются через текстовые файлы. Сначала мы рассмотрим настройку PAM.

PAM предоставляет четыре относящихся к проверке подлинности средства использующих им приложениям. Средство проверки подлинности позволяет приложению определить, кто использует его. Средство учетных записей предоставляет функции управления учетными записями, которые не относятся прямо к проверке подлинности, такими как ограничение времени входа. Средство паролей предоставляет механизмы для запроса паролей и управления ими. Средство сеансов выполняет относящиеся к пользователю задачи установки и удаления для приложения, такие как ведение журнала или создание файлов в категории конкретного пользователя.

Файлы настройки PAM в Red Hat хранятся в каталоге /etc/pam.d, в котором будет находиться текстовый файл для каждого приложения, использующего PAM для проверки подлинности. Например, файл /etc/pam.d/gdm содержит информацию о настройке PAM для Gnome Desktop Manager (GDM), оконной среды по умолчанию в Red Hat. В каждом файла настройки PAM содержатся несколько строк, каждая из которых определяет какой-либо аспект процесса проверки подлинности PAM. На рис. 11 показано содержимое файла настройки PAM для GDM.


Рис. 11. Файл настройки РАМ для Gnome Desktop Manager

Каждая запись в файле настройки PAM имеет форму <группа управления> <элемент управления> <модуль> <параметры>, где <группа управления> соответствует средству, к которому относится запись настройки: проверки подлинности, учетных записей, паролей или сеансов. Управляющие ключевые слова, описанные на рис. 12, говорят PAM, как обработать запись настройки. Третий столбец файла содержит имя общей библиотеки PAM в каталоге безопасности /lib/. Общие библиотеки содержат динамически загружаемый исполняемый код, подобный DLL в Windows. Дополнительные термины после имени модуля – это параметры, передаваемые модулем PAM общей библиотеке.

Рис. 12. Управляющие ключевые слова PAM

Ключевое слово
Описание
Required («Обязательно») Если модуль срабатывает успешно, то PAM продолжает вычислять остающиеся записи для группы управления, и результаты будут определены результатами остающихся модулей. Если нет, то PAM продолжит вычисление, но возвратит сбой вызывавшему приложению.
Requisite («Необходимо») Если модуль срабатывает успешно, PAM продолжает вычислять записи группы управления. Если нет, то PAM произведет возврат вызывавшему приложению без дальнейшей обработки.
Sufficient («Достаточно») Если модуль сработает успешно, то PAM возвратит успешный результат вызывавшему приложению. Если нет, то PAM продолжит вычисление, но результаты будут определены последующими модулями.
Optional («Необязательно») PAM игнорирует результаты модуля, если это не единственный модуль, указанный для группы управления.
Include («Включить») PAM включает в себя содержимое файла настройки PAM, на который дается ссылка, а также содержащиеся в нем процессы и записи.

Можно заметить, что у каждой группы управления есть несколько записей. PAM обрабатывает записи по порядку, вызывая названный модуль. Затем модуль возвращает успех либо сбой, и PAM действует в зависимости от управляющего ключевого слова.

Можно заметить, что в файле настройки PAM для GDM есть system-auth для всех групп управления. Это способ, которым PAM устанавливает поведение при проверке подлинности по умолчанию для GDM. Модифицируя system-auth, можно модифицировать это поведение для всех приложений, в которых есть файл system-auth в настройках PAM. Файл system-auth по умолчанию показан на рис. 13.


Рис. 13. Файл system-auth модуля PAM

Модуль переключателя блока преобразования имен (NSS) скрывает конкретные сведения о хранилище данных систем от разработчика приложения, примерно так же, как PAM скрывает подробности проверки подлинности. NSS позволяет администратору указать способ, которым хранятся базы данных системы. В частности, администратор может указать, как хранится информация об имени пользователя и пароле. Поскольку нам нужно, чтобы приложения искали информацию о пользователях в Active Directory при помощи Winbind, нам нужно изменить настройку NSS, чтобы показать это.

Red Hat включает небольшую графическую программку для настройки PAM и NSS, называемую system-config-authentication. Она заботится о большинстве изменений (но не о всех), которые необходимо ввести в файлы system-auth и nss.conf.

Запустите приложение system-config-authentication, и можно будет увидеть диалог, подобный показанному на рис. 14. Установите флажок Winbind как на вкладке User Information («Информация о пользователе», она настраивает файл nss.conf), так и на вкладке Authentication («Проверка подлинности», она модифицирует файл system-auth).


Рис. 14. Диалог systemconfig-authentication

Нажмите кнопку Configure Winbind, и будет отображен диалог, приведенный на рис. 15. Введите имя домена, в котором должна проверяться подлинность пользователей, в поле Winbind Domain и выберите «объявления» как модель безопасности. Введите доменное имя DNS домена Active Directory в поле Winbind ADS Realm. В поле Winbind Domain Controllers введите либо имя контроллера домена, с помощью которого нужно проверять подлинность для этой системы Linux, или звездочку, указывающую, чтоWinbind следует выбрать контроллер домена, запрашивая записи SRV в DNS.


Рис. 15. Настройка диалога Winbind

Выберите подходящий интерпретатор команд по умолчанию, который должны иметь пользователи Active Directory; в данном случае я выбрал bash (Bourne-again Shell). Не пытайтесь воспользоваться кнопкой "Join Domain" («Присоединиться к домену») на этом этапе. Компьютер будет присоединен к домену позже.

В файл /etc/pam.d/system-auth необходимо внести еще одно дополнительное изменение после того, как он был модифицирован для поддержки Winbind. Когда пользователь Linux входит в систему, система требует от пользователя наличия домашнего каталога. Домашний каталог содержит многие параметры и элементы настройки конкретного пользователя во многом подобно реестру Windows. Проблема здесь состоит в том, что поскольку пользователи создаются в Active Directory, Linux не будет автоматически создавать домашний каталог пользователя. К счастью, PAM можно настроить на выполнение этого в качестве части настройки сеанса.

Откройте файл the /etc/pam.d/system-auth, затем прокрутите экран вниз и вставьте строку "session optional map_mkhomedir.so skel=/etc/skel umask=0644" перед последней строкой в разделе сеанса (см. рис. 16). Эта строка настраивает PAM на создание домашнего каталога для пользователя, если такового еще не существует. Она будет использовать /etc/skel в качестве «скелета» шаблона и назначит маску прав 0644 (чтение и запись для владельца, чтение для основной группы и чтение для всех остальных) новой папке.


Рис. 16. Создание домашнего каталога для пользователей