Аутентификация клиентов 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. Создание домашнего каталога для пользователей