Информационные технологииStfw.Ru 🔍

Редактирование файла kdc.conf

🕛 19.06.2009, 16:57
В файле kdc.conf содержатся те же записи, что и в файле krb5.conf. Пример содержимого файла kdc.conf приведен в листинге 6.2. Информация об областях Kerberos помещается в раздел [ realms ]. Редактируя файл kdc. conf, необходимо обратить внимание на имя области, так как во многих конфигурационных файлах по умолчанию используется имя области EXAMPLE. COM. В разделе [realms] также содержатся записи, в которых указываются типы ключей, поддерживаемых в данной области. Эти записи можно изменять только в том случае, если вы ясно представляете себе последствия таких изменений. В разделе [kdcdefaults] указаны дополнительные конфигурационные файлы.

Листинг 6.2. Пример файла conf
[kdcdefaults].
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/diet/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
[realms] THREEROOMCO.COM = {
master_key_type = des-cbc-crc
supported_enctypes = des-cbc-crc:normal des3-cbc-raw:normal \ des3-cbc-shal:normal des-cbc-crc:v4 des-cbc-crc:afs3
}
Создание основного ключа
Для контроля доступа к 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 иrincipal. ok, содержащие базу данных Kerberos. (В некоторых системах файл principal называется principal. db.)
- Файлыprincipal. kadmS иprincipal. kadm5.1ock, предназначенные для администрирования Kerberos.
Если вы по каким-то причинам не хотите создавать stash-файл, то, вызывая kdb5_util, не надо указывать опцию -s. В этом случае при каждом запуске сервера Kerberos придется задавать основной ключ.
Администрирование области
Отредактировав конфигурационные файлы Kerberos и вызвав kdb5_util для создания основного ключа и инициализации базы данных Kerberos, можно приступать к администрированию области. Этот процесс в основном сводится к определению принципалов. Для выполнения действий по добавлению принципалов необходимо обладать полномочиями администратора.

Таблица 6.1. Коды полномочий в файле ACL
Код_Описание.
а Позволяет добавлять принципалов или политики
А Запрещает добавлять принципалов или политики
d Позволяет удалять принципалов или политики
D Запрещает удалять принципалов или политики
m Позволяет модифицировать принципалов или политики
М Запрещает модифицировать принципалов или политики
с Позволяет изменять пароли принципалов
С Запрещает изменять пароли принципалов
i Позволяет передавать запросы базе данных
I Запрещает передавать запросы базе данных
1 Позволяет выводить списки принципалов или политик из базы данных
L Запрещает выводить списки принципалов или политик из базы данных
х или * Признак групповой операции
Определение базовых ACL
Информация о принципалах Kerberos хранится в формате ACL (Access Control Lists -списки контроля доступа) в файле, имя которого определяет запись acl_file в составе kdc. conf. Этот файл содержит строки, представленные в следующем формате:
Принципал Kerberos Полномочия Целевой принципал

Несмотря на то что в ACL Kerberos и ACL для файловой системы представляют нА^-, механизмы контроля доступа, они несколько отличаются друг от друга. ACL имяю' файловой системы определяют, кто имеет право доступа к файлам. ACL Kerberos
предоставляют права модификации базы данных Kerberos. ACL Kerberos не
зависят от средств поддержки ACL файловой системы.

Первое поле (Принципал Kerberos) содержит идентификатор принципала (правила формирования идентификатора принципала были рассмотрены ранее). Любой компонент идентификатора можно заменить символом "*". Например, имя */admin@ THREEROOMCO. СОМ соответствует любой основе для экземпляра admin и области THREEROOMCO. СОМ. Подобное определение позволяет предоставить доступ к KDC всем администраторам.
Второе поле (Полномочия) - это код ACL, соответствующего принципалу. Типы полномочий задаются с помощью односимвольных кодов. Назначение символов описано в табл. 6.1. Объединяя разные коды, можно задать различные типы доступа. Например, код ali означает, что принципал может добавлять пользователей, выводить списки принципалов и передавать запросы базе данных.
Последнее поле (Целевой принципал) может отсутствовать. Оно определяет имена принципалов, к которыми применяются заданные полномочия. Например, вы можете ограничить возможности пользователя по доступу и модификации прав конкретных принципалов. Как и при определении принципала Kerberos, в идентификаторе целевого принципала можно использовать символ "*".
Рассмотрим в качестве примера следующую запись:

*/admin@THREEROOMCO.COM *
Эта запись предоставляет всем принципалам экземпляра admin полный доступ к базе данных Kerberos. Подобная запись включается в файл по умолчанию. Первое, что надо сделать, - модифицировать запись так, чтобы она соответствовала нужной вам области.

Создание принципалов

Для администрирования базы пользователей Kerberos применяются программы kadmin и kadmin. local. Программа kadmin позволяет администрировать KDC с удаленного компьютера; она организует обмен шифрованными сообщениями. Программа kadmin. local дает возможность модифицировать базу данных без применения сетевых средств. Вначале необходимо с помощью kadmin . local создать хотя бы одного пользователя, обладающего правами администратора, затем можно использовать kadmin для работы с удаленного узла. Очевидно, что удаленное администрирование можно осуществлять только в том случае, если на узле KDC присутствуют специализированные серверы Kerberos, предназначенные для выполнения подобных задач.
При запуске программ kadmin и kadmin. local можно задавать различные параметры, определяющие имя принципала, область, администрирование которой будет выполняться, и т. д. Подробную информацию о поддерживаемых параметрах можно получить, обратившись к соответствующим разделам справочной информации. После запуска программы надо ввести команды и данные, которые она запрашивает. Например, чтобы добавить принципала admin/admin@THREEROOMCO.COM, необходимо задать команду addprinc.
# kadmin.local
Authenticating as principal root/admin@THREEROOMCO.COM with
password.
kadmin.local: addprinc admin/admin@THREEROOMCO.COM
WARNING: no policy specified for admin/admin@THREEROOMCO.COM;
defaulting to no policy
Enter password for principal "admin/admin@THREEROOMCO.COM":
Re-enter password for principal "admin/admin@THREEROOMCO.COM":
Principal "admin/admin@THREEROOMCO.COM" created.

Как обычно, при вводе пароля символы не отображаются на экране. Не следует ИА\Д использовать в качестве административного пароля основной ключ.
После создания принципала, предназначенного для администрирования, вам надо сформировать для него ярлык (keytab). Ярлык - это ключ, который Kerberos использует для расшифровки административных билетов. Вам нет необходимости задавать этот ключ; Kerberos сгенерирует его самостоятельно. Достаточно лишь указать системе на необходимость выполнения этого действия, для чего следует в среде kadmin. local вызвать команду ktadd.

kadmin.local: ktadd -k /var/kerberos/krb5kdc/kadm5.keytab \ kadmin/admin kadmin/changepw
Для указания файла, в котором должен храниться ярлык, используется опция -k. Имя файла должно соответствовать имени, указанному посредством записи admin_keytab в файле kdc. conf. После указания значения опции -k задаются принципалы, для которых создается ярлык, в данном примере это kadmin / admin и kadmin / changepw (эти два принципала являются стандартными компонентами Kerberos; вам нет необходимости создавать их).
В дополнение к принципалу, который соответствует администратору, вы должны создать принципалов для ваших пользователей, серверов администрирования и KDC. Для этого используется описанная выше команда addprinc. Предположим, например, что вам надо добавить принципала flufy@THREEROOMCO. COM. Для этого вы должны ввести следующую команду:
kadmin.local: addprinc fluffy@THREEROOMCO.COM
Для серверов желательно использовать опцию -randkey, которая указывает системе на то, что для этого принципала ключ должен быть сформирован по случайному закону. Если вы не зададите эту опцию, то программа предложит вам ввести пароль. Другие опции, которые могут быть применены в данной ситуации, описаны на страницах справочной системы, посвященных kadmin.
Принципалы для серверов приложений создаются аналогичным образом, но идентификаторы обычно имеют вид имя_сервера/ ш*я_узла1имя_обла слш(именем сервера может быть, например, pop или ftp). Необходимо также создать принципала, в идентификаторе которого в качестве основы вместо имени сервера будет указано слово host. Кроме того, надо создать ярлык принципала host, используя для этого команду ktadd. Каждый ярлык должен быть помещен в отдельный файл, т. е. для разных узлов необходимо задавать различные значения опции -k. Впоследствии этот файл следует переместить на узел, на котором выполняется сервер приложения. Можно поступить и по-другому: вызвать программу kadmin с компьютера, на котором расположен сервер приложения, создать принципала для сервера и использовать команду ktadd для того, чтобы поместить ярлык в файл на этом компьютере.

Вероятнее всего, вы решите создать принципала для каждого KDC. Идентификаторы таких принципалов создаются в формате host/имя_узла%имя_области, например host/kerberos-1.threeroomco.com/THREEROOMCO.СОМ. Для ведомых KDC создавать принципалы не обязательно, но они могут быть полезны, если на соответствующем компьютере будет разрешена регистрация обычных пользователей (что категорически не рекомендуется) или если вы захотите использовать ведомый KDC вместо ведущего. Ведущему KDC этот принципал понадобится для того, чтобы передать базу данных ведомому KDC.

Окончив работу с программой kadmin, надо завершить ее выполнение путем ввода команды quit.

Сетевые средства Linux   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