Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Andronchik.pdf
Скачиваний:
654
Добавлен:
13.04.2015
Размер:
9.64 Mб
Скачать

190

[libdefaults] ticket_lifetime = 36000 default_realm = EXAMPLE.COM kdc_timesync=1

[realms] EXAMPLE.COM = {

kdc = 192.168.0.1:88

}

13.На виртуальной машине DC запустить оснастку «Active Directory Users & Computers» (Start Programs Administration Tools).

14.В контекстном меню контейнера «Users» выбрать пункт «New User».

Указать «First Name» и «User logon name» — «root», указать пароль «P@ssw0rd», убедиться, что не отмечен пункт «User must change password at next logon».

15.В консоли виртуальной машины WS-Linux выполнить команду kinit от имени пользователя «root», на запрос ввода пароля ввести «P@ssw0rd». После чего ввести команду klist и убедиться, что ее вывод аналогичен выводу, изображенному на рис. 7.8.

Рис. 7.8. Вывод билетов пользователя в ОС Linux

7.3.3. Реализация Kerberos в ОС Windows Server 2003

Клиент Kerberos встроен во все ОС Windows семейства NT5, а реализация KDC — во все серверные версии NT5. Однако изначально реализация Kerberos не рассматривалась Microsoft как самостоятельное решение (а лишь только как средство аутентификации в AD), поэтому в стандартной поставке Windows отсутствуют утилиты для работы с Kerberos напрямую. Некоторые возможности предоставляют инструменты из пакетов Support Tools и Resource Kit.

Служба KDC активизируется в серверной ОС только при повышении роли сервера до контроллера домена AD. Как уже отмечалось, контроллер до-

191

мена AD — это KDC и LDAP-серверы, плюс некоторые утилиты администрирования этих серверов. Сущность Kerberos создается параллельно с созданием учетной записи пользователя, при этом происходит прямое отображение имени пользователя в сущность Kerberos (пользователю user домена example.com будет сопоставлена сущность «user@EXAMPLE.COM»).

Сложнее обстоит ситуация с учетными записями сервисов. Поскольку имя пользователя Windows не может содержать символ «/», то прямого соответствия быть не может. Для разрешения этой проблемы в схеме каталога определен специальный многозначный атрибут — servicePrincipalName. Минус заключается в том, что все эти сущности Kerberos используют один и тот же ключ.

Для обеспечения взаимодействия с Unix-системами пакет Windows Support tools содержит утилиту для создания сущностей Kerberos и экспортирования их ключей в виде keytab-файла. Данная утилита обладает достаточно большим количеством параметров, рассмотрим те из них, которые необходимы при создании keytab-файла.

Вызов утилиты будет иметь вид:

ktpass –princ <сущность> -crypto des-cbc-md5 +desOnly –out <keytab-файл> +rndPass -mapuser <user> -mapop set

Ниже приведены комментарии по каждому из параметров: -princ <сущность> — задает сущность Kerberos;

-crypto — задает, для какой криптосистемы следует генерировать ключ (в настоящее время реализации от Microsoft и MIT пересекаются только по режиму шифрования des-cbc-md5);

+desOnly — указывает, что в базе KDC должен генерироваться ключ только для алгоритма DES;

-out <keytab файл> — имя keytab-файла; +rndPass — генерация случайного ключа;

-mapuser <user> — указывает, с каким пользователем AD связать данную сущ-

ность Kerberos;

-mapop set — указывает, что необходимо заменить сущность по умолчанию (а

не добавить к списку servicePrincipalName).

Для мониторинга кэша билетов Kerberos используется утилита kerbtray из пакета Windows Resource Kit. После запуска эта утилита размещает свою иконку в системном трее, и по двойному нажатию левой клавиши мыши выводит на экран окно со списком билетов пользователя и информации в них.

7.3.4. Пример реализации системы SSO

Применение протокола Kerberos для аутентификации достаточно распространено как в сервисах Microsoft, так и в сервисах других производителей. Например, Kerberos используется для аутентификации клиента перед

192

web-сервером. Рассмотрим ее на примере модуля mod_auth_kerb для webсервера Apache.

Выполнение следующего задания создаст защищенную web-страницу на сервере Apache, при этом аутентификация для пользователей домена AD будет происходить прозрачно.

ВЫПОЛНИТЬ!

16.На виртуальной машине WS-Linux открыть текстовым редактором файл

«/etc/apache2/sites-available/default», в разделе <Directory /var/www> ука-

зать следующие директивы (комментарии, указанные после символа «#», набирать не надо):

#подключить модуль mod_auth_kerb AuthType Kerberos

#расположение keytab-файла

Krb5Keytab /etc/apache2/http.keytab

#разрешить аутентификацию

#при помощи сеансового ключа

KrbMethodNegotiate on

#запретить аутентификацию уровня Basic KrbMethodK5Passwd off

#разрешить доступ только

#аутентифицированным пользователям

Require valid-user

17.На виртуальной машине DC запустить «Windows Support Tools Shell» (Start Programs Windows Support tools Command Prompt)

18.Создать сущность Kerberos, соответствующую учетную запись и keytabфайл для web-сервера Apache. Для этого создать пользователя wslinux_http при помощи оснастки «Active Directory Users and Computers».

Создать файл «keytab» при помощи следующей команды:

ktpass –princ HTTP/ws-linux.example.com@EXAMPLE.COM –crypto des-cbc-md5 +desOnly

–ptype KRB5_NT_PRINCIPAL –out c:\http.keytab +rndPass

–mapuser ws-linux_http@example.com –mapop set

19.Скопировать файл «http.keytab» в каталог «/etc/apache2» виртуальной ма-

шины WS-Linux.

20.Перезапустить web-сервер Apache при помощи команды

/etc/init.d/apache2 force-reload

193

21.На виртуальной машине DC запустить и настроить обозреватель Internet Explorer. Для этого в меню Tools Internet Options выбрать закладку «Security», выбрать зону «Local Intranet», нажать кнопку «Sites», нажать кноп-

ку «Advanced», добавить к списку сайтов строку «*.example.com». В раз-

деле «Security level for this zone» нажать кнопку «Custom level».

Убедиться, что в подразделе «logon» раздела «User authentication» выбран пункт «Automatic logon only in Intranet zone». Перейти на закладку «Advanced». Убедиться, что в разделе «Security» активизирована опция «Enable Integrated Windows Authentication». Если она не была выбрана, то вы-

брать и перезагрузить виртуальную машину.

22.Запустить утилиту kerbtray.exe (Start Programs Windows Resource Kit Tools Command Shell, набрать в консоли kerbtray). Просмотреть текущий список билетов пользователя, вызвав окно утилиты при помощи иконки в системном трее (иконка в виде билета зеленого цвета).

23.В адресной строке обозревателя набрать «http://ws-linux.example.com». Убедиться, что в обозревателе отобразилась стартовая страница webсервера Apache.

24.Убедиться, что в списке билетов пользователя добавился билет «HTTP/wslinux.example.com@EXAMPLE.COM».

25.На рабочей станции WS-Linux выполнить команду

tail /var/log/apache2/access.log

26. В выводе команды найти запись, аналогичную представленной на рис. 7.9.

Рис. 7.9. Запись в лог-файле web-сервера Apache о доступе Kerberos-сущности

«Administrator@EXAMPLE.COM»

27.Попробовать зайти на web-страницу с основной рабочей станции (может понадобиться перенастройка IP-адреса виртуального сетевого подключения VMWare VMNet1, адрес должен быть из сети 192.168.0/24), убедиться, что в окне обозревателя выводится сообщение об ошибке 401 (Unauthorized).

7.4.Создание единого пространства безопасности на базе

Active Directory

Рассмотренные выше технологии позволяют создать распределенную систему с единой базой аутентификационных и авторизующих данных. Аутентификационные данные — это сущности Kerberos, которые связаны с объектами LDAP, хранящими авторизующую информацию (идентификаторы пользователей, членство в группах и т. п.).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]