можно указать несколько областей. Для того чтобы сделать это, надо включить в раздел
[realms]
имена нескольких областей, а параметры, описывающие каждую из них, поместить в фигурные скобки.
Записи, содержащиеся в разделе
[domain_realm]
, отображают имена компьютеров и доменов в области Kerberos. За именем узла или домена (имя домена начинается с точки) следует знак равенства, после него указывается область Kerberos, к которой относится компьютер или домен. Из листинга 6.1 видно, что все компьютеры, принадлежащие домену
threeroomco.com
(в том числе узел сети с именем
threeroomco.com
),
попадают в область
THREEROOMCO.СОМ
. Исключение составляет компьютер
outsider.threeroomco.com
, который попадает в область
PANGAEA.EDU
.
Совет
При настройке DNS-сервера целесообразно создать записи CNAME, определив с их помощью имена узлов, указанные в
krb5.conf
и в других конфигурационных файлах. Это поможет вам быстро ввести в строй резервный KDC, расположенный на другом компьютере, не редактируя конфигурационные файлы. Кроме того, для обращения к KDC можно использовать виртуальный IP-адрес. В этом случае компьютер, поддерживающий протокол NAT (Network Address Translation — преобразование сетевых адресов), определяется на DNS-сервере как KDC, но при обращении к нему он перенаправляет запрос тому компьютеру, на котором размещается реальный KDC. Это также позволяет перемещать KDC с одного компьютера на другой, не изменяя записи DNS.
Редактирование файла kdc.conf
В файле
kdc.conf
содержатся те же записи, что и в файле
krb5.conf
. Пример содержимого файла
kdc.conf
приведен в листинге 6.2. Информация об областях Kerberos помещается в раздел
[realms]
. Редактируя файл
kdc.conf
, необходимо обратить внимание на имя области, так как во многих конфигурационных файлах по умолчанию используется имя области
EXAMPLE.COM
. В разделе
[realms]
также содержатся записи, в которых указываются типы ключей, поддерживаемых в данной области. Эти записи можно изменять только в том случае, если вы ясно представляете себе последствия таких изменений. В разделе
Для контроля доступа к Kerberos используется основной ключ (master key), который по сути представляет собой пароль и хранится в stash-файле. Stash-файл — это специальный файл, который читает сервер при запуске и определяет, разрешено ли его выполнение. Если stash-файл отсутствует, основной ключ необходимо вручную вводить при запуске сервера.
Поскольку stash-файл содержит чрезвычайно важную информацию, он должен храниться на том же диске, что и KDC, и быть доступным для чтения только пользователю
root
. Создавать резервную копию этого файла можно лишь в том случае, если носитель информации будет храниться в надежном месте. При выборе основного ключа следует руководствоваться теми же правилами, что и при выборе пароля: в качестве основного ключа нельзя использовать слово ни одного из существующих языков, его нельзя создавать на основе каких-либо данных, которые злоумышленник может узнать из официальных источников. В основном ключе должны присутствовать символы верхнего и нижнего регистра, цифры и знаки пунктуации. Ключ должен напоминать случайный набор символов и в то же время достаточно легко запоминаться. Основу ключа могут составлять начальные буквы слов некоторой фразы. Например, из фразы "yesterday I went to the dentist" формируется последовательность
yiwttd
. Изменяя случайным образом регистр символов и добавляя цифры и знаки пунктуации, можно получить набор знаков
yi9Wt%Td
, который вполне подходит для использования в качестве основного ключа.
Для создания основного ключа и записи его в stash-файл используется команда
kdb5_util
.
# kdb5_util create -r THREEROOMCO.COM -s
Initializing database '/var/kerberos/krb5kdc/principal' for
realm 'THREEROOMCO.COM',
master key name 'K/M@THREEROOMCO.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:
На заметку
Из соображений безопасности символы, вводимые в ответ на приглашение, не отображаются на экране.
В процессе выполнения утилита
kdb5_util
создает и инициализирует несколько файлов. Эти файлы помещаются в каталог
/var/kerberos/krb5kdc
либо в другой каталог, используемый системой Kerberos, например в
/usr/local/var/krb5kdc
. Ниже приведен перечень файлов, создаваемых с помощью утилиты
kdb5_util
.
• Stash-файл с именем
.k5.имя_области
или
.k5stash
.
• Файлы
principal
и
principal.ok
, содержащие базу данных Kerberos. (В некоторых системах файл
principal
называется
principal.db
.)
• Файлы
principal.kadm5
и
principal.kadm5.lock
, предназначенные для администрирования Kerberos.
Если вы по каким-то причинам не хотите создавать stash-файл, то, вызывая
kdb5_util
, не надо указывать опцию -
s
. В этом случае при каждом запуске сервера Kerberos придется задавать основной ключ.
Администрирование области
Отредактировав конфигурационные файлы Kerberos и вызвав
kdb5_util
для создания основного ключа и инициализации базы данных Kerberos, можно приступать к администрированию области. Этот процесс в основном сводится к определению принципалов. Для выполнения действий по добавлению принципалов необходимо обладать полномочиями администратора.
Определение базовых ACL
Информация о принципалах Kerberos хранится в формате ACL (Access Control Lists — списки контроля доступа) в файле, имя которого определяет запись
acl_file
в составе
kdc.conf
. Этот файл содержит строки, представленные в следующем формате: