kadmin.local: addprinc admin/[email protected]
WARNING: no policy specified for admin/[email protected];
defaulting to no policy
Enter password for principal 'admin/[email protected]':
Re-enter password for principal 'admin/[email protected]':
Principal 'admin/[email protected]' created.
Как обычно, при вводе пароля символы не отображаются на экране. Не следует использовать в качестве административного пароля основной ключ.
После создания принципала, предназначенного для администрирования, вам надо сформировать для него 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
. Предположим, например, что вам надо добавить принципала [email protected]
. Для этого вы должны ввести следующую команду:
kadmin.local: addprinc [email protected]
Для серверов желательно использовать опцию -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
.
Запуск KDC
К этому моменту компоненты Kerberos настроены и могут быть запущены. Для запуска сервером можно использовать способы, описанные в главе 4. Если пакет Kerberos поставлялся вместе с вашей системой, для вероятно, существует сценарий запуска SysV. Сценарий для KDC обычно называется krb5kdc
, а сценарий для сервера администрирования — kadmin
.
Если сценарии SysV отсутствуют, вы можете использовать для запуска программы krb5kdc
и kadmin
, которые входят в состав пакета Kerberos. Каждая программа порождает процесс из оболочки, поэтому вам нет необходимости указывать после ее имени символ '&'. Вызывать данные программы можно из локального сценария запуска (/etc/rc.d/rc.local
).
Настройка ведомого KDC
Ведомый KDC настраивается практически так же, как и ведущий. Вам надо отредактировать файлы krb5.conf
и kdc.conf
, использовать kdb5_util
для создания файлов базы данных, сформировать файл ACL и вызвать команду ktadd
программы kadmin.local
, чтобы записать ярлык в файл.
Каждому KDC требуется файл, в котором перечислены все KDC (или, точнее, принципалы, связанные со всеми KDC. Этот файл необходим для передачи данных из базы. Указанный файл имеет имя kpropd.acl
и чаще всего хранится в каталоге /var/kerberos/krb5kdc
либо /usr/local/var/krb5kdc
. Содержимое этого файла выглядит приблизительно следующим образом:
host/[email protected]
host/[email protected]
Сформировав данный файл для каждого из KDC, надо сконфигурировать ведомый KDC для выполнения двух серверов: kpropd
и klogind
. Запуск этих серверов можно осуществлять с помощью суперсервера. Соответствующие записи /etc/inetd.conf
могут иметь следующий вид:
krb5_prop stream tcp nowait root /usr/kerberos/sbin/kpropd
kpropd eklogin stream tcp nowait root
/usr/kerberos/sbin/klogind klogind -k -c -e
Возможно, на вашем компьютере расположение файлов будет отличаться от указанного выше. Если же в вашей системе используется суперсервер xinetd
, вам придется внести изменение в его конфигурационный файл (о настройке суперсерверов см. в главе 4). Если в файле /etc/services
отсутствуют записи для krb5_prop
и eklogin
, вам надо добавить в файл следующие строки:
krb5_prop 754/tcp # Передача данных ведомому