В последующих разделах данной главы описывается система Kerberos V5, разработанная MIT. Версия Kerberos V4 отличается от нее некоторыми особенностями конфигурации. Некоторые особенности работы систем, созданных на базе Kerberos V5, могут не совпадать с описанными здесь. Работая над данной главой, я использовал пакет Kerberos V5 в системе Red Hat, в тексте главы приводятся ссылки на исходные коды MIT.
Настройка сервера Kerberos
Основой сети Kerberos является сервер Kerberos, или KDC. Как и для большинства серверов Linux, для настройки KDC используется текстовый файл, находящийся в каталоге
/etc
.
Зная формат этого файла, вы можете устанавливать конфигурацию сервера Kerberos и, следовательно, воздействовать на работу других сетевых систем. В данном разделе приводятся основные сведения о конфигурации сервера. В последующих разделах обсуждается конфигурация клиентов и серверов приложений.
На заметку
Некоторые действия, рассматриваемые в данном разделе, приходится выполнять при настройке клиентов Kerberos и серверов приложений. Например, для всех систем задаются области Kerberos.
Очевидно, что пакет Kerberos должен быть установлен на компьютере, предназначенном для размещения KDC. Для компиляции исходных кодов MIT и установки полученных программ надо вызвать сценарий
configure
, содержащийся в составе пакета, а затем вызвать команды
make
и
make install
. В результате этих действий будут инсталлированы сервер Kerberos, серверы приложений и клиенты. При выполнении сценария
configure
желательно задавать опцию
– -enable-shared
; при этом будут созданы разделяемые библиотеки Kerberos, что позволит уменьшить размеры программ. Такая конфигурация используется многими пакетами независимых производителей. Если система поставляется в виде двоичных кодов, компоненты Kerberos часто распределяются по отдельным пакетам. Например, дистрибутивная поставка Kerberos для системы Red Hat состоит из пакетов, которые называются
krb5-libs
,
krb5-server
и
krb5-workstation
. Такой подход позволяет исключить при инсталляции ненужные пакеты.
Редактирование конфигурационных файлов сервера
Основным конфигурационным файлом сервера Kerberos является файл
/etc/krb5.conf
. Этот файл состоит из нескольких разделов; роль заголовка раздела выполняет ключевое слово, помещенное в квадратные скобки. Строки, следующие до появления очередного заголовка, определяют характеристики, соответствующие текущему разделу. Пример файла
krb5.conf
для KDC приведен в листинге 6.1.
Листинг 6.1. Пример файла
krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
ticket_lifetime = 24000
default_realm = THREEROOMCO.COM
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
THREEROOMCO.COM = {
kdc = kerberos.threeroomco.com:88
kdc = kerberos-1.threeroomco.com:88
kdc = kerberos-2.threeroomco.com:88
admin_server = kerberos.threeroomco.com:749
default_domain = threeroomco.com
}
[domain_realm]
.threeroomco.com = THREEROOMCO.COM
threeroomco.com = THREEROOMCO.COM
outsider.threeroomco.com = PANGAEA.EDU
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
Каждая
строка внутри раздела состоит из имени переменной, за которой следуют знак равенства (символ "
=
") и значение этой переменной. Некоторые разделы могут содержать подразделы, для обозначения которых используются фигурные скобки. Например, в разделе
[realms]
, представленном в листинге 6.1, фигурными скобками выделены строки, связанные с областью
THREEROOMCO.COM
. Наличие подразделов позволяет создавать файлы, поддерживающие несколько областей.
На заметку
Большинство разделов, содержащихся в рассмотренном конфигурационном файле, используется для настройки серверов приложений и клиентов Kerberos. Не нужны лишь разделы
[login]
и
[kdc]
. Для некоторых программ могут потребоваться специальные параметры, которые обычно задаются в разделе
[appdefaults]
.
KDC также использует собственный конфигурационный файл
kdc.conf
. В этом файле содержатся данные, предназначенные только для KDC, в то время как информация в файле
krb5.conf
используется также клиентами и серверами приложений. Формат файла
kdc.conf
совпадает с форматом файла
krb5.conf
.
Определение области
Как правило, для определения областей в файлы
krb5.conf
и
kdc.conf
включаются специальные записи. Отредактировав файл, рассмотренный выше в качестве примера, вы измените конфигурацию KDC, серверов приложений и клиентов. Для того чтобы изменения были учтены сервером Kerberos и серверами приложений, надо перезапустить эти программы.
Редактирование файла
krb5.conf
В файле
krb5.conf
находится раздел
[realms]
, в котором определены основной и ведомые серверы. В разделе
[domain_realm]
указывается взаимосвязь между областью Kerberos и доменом Internet. Оба раздела содержатся в листинге 6.1.
В рассмотренном примере раздел
[realms]
определяет основной KDC и два ведомых KDC для области
THREEROOMCO.СОМ
. Традиционно эти серверы называются
kerberos
и
kerberos-n
, где n — это номер ведомого сервера в домене, соответствующем области. В данном примере домен и область Kerberos имеют одинаковые имена (отличающиеся только регистром символов), но в общем случае их имена не обязательно должны совпадать. В определении каждого из указан номер порта, по которому устанавливаются соединения с соответствующим сервером. Запись
admin-server
соответствует компьютеру, который используется для администрирования области. Обычно это тот же компьютер, на котором установлен но для выполнения функций администрирования используется другой порт (как правило, порт 749). Запись определяет имя домена, связанное с принципалами. По умолчанию в качестве такого имени используется имя области Kerberos, преобразованное в символы нижнего регистра. Очевидно, что в данном примере запись