# серверу 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, доступны также керберизованные варианты других серверов. Подобные серверы поставляются независимыми производителями. Прежде чем использовать такие продукты, необходимо тщательно изучить документацию и выяснить их возможности и особенности выполнения.