Приложение 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):

  1. Установить пакеты krb5-admin-server и krb5-kdc, указав в качестве запрашиваемых регистрационных данных следующие значения:

    Default realm: DOMAIN1.EXAMPLE.COM
    Kerberos server: kdc.domain1.example.com
    Admin server: kdc.domain1.example.com

  2. Запустить krb5_newrealm от имени суперпользователя.

  3. Для поддержки Windows-клиента в файле kdc.conf (путь по умолчанию /etc/krb5kdc/kdc.conf) задать поддерживаемые типы кодирования:

    supported_enctypes =
    rc4-hmac:normal rc4-hmac-exp:normal des-cbc-crc:normal

  4. Для корректного распознавания доменов в 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

  5. С помощью утилиты kadmin.local добавить пользователей в БД Kerberos-сервера:

    sudo kadmin.local
     > addprinc test
     > addprinc user

    Примечание

    Запрашиваемые при создании пользователей пароли могут быть произвольными.

  6. С помощью утилиты kadmin.local создать сервис со случайным паролем и файл ключа к нему, чтобы этот сервис мог аутентифицироваться по Kerberos-протоколу автоматически:

    sudo kadmin.local
     >addprinc -randkey server/test.domain2.example.com
     >ktadd -k /tmp/server.keytab server/test.domain2.example.com

  7. Скопировать файл /tmp/server.keytab на компьютер, где будет располагаться ядро СУБД ЛИНТЕР (test.domain2.example.com).

  8. Для подключения Windows-клиента добавить его компьютер в БД Kerberos-сервера:

    sudo kadmin.local
     > addprinc -pw < password > host/win7.domain1.example.com
    

    где:

    < password > – произвольный пароль, который надо будет указывать в дальнейшем при аутентификации Windows-клиента;

    host – ключевое слово для идентификации сетевого имени компьютера.

Настройка компьютера с ядром СУБД ЛИНТЕР (test.domain2.example.com):

  1. Установить пакеты krb5-config и krb5-user.

  2. Скопировать файл /etc/krb5.conf с компьютера с Kerberos-сервером в каталог /etc.

  3. Скопировать ключ, созданный на Kerberos-сервере (см. Настройка компьютера с Kerberos-сервером, действие 6), либо в стандартный файл /etc/krb5.keytab, либо в любой другой, но тогда указать его местоположение в переменной окружения KRB5_KTNAME.

  4. Указать имя ЛИНТЕР-сервиса в переменной окружения:

    LINTER_KRB_SERVICE="server/test.domain2.example.com"

  5. Запустить ядро СУБД ЛИНТЕР.

  6. Создать в БД ЛИНТЕР пользователя с режимом идентификации и аутентификации по Kerberos-протоколу и тем же именем, что и в БД Kerberos-сервера, например, с помощью утилиты inl:

    inl -u SYSTEM/MANAGER8
     >CREATE USER "test" IDENTIFIED BY KRB;
     >CREATE USER "user" IDENTIFIED BY KRB;

Настройка компьютера с Linux-клиентом (test.domain2.example.com):

  1. Скопировать файл /etc/krb5.conf с компьютера с Kerberos-сервером в каталог /etc.

  2. C помощью команды kinit получить Kerberos-тикет

    kinit

    при этом на запрашиваемый пароль необходимо ввести пароль соответствующего Kerberos-пользователя, который был создан на этапе настройки Kerberos-сервера (см. Настройка компьютера с Kerberos-сервером, действие 5).

  3. Клиентское Linux-приложение готово к идентификации и аутентификации по Kerberos-протоколу. Для доступа к СУБД ЛИНТЕР по Kerberos-протоколу необходимо указать пустые имя и пароль пользователя. Доступ к СУБД ЛИНТЕР будет предоставлен тому пользователю, который указан в полученном от Kerberos-сервера Kerberos-тикете.

Настройка компьютера с Windows-клиентом (win7.domain1.example.com):

  1. Подключиться к Kerberos-realm с помощью команд:

    ksetup /setdomain DOMAIN1.EXAMPLE.COM
    ksetup /addkdc DOMAIN1.EXAMPLE.COM kdc.domain1.example.com

    Для вступления изменений в силу перезагрузить компьютер.

  2. Сделать привязку пользователей ОС Windows к пользователям БД Kerberos-сервера с помощью утилиты ksetup и опции /mapuser. Например, если имена пользователей в ОС Windows совпадают с именами пользователей в БД Kerberos-сервера, то для привязки друг к другу всех пользователей ОС Windows и БД Kerberos-сервера с одинаковыми именами выполнить:

    ksetup /mapuser * *

  3. Скопировать файл krb5.conf с Kerberos-сервера в файл конфигурации Kerberos на Windows. В роли файла конфигурации Kerberos-сервера в среде ОС Windows может выступать как файл krb5.conf, так и файл krb5.ini, в зависимости от версии ОС Windows и Kerberos (также могут варьироваться каталоги по умолчанию местонахождения этих файлов). Для подробностей необходимо обращаться к соответствующей документации либо явно указать их местоположение в переменной окружения KRB5_CONFIG.

  4. создать Kerberos-пароль компьютеру с клиентским приложением с помощью команды:

    ksetup /setmachpassword < password >

    Пароль < password > должен совпадать с тем, что был указан на этапе настройки Kerberos-сервера (см. Настройка компьютера с Kerberos-сервером, действие 8).

    Для вступления изменений в силу требуется перезагрузка компьютера.

  5. После выполнения всех перечисленных пунктов пользователь может заходить в систему, используя имя и пароль Kerberos-аккаунта. При этом в качестве домена необходимо выбрать Kerberos-realm (DOMAIN1.EXAMPLE.COM).

  6. Клиентские Windows-приложения готовы к идентификации и аутентификации по Kerberos-протоколу. Для доступа к СУБД ЛИНТЕР по Kerberos-протоколу необходимо ввести имя и пароль пользователя из БД Kerberos-сервера, в качестве ЛИНТЕР-сервера указать Kerberos-realm (DOMAIN1.EXAMPLE.COM).

    Доступ к СУБД ЛИНТЕР будет предоставлен тому пользователю, который вошел в ОС Windows.