Использование SFU 3.0 для защиты взаимодействующих платформ Windows и UNIX

В ИТ-инфраструктуре многих организаций одновременно работают системы Windows, UNIX и мэйнфреймы. Интеграция платформ и приложений неизбежно связана с объединением базовых служб безопасности Windows и UNIX, в том числе предназначенных для управления учетными записями (именами и атрибутами администраторов безопасности и, возможно, полномочиями пользователей), а также аутентификации (проверки регистрационной информации об администраторах безопасности). В конце 2002 года компания Microsoft выпустила программный комплекс Windows Services for UNIX (SFU) 3.0, предназначенный для интеграции Windows и UNIX. Интеграцию функций безопасности Windows и UNIX обеспечивают три инструмента SFU: Server for Network Information Service (NIS), User Name Mapping и Password Synchronization.

Server for NIS

Server for NIS — это служба SFU, благодаря которой контроллеры доменов (DC) Windows Server 2003 и Windows 2000 Server могут исполнять обязанности главных серверов NIS. Служба NIS, выпущенная компанией Sun Microsystems в 1985 году, была одной из первых распределенных служб именования на базе UNIX и продолжает использоваться в настоящее время, несмотря на недостатки модели данных, репликации и безопасности. Модель данных NIS нелегко расширить, в службе невозможно организовать инкрементную репликацию, но самый существенный изъян NIS — полное отсутствие средств обеспечения безопасности. NIS не аутентифицирует пользователей и передает данные открыто; возможна и фальсификация обновлений NIS.

Как правило, Server for NIS устанавливается на всех DC в домене Windows. В процессе установки SFU расширяет схему Active Directory (AD), чтобы хранить необходимые для NIS данные о пользователях и группах, а также обеспечивать единый административный центр для аутентификации и авторизации в системах Windows и UNIX. Данные UNIX в AD можно задать вручную или перенести данные с существующего NIS-сервера на UNIX с помощью утилиты командной строки nis2ad.exe из пакета SFU или графического мастера Migration Wizard.

Контроллер домена Server for NIS может получать запросы NIS от клиентов UNIX NIS, преобразовывать их в запросы AD и передавать клиентам NIS данные в формате NIS. Контроллер домена Server for NIS также использует модель репликации AD для пересылки обновленных данных другим контроллерам домена Windows, а для репликации обновленных данных на серверах UNIX NIS применяется протокол yppush (экран 1).

SFU поддерживает два модуля Pluggable Authentication Module (PAM — сменный модуль аутентификации) — pam_unix и pam_sso. В результате клиенты UNIX могут задействовать пароли и имена, хранящиеся в AD, для аутентификации как на системах Windows, так и на UNIX. Благодаря технологии PAM в приложениях UNIX могут применяться различные методы аутентификации. Используемый по умолчанию модуль pam_unix позволяет работать как с локальным, так и с NIS-репозитарием для аутентификации crypt(3) с хешированием, смены паролей и управления учетными записями. Модуль pam_sso — специальный PAM-модуль Microsoft, который обеспечивает синхронизацию паролей с использованием SFU между системами Windows и UNIX, поддерживает аутентификацию crypt(3) с хешированием и смену паролей. В модуле pam_sso применяется алгоритм Triple Data Encryption Standard (3DES) для безопасного обмена данными между компьютером, на котором размещен модуль (то есть клиентом UNIX), и контроллером домена Server for NIS. Однако, в отличие от модуля pam_unix, он не позволяет выполнить аутентификацию хост-машины на NIS-сервере UNIX.

Служба User Name Mapping

Служба User Name Mapping применяется для централизованного управления пользователями как в UNIX, так и в Windows. Ее основная задача — обеспечить корректное автоматическое извлечение приложениями UNIX и Windows учетных данных из центрального хранилища. User Name Mapping выполняет преобразование учетных данных Windows-UNIX и UNIX-Windows для следующих приложений SFU UNIX: Microsoft Interix, Client for NFS, Gateway for NFS, Server for NFS и Remote Shell Service.

