Приложение 1. Пример настройки СУБД ЛИНТЕР для идентификации и аутентификации по Kerberos-протоколу
Исходные данные:
-
клиентские приложения – на компьютерах под управлением ОС 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/MANAGER8 >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.