Исходные данные:
клиентские приложения – на компьютерах под управлением ОС Linux и Windows;
Kerberos-сервер установлен и сконфигурирован на компьютере с адресом kdc.domain1.example.com в ОС UNIX;
Linux-клиент и ядро СУБД ЛИНТЕР размещены на компьютере с ОС Ubuntu и сетевым адресом test.domain2.example.com;
Windows-клиент размещен на компьютере с ОС Windows 7 и сетевым адресом win7.domain1.example.com;
на компьютере с СУБД ЛИНТЕР (сетевой адрес test.domain2.example.com) средствами ОС созданы пользователи test и user;
адреса всех компьютеров должны быть разрешимы через DNS.
Для примера выбрано имя сервиса server/test.domain2.example.com (в общем случае имя сервиса состоит из следующих частей: произвольное имя, "/" и имя компьютера в сети, на котором запущен данный сервис).
Настройка компьютера с Kerberos-сервером (kdc.domain1.example.com):
Установить пакеты krb5-admin-server и krb5-kdc, указав в качестве запрашиваемых регистрационных данных следующие значения:
Default realm: DOMAIN1.EXAMPLE.COM Kerberos server: kdc.domain1.example.com Admin server: kdc.domain1.example.com
Запустить krb5_newrealm от имени суперпользователя.
Для поддержки Windows-клиента в файле kdc.conf
(путь по умолчанию
/etc/krb5kdc/kdc.conf
) задать поддерживаемые типы кодирования:
supported_enctypes = rc4-hmac:normal rc4-hmac-exp:normal des-cbc-crc:normal
Для корректного распознавания доменов в realm добавить в раздел [domain_realm] файла /etc/krb5.conf
, в разделе [domain_realm] строки:
.domain1.example.com = DOMAIN1.EXAMPLE.COM domain1.example.com = DOMAIN1.EXAMPLE.COM .domain2.example.com = DOMAIN1.EXAMPLE.COM domain2.example.com = DOMAIN1.EXAMPLE.COM
С помощью утилиты kadmin.local
добавить пользователей в БД Kerberos-сервера:
sudo kadmin.local > addprinc test > addprinc user
Запрашиваемые при создании пользователей пароли могут быть произвольными.
С помощью утилиты kadmin.local
создать сервис со случайным паролем и файл
ключа к нему, чтобы этот сервис мог аутентифицироваться по Kerberos-протоколу
автоматически:
sudo kadmin.local >addprinc -randkey server/test.domain2.example.com >ktadd -k /tmp/server.keytab server/test.domain2.example.com
Скопировать файл /tmp/server.keytab
на компьютер, где будет располагаться
ядро СУБД ЛИНТЕР (test.domain2.example.com
).
Для подключения Windows-клиента добавить его компьютер в БД Kerberos-сервера:
sudo kadmin.local > addprinc -pw <password> host/win7.domain1.example.com
где:
<password>
– произвольный пароль, который надо будет указывать в дальнейшем при аутентификации Windows-клиента;
host
– ключевое слово для идентификации сетевого имени компьютера.
Настройка компьютера с ядром СУБД ЛИНТЕР (test.domain2.example.com):
Установить пакеты krb5-config и krb5-user.
Скопировать файл /etc/krb5.conf
с компьютера с Kerberos-сервером в каталог /etc
.
Скопировать ключ, созданный на Kerberos-сервере (см. Настройка компьютера с
Kerberos-сервером, действие 6), либо в стандартный файл /etc/krb5.keytab
, либо в
любой другой, но тогда указать его местоположение в переменной окружения KRB5_KTNAME.
Указать имя ЛИНТЕР-сервиса в переменной окружения:
LINTER_KRB_SERVICE="server/test.domain2.example.com"
Запустить ядро СУБД ЛИНТЕР.
Создать в БД ЛИНТЕР пользователя с режимом идентификации и аутентификации по
Kerberos-протоколу и тем же именем, что и в БД Kerberos-сервера, например, с помощью утилиты inl
:
inl -u SYSTEM/MANAGER >CREATE USER "test" IDENTIFIED BY KRB; >CREATE USER "user" IDENTIFIED BY KRB;
Настройка компьютера с Linux-клиентом (test.domain2.example.com):
Скопировать файл /etc/krb5.conf
с компьютера с Kerberos-сервером в каталог
/etc
.
C помощью команды kinit получить Kerberos-тикет
kinit
при этом на запрашиваемый пароль необходимо ввести пароль соответствующего Kerberos-пользователя, который был создан на этапе настройки Kerberos-сервера (см. Настройка компьютера с Kerberos-сервером, действие 5).
Клиентское Linux-приложение готово к идентификации и аутентификации по Kerberos-протоколу. Для доступа к СУБД ЛИНТЕР по Kerberos-протоколу необходимо указать пустые имя и пароль пользователя. Доступ к СУБД ЛИНТЕР будет предоставлен тому пользователю, который указан в полученном от Kerberos-сервера Kerberos-тикете.
Настройка компьютера с Windows-клиентом (win7.domain1.example.com):
Подключиться к Kerberos-realm с помощью команд:
ksetup /setdomain DOMAIN1.EXAMPLE.COM ksetup /addkdc DOMAIN1.EXAMPLE.COM kdc.domain1.example.com
Для вступления изменений в силу перезагрузить компьютер.
Сделать привязку пользователей ОС Windows к пользователям БД Kerberos-сервера с помощью утилиты ksetup
и опции /mapuser
. Например, если
имена пользователей в ОС Windows совпадают с именами пользователей в БД Kerberos-сервера, то для привязки друг к другу всех
пользователей ОС Windows и БД Kerberos-сервера с одинаковыми именами выполнить:
ksetup /mapuser * *
Скопировать файл krb5.conf
с Kerberos-сервера в файл конфигурации Kerberos
на Windows. В роли файла конфигурации Kerberos-сервера в среде ОС Windows может
выступать как файл krb5.conf
, так и файл krb5.ini
, в зависимости от версии ОС
Windows и Kerberos (также могут варьироваться каталоги по умолчанию
местонахождения этих файлов). Для подробностей необходимо обращаться к
соответствующей документации либо явно указать их местоположение в переменной
окружения KRB5_CONFIG.
создать Kerberos-пароль компьютеру с клиентским приложением с помощью команды:
ksetup /setmachpassword <password>
Пароль <password> должен совпадать с тем, что был указан на этапе настройки Kerberos-сервера (см. Настройка компьютера с Kerberos-сервером, действие 8).
Для вступления изменений в силу требуется перезагрузка компьютера.
После выполнения всех перечисленных пунктов пользователь может заходить в систему, используя имя и пароль Kerberos-аккаунта. При этом в качестве домена необходимо выбрать Kerberos-realm (DOMAIN1.EXAMPLE.COM).
Клиентские Windows-приложения готовы к идентификации и аутентификации по Kerberos-протоколу. Для доступа к СУБД ЛИНТЕР по Kerberos-протоколу необходимо ввести имя и пароль пользователя из БД Kerberos-сервера, в качестве ЛИНТЕР-сервера указать Kerberos-realm (DOMAIN1.EXAMPLE.COM).
Доступ к СУБД ЛИНТЕР будет предоставлен тому пользователю, который вошел в ОС Windows.