User Name Mapping обеспечивает простое и сложное отображение имен пользователей (в документации Microsoft отображение называется «картой» — map). Простые карты определяют однозначное (1:1) соответствие между пользователями и группами, имеющими одинаковое имя в UNIX и Windows; сложные карты определяют однозначное соответствие между пользователями и группами, имеющими различные имена в UNIX и Windows, или соответствие «многие к одному». Преобразование «многие к одному» удобно, если многочисленным учетным записям UNIX требуется предоставить одинаковый уровень доступа к ресурсам Windows. Все учетные записи можно отобразить в одну учетную запись Windows и задействовать эту учетную запись для назначения полномочий доступа к ресурсам.

User Name Mapping не использует AD в качестве репозитария данных о соответствиях между учетными записями, поэтому службу можно развернуть на любой машине Windows 2003, Windows XP, Windows 2000 или Windows NT 4.0, независимо от того, располагает ли данная машина доступом к AD. Служба обеспечивает доступ к информации о пользователях и группах UNIX с любого контроллера домена Server for NIS, любого клиента Windows, работающего с Personal Computer NFS (PCNFS — сетевая файловая служба персонального компьютера), любого сервера UNIX NIS и любого клиента UNIX, располагающего демоном PCNFS (PCNFSD). PCNFS — простая служба, которая принимает от пользователя имя и пароль, сравнивает этот пароль с данными в своем локальном файле паролей и, если пароли совпадают, выдает необходимую информацию для авторизации в UNIX (идентификаторы пользователя — UID и групповые идентификаторы — GID).

На экране 2 показан процесс User Name Mapping. Пользователь Windows-системы Client for NFS предъявляет учетные данные Windows, чтобы запросить у DC, на котором работает служба User Name Mapping, соответствующие учетные данные пользователя для UNIX; служба преобразования передает соответствующие UID и GID (шаги A1 и A2). С помощью этих учетных данных пользователь может получить доступ к ресурсам NFS на NFS-сервере UNIX (шаг A3). Согласно другому сценарию, пользователь на клиентской машине UNIX NFS передает учетные данные UNIX Windows-системе Server for NFS (шаг B1), которая запрашивает соответствующие учетные данные Windows у DC с активной службой User Name Mapping (шаг B2). Если User Name Mapping обнаруживает совпадающие учетные данные, то Server for NFS использует их для аутентификации пользователя на контроллере домена (шаг B3) и авторизации. В результате пользователь получает доступ к данным NFS.

User Name Mapping составляет текстовый файл с именем .maphosts, который применяется для авторизации машин, направляющих запросы в службу. В этом файле, находящемся в каталоге %SFUDIR%mapper, хранится список хост-имен всех машин, которым разрешено направлять запросы в службу User Name Mapping.

Password Synchronization

Служба Password Synchronization, устанавливаемая вместе с Server for NIS, обеспечивает однонаправленную (Windows-UNIX или UNIX-Windows) или двунаправленную (Windows-UNIX и UNIX-Windows) синхронизацию паролей, в зависимости от конфигурации, выбранной администратором. Если пароль пользователя Windows, хранящийся в AD, изменился, то служба Password Synchronization автоматически меняет соответствующее свойство password в UNIX для объекта user в AD. Затем служба Password Synchronization реплицирует изменения пароля в AD и на серверах UNIX NIS. Благодаря автоматической синхронизации упрощается управление пользователями в смешанной среде и появляется возможность работать с одним общим паролем как в Windows, так и в UNIX. Как уже отмечалось, службы Server for NIS и Password Synchronization должны быть развернуты на всех DC в домене Windows. Если используется модель репликации с несколькими главными контроллерами (multimaster), как в AD, то первоначальное изменение пароля может произойти на любом DC домена.

Служба Password Synchronization обеспечивает синхронизацию между системами Windows 2003, XP, Windows 2000 Server, Windows 2000 Professional, NT Server 4.0, NT Workstation 4.0 и машинами IBM AIX 4.3.3, HP-UX 11, Red Hat Linux 7.0 и Sun Solaris 7. С помощью SFU можно управлять паролями на системах Linux, поэтому SFU — отличное решение для предприятий, работающих с Windows, но планирующих дополнить свою информационную инфраструктуру компьютерами Linux. Процедуру синхронизации можно сделать двунаправленной на всех платформах, кроме AIX, которая поддерживает только синхронизацию Windows-UNIX.

