Вероятнее всего, вы решите создать принципала для каждого KDC. Идентификаторы таких принципалов создаются в формате host/имя_узла@имя_области, например host/kerberos-1.threeroomco.com/THREEROOMCO.COM. Для ведомых KDC создавать принципалы не обязательно, но они могут быть полезны, если на соответствующем компьютере будет разрешена регистрация обычных пользователей (что категорически не рекомендуется) или если вы захотите использовать ведомый KDC вместо ведущего. Ведущему KDC этот принципал понадобится для того, чтобы передать базу данных ведомому KDC.
Окончив работу с программой kadmin, надо завершить ее выполнение путем ввода команды quit.
Запуск KDC
К этому моменту компоненты Kerberos настроены и могут быть запущены. Для запуска сервером можно использовать способы, описанные в главе 4. Если пакет Kerberos поставлялся вместе с вашей системой, для вероятно, существует сценарий запуска SysV. Сценарий для KDC обычно называется krb5kdc, а сценарий для сервера администрирования — kadmin.
Если сценарии SysV отсутствуют, вы можете использовать для запуска программы krb5kdc и kadmin, которые входят в состав пакета Kerberos. Каждая программа порождает процесс из оболочки, поэтому вам нет необходимости указывать после ее имени символ "&". Вызывать данные программы можно из локального сценария запуска (/etc/rc.d/rc.local).
Настройка ведомого KDC
Ведомый KDC настраивается практически так же, как и ведущий. Вам надо отредактировать файлы krb5.conf и kdc.conf, использовать kdb5_util для создания файлов базы данных, сформировать файл ACL и вызвать команду ktadd программы kadmin.local, чтобы записать ярлык в файл.
Каждому KDC требуется файл, в котором перечислены все KDC (или, точнее, принципалы, связанные со всеми KDC. Этот файл необходим для передачи данных из базы. Указанный файл имеет имя kpropd.acl и чаще всего хранится в каталоге /var/kerberos/krb5kdc либо /usr/local/var/krb5kdc. Содержимое этого файла выглядит приблизительно следующим образом:
host/kerberos.threeroomco.com@THREEROOMCO.COM
host/kerberos-1.threeroomco.com@THREEROOMCO.COM
Сформировав данный файл для каждого из KDC, надо сконфигурировать ведомый KDC для выполнения двух серверов: kpropd и klogind. Запуск этих серверов можно осуществлять с помощью суперсервера. Соответствующие записи /etc/inetd.conf могут иметь следующий вид:
krb5_prop stream tcp nowait root /usr/kerberos/sbin/kpropd
kpropd eklogin stream tcp nowait root \
/usr/kerberos/sbin/klogind klogind -k -c -e
Возможно, на вашем компьютере расположение файлов будет отличаться от указанного выше. Если же в вашей системе используется суперсервер xinetd, вам придется внести изменение в его конфигурационный файл (о настройке суперсерверов см. в главе 4). Если в файле /etc/services отсутствуют записи для krb5_prop и eklogin, вам надо добавить в файл следующие строки:
krb5_prop 754/tcp # Передача данных ведомому
# серверу Kerberos
eklogin 2105/tcp # Удаленная регистрация
# с использованием шифрования
Распространение данных осуществляется ведущим KDC и состоит из двух этапов: извлечение содержимого базы данных и передача его ведомым серверам. Сценарий, выполняющий обе задачи, представлен в листинге 6.3. Возможно, вам придется внести в него изменения, отражающие особенности вашей системы и структуру сети. Если в сети существует несколько ведомых серверов, вам надо вызвать kprop для каждого из них. Запуск данного сценария через определенные промежутки времени планируется с помощью инструмента cron.
Листинг 6.3. Пример сценария, предназначенного для передачи базы данных Kerberos ведомым KDC
# !/bin/sh
/usr/kerberos/sbin/kdb5_util dump
/usr/kerberos/var/krb5kdc/slave_datatrans
/usr/kerberos/sbin/kprop -f
/usr/kerberos/var/krb5kdc/slave_datatrans \
kerberos-1.mil.threeroomco.com
Настройка сервера приложений Kerberos
Настройка KDC — важный этап подготовки системы Kerberos к работе, но сам по себе KDC не осуществляет полезных действий. Для того чтобы система стала работоспособной, необходимо выполнить вторую часть работы — настроить серверы приложений и клиенты Kerberos для взаимодействия с KDC. Данный раздел посвящен настройке серверов приложений, а настройка клиентов будет рассматриваться в следующем разделе.
В некоторых случаях один и тот же компьютер может выступать в роли сервера приложений и клиента. Так происходит, например, если Kerberos используется в качестве протокола аутентификации при регистрации. В этом случае компьютер должен быть настроен и как сервер приложений, и как клиент.
Выбор конфигурации сервера приложения
При настройке серверов приложений совершаются многие из тех действий, которые выполнялись при выборе конфигурации KDC. В частности, настраивая сервер приложений, необходимо изменить содержимое разделов [realms] и [domain_realm] файла krb5.conf так, чтобы находящиеся в них данные отражали конфигурацию областей. Кроме того, для работы сервера приложений нужен файл, содержащий ярлык. В этом файле должны находиться данные для узла (host/имя_узла@имя_области) и для каждого из керберизованных серверов, которые выполняются на компьютере (например, если вы собираетесь использовать керберизованный сервер Telnet, идентификатор принципала будет выглядеть так: telnet/имя_узла@имя_области). Файл, содержащий ярлык, можно создать с помощью программы kadmin.local на том компьютере, на котором выполняется KDC. Чтобы сделать это, вам придется добавить принципалов, вызвав команду addprinc, а затем записать ключи для этих принципалов в файл. Сеанс работы с программой kadmin.local может выглядеть так:
kadmin.locaclass="underline" addprinc \
host/gingko.threeroomco.com@THREEROOMCO.COM
kadmin.locaclass="underline" addprinc \
telnet/gingko.threeroom.com@THREEROOMCO.COM
kadmin.locaclass="underline" ktadd -k gingko.keytab \
host/gingko.threeroomco.com telnet/gingko.threeroomco.com
Файл gingko.keytab, полученный в результате описанных действий, надо переместить в каталог /etc компьютера, на котором выполняется сервер приложений, и присвоить ему имя krb5.keytab. Так как файл содержит чрезвычайно важную информацию, для его копирования надо применять средства, исключающие утечку данных, например перенести файл на дискету или использовать scp. Записав файл по месту назначения, надо установить права, позволяющие обращаться к нему только пользователю root, и удалить файл с компьютера KDC. Данный файл можно непосредственно создать на том компьютере, на котором установлен сервер приложений. В этом случае при вызове команды ktadd не надо указывать опцию -k gingko.keytab; система самостоятельно разместит файл в нужном каталоге. Данный метод пригоден, только если средства администрирования установлены и корректно сконфигурированы; кроме того, необходимо, чтобы была правильно выбрана базовая конфигурация Kerberos.