# серверу 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.local: addprinc
host/[email protected]
kadmin.local: addprinc
telnet/[email protected]
kadmin.local: 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.
Запуск керберизованных серверов
Как правило, в состав стандартного пакета Kerberos входят керберизованные серверы и локальные средства аутентификации, например, программы, поддерживающие протоколы Telnet и FTP, а также разновидности shell, exec и login. Керберизованные программы надо установить вместо их традиционных аналогов. Так, если в вашей системе используется inetd, вам надо включить в файл /etc/inetd.conf следующие данные:
klogin stream tcp nowait root /usr/kerberos/sbin/klogind
klogind -k -c
eklogin stream tcp nowait root /usr/kerberos/sbin/klogind
klogind -k -c -e
kshell stream tcp nowait root /usr/kerberos/sbin/kshd
kshd -k -c -A
stream tcp nowait root /usr/kerberos/sbin/ftpd
ftpd -a
telnet stream tcp nowait root /usr/kerberos/sbin/telnetd
telnetd -a valid
Приведенные выше строки заменяют соответствующие записи в составе файла.
Помимо программ, которые распространяются в составе пакета Kerberos, доступны также керберизованные варианты других серверов. Подобные серверы поставляются независимыми производителями. Прежде чем использовать такие продукты, необходимо тщательно изучить документацию и выяснить их возможности и особенности выполнения.