Синхронизация Windows-UNIX. Для защиты процедуры синхронизации паролей используются алгоритм 3DES и общий секретный ключ для шифрования паролей на платформах Windows и UNIX. На экране 3 приведено несколько возможных сценариев синхронизации паролей Windows-UNIX.

Если пользователь домена Windows инициирует обновление пароля, то клиент Windows пересылает обновление на DC с активной службой Password Synchronization. Затем Password Synchronization синхронизирует обновленный пароль с базой данных UNIX NIS. Если DC выполняет функции главного компьютера NIS, то DC просто передает изменения другим DC и серверам UNIX NIS (этот сценарий показан на экране 3).

Если главным сервером NIS является сервер UNIX, то на этом сервере должен работать демон единой процедуры входа (Single Sign-On Daemon, SSOD, иначе называемый демоном синхронизации пароля). В таком случае служба Password Synchronization на DC синхронизирует обновленный пароль с главным сервером NIS (шаг A1). Затем SSOD обновляет соответствия NIS и инициирует процедуру передачи на все зависимые серверы UNIX NIS (шаг A2).

Предположим, что база учетных данных находится на автономной машине UNIX (машине, не входящей в домен UNIX NIS). Password Synchronization синхронизирует изменение с машиной UNIX, и локальный демон SSOD машины UNIX вносит это изменение в локальную базу учетных данных машины (шаг B1).

Что происходит, если пользователь Windows работает на автономной машине Windows? В этом случае на автономной машине должна быть активизирована служба Password Synchronization. Когда пользователь инициирует изменение пароля в локальной базе учетных данных (SAM), служба Password Synchronization синхронизирует пароль с базой данных NIS на главном сервере UNIX или автономной машине UNIX, как было описано выше (шаг C1 или C2 соответственно).

Синхронизация UNIX-Windows. На экране 4 показано несколько возможных сценариев синхронизации паролей UNIX-Windows. Если пользователь UNIX инициирует обновление пароля, то модуль pam_sso на клиенте UNIX запускает процесс синхронизации. Если база данных NIS размещена на контроллере домена Server for NIS на базе Windows, то модуль pam_sso использует команду NIS yppasswd для синхронизации пароля непосредственно с DC, который затем передает изменения другим DC и серверам UNIX NIS (данный сценарий на экране 4 не показан).

Если база данных NIS расположена на главном сервере UNIX NIS, то служба Password Synchronization, размещенная на DC, передает изменения на все DC домена AD и синхронизирует их с главным компьютером NIS (шаг A1), который передает изменения всем подчиненным серверам NIS (шаг A2). При этом необходимо, чтобы служба Password Synchronization на всех DC была настроена на двунаправленную синхронизацию с главным сервером NIS и однонаправленную синхронизацию UNIX-Windows со всеми клиентами UNIX NIS.

Если клиент UNIX представляет собой автономную машину, то служба Password Synchronization на DC просто реплицирует изменение на все остальные DC в домене Windows. В этом случае контроллеры домена должны располагать службой Password Synchronization, настроенной на однонаправленную синхронизацию UNIX-Windows с автономным клиентом UNIX.

Если автономный клиент UNIX пытается выполнить синхронизацию с автономной машиной Windows, то модуль pam_sso просто синхронизирует изменение пароля с компьютером Windows, который должен располагать службой Password Synchronization, настроенной на однонаправленную синхронизацию с автономным клиентом UNIX.

Тесная интеграция функций безопасности

SFU обеспечивает тесную интеграцию функций безопасности Windows и UNIX (или Linux). ИТ-специалистам, привыкшим работать с UNIX, придется приложить некоторые усилия, чтобы освоить решения Microsoft, но тем не менее эти инструменты, вероятно, являются лучшим средством интеграции с операционной системой Windows; администраторам Windows, которым требуется интегрировать функции безопасности UNIX и Linux, будет удобно работать со знакомым инструментарием Windows. Более подробную информацию об SFU можно найти по адресу www.microsoft.com/windows/sfu/default.asp.

Жан де Клерк — консультант корпорации Compaq, специалист по проблемам безопасности продуктов семейства Microsoft BackOffice. С ним можно связаться по адресу: jan.declercq@compaq.com