Несмотря на то что в 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
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 сгенерирует его самостоятельно. Достаточно лишь указать системе на необходимость выполнения этого действия, для чего следует в среде
Для указания файла, в котором должен храниться ярлык, используется опция
– 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
для того, чтобы поместить ярлык в файл на этом компьютере.