Администрирование области
Администрирование области
Отредактировав конфигурационные файлы Kerberos и вызвав kdb5_util для создания основного ключа и инициализации базы данных Kerberos, можно приступать к администрированию области. Этот процесс в основном сводится к определению принципалов. Для выполнения действий по добавлению принципалов необходимо обладать полномочиями администратора.
Определение базовых 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 означает, что принципал может добавлять пользователей, выводить списки принципалов и передавать запросы базе данных.
Таблица 6.1. Коды полномочий в файле ACL
Код Описание а Позволяет добавлять принципалов или политики А Запрещает добавлять принципалов или политики d Позволяет удалять принципалов или политики D Запрещает удалять принципалов или политики m Позволяет модифицировать принципалов или политики M Запрещает модифицировать принципалов или политики с Позволяет изменять пароли принципалов С Запрещает изменять пароли принципалов i Позволяет передавать запросы базе данных I Запрещает передавать запросы базе данных 1 Позволяет выводить списки принципалов или политик из базы данных L Запрещает выводить списки принципалов или политик из базы данных x или * Признак групповой операцииПоследнее поле (Целевой принципал) может отсутствовать. Оно определяет имена принципалов, к которыми применяются заданные полномочия. Например, вы можете ограничить возможности пользователя по доступу и модификации прав конкретных принципалов. Как и при определении принципала Kerberos, в идентификаторе целевого принципала можно использовать символ "*".
Рассмотрим в качестве примера следующую запись:
*/admin@THREEROOMCO.COM *
Эта запись предоставляет всем принципалам экземпляра admin полный доступ к базе данных Kerberos. Подобная запись включается в файл по умолчанию. Первое, что надо сделать, — модифицировать запись так, чтобы она соответствовала нужной вам области.
Создание принципалов
Для администрирования базы пользователей Kerberos применяются программы kadmin и kadmin.local. Программа kadmin позволяет администрировать KDC с удаленного компьютера; она организует обмен шифрованными сообщениями. Программа kadmin.local дает возможность модифицировать базу данных без применения сетевых средств. Вначале необходимо с помощью kadmin.local создать хотя бы одного пользователя, обладающего правами администратора, затем можно использовать kadmin для работы с удаленного узла. Очевидно, что удаленное администрирование можно осуществлять только в том случае, если на узле присутствуют специализированные серверы 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. Имя файла должно соответствовать имени, указанному посредством записи в файле kdc.conf. После указания значения опции -k задаются принципалы, для которых создается ярлык, в данном примере это kadmin/admin и kadmin/changepw (эти два принципала являются стандартными компонентами Kerberos; вам нет необходимости создавать их).
В дополнение к принципалу, который соответствует администратору, вы должны создать принципалов для ваших пользователей, серверов администрирования и KDC. Для этого используется описанная выше команда addprinc. Предположим, например, что вам надо добавить принципала fluffy@THREEROOMCO.COM. Для этого вы должны ввести следующую команду:
kadmin.local: addprinc fluffy@THREEROOMCO.COM
Для серверов желательно использовать опцию -randkey, которая указывает системе на то, что для этого принципала ключ должен быть сформирован по случайному закону. Если вы не зададите эту опцию, то программа предложит вам ввести пароль. Другие опции, которые могут быть применены в данной ситуации, описаны на страницах справочной системы, посвященных kadmin.
Принципалы для серверов приложений создаются аналогичным образом, но идентификаторы обычно имеют вид имя_сервера/имя_узла@имя_области (именем сервера может быть, например, pop или ftp). Необходимо также создать принципала, в идентификаторе которого в качестве основы вместо имени сервера будет указано слово host. Кроме того, надо создать ярлык принципала host, используя для этого команду ktadd. Каждый ярлык должен быть помещен в отдельный файл, т.е. для разных узлов необходимо задавать различные значения опции -k. Впоследствии этот файл следует переместить на узел, на котором выполняется сервер приложения. Можно поступить и по-другому: вызвать программу kadmin с компьютера, на котором расположен сервер приложения, создать принципала для сервера и использовать команду ktadd для того, чтобы поместить ярлык в файл на этом компьютере.
Вероятнее всего, вы решите создать принципала для каждого KDC. Идентификаторы таких принципалов создаются в формате host/имя_узла@имя_области, например host/kerberos-1.threeroomco.com/THREEROOMCO.COM. Для ведомых KDC создавать принципалы не обязательно, но они могут быть полезны, если на соответствующем компьютере будет разрешена регистрация обычных пользователей (что категорически не рекомендуется) или если вы захотите использовать ведомый KDC вместо ведущего. Ведущему KDC этот принципал понадобится для того, чтобы передать базу данных ведомому KDC.
Окончив работу с программой kadmin, надо завершить ее выполнение путем ввода команды quit.