Запуск керберизованных серверов
Как правило, в состав стандартного пакета Kerberos входят керберизованные серверы и локальные средства аутентификации, например, программы, поддерживающие протоколы Telnet и FTP, а также разновидности shell, exec и login. Керберизованные программы надо установить вместо их традиционных аналогов. Так, если в вашей системе используется inetd, вам надо включить в файл /etc/inetd.conf следующие данные:
klogin stream tcp nowait root /usr/kerberos/sbin/klogind \
klogind -k -c
eklogin stream tcp nowait root /usr/kerberos/sbin/klogind \
klogind -k -c -e
kshell stream tcp nowait root /usr/kerberos/sbin/kshd \
kshd -k -c -A
stream tcp nowait root /usr/kerberos/sbin/ftpd \
ftpd -a
telnet stream tcp nowait root /usr/kerberos/sbin/telnetd \
telnetd -a valid
Приведенные выше строки заменяют соответствующие записи в составе файла.
Помимо программ, которые распространяются в составе пакета Kerberos, доступны также керберизованные варианты других серверов. Подобные серверы поставляются независимыми производителями. Прежде чем использовать такие продукты, необходимо тщательно изучить документацию и выяснить их возможности и особенности выполнения.
Настройка клиентов Kerberos
Для того чтобы пользователь мог работать с системой Kerberos, надо в первую очередь создать принципала для этого пользователя. Принципалы пользователей имеют вид имя_пользователя@имя_области, и для их создания применяются утилиты kadmin и kadmin.local. После создания принципала пользователь может обращаться к серверам с помощью клиентов, ориентированных на работу в системе Kerberos. Вам, как системному администратору, необходимо установить соответствующие клиентские программы. Пользователям также потребуются утилиты, предназначенные для получения TGT и управления ими. Если вы захотите, чтобы средства Kerberos использовались для управления регистрацией на отдельных рабочих станциях, вам надо модифицировать обычные инструменты регистрации.
Обеспечение доступа к серверам Kerberos
На первый взгляд может показаться, что для обращения к серверам приложений Kerberos достаточно иметь соответствующие клиентские программы. На самом деле ситуация выглядит несколько сложнее. Прежде всего, в процессе обмена участвуют специальные утилиты: пользователь должен иметь возможность получить TGT и при необходимости изменить пароль Kerberos. Кроме того, к самим клиент-программам Kerberos предъявляются специальные требования; без поддержки специфических возможностей клиенты Kerberos превращаются в обычные клиентские программы, не обеспечивающие повышенный уровень защиты.
В состав пакета Kerberos входят утилиты, предназначенные для управления паролями и билетами Kerberos. Наиболее важные из них перечислены ниже.
• kinit. Эта программа получает TGT. Ее действие можно представить себе как "регистрацию" пользователя в области Kerberos; до запуска kinit воспользоваться клиентами Kerberos невозможно. При выполнении программа kinit обращается к KDC для получения TGT. Как было сказано в начале данной главы, TGT используется керберизованными приложениями для получения разрешения на пользование серверами приложений Kerberos. По умолчанию в качестве основы идентификатора принципала применяется имя пользователя; в этом же идентификаторе указывается имя области, принятое по умолчанию. Если вам необходимо, чтобы использовался другой идентификатор принципала, его надо указать при вызове программы. Соответствующая команда может иметь вид kinit minerva@PANGAEA.EDU. Программа kinit также поддерживает и другие опции. Подробную информацию о них можно получить, обратившись к страницам справочной системы, посвященным kinit.
• klist. Данная программа выводит список билетов (в том числе TGT), выданных на текущий момент, а также информацию о сроке их действия. Если программа kinit еще не запущена, klist не выведет сведений ни об одном билете.
• kpasswd. Программа kpasswd не имеет отношения к поддержке конкретных сеансов Kerberos; она позволяет изменять пароль принципала в базе данных Kerberos. Эта программа по сути представляет собой аналог passwd. Для использования kpasswd необходимо иметь TGT.
• kdestroy. Данная программа удаляет все билеты из кэша пользователя. Обычно она вызывается перед окончанием сеанса работы в системе или в том случае, если пользователь твердо знает, что в ближайшем будущем он не будет работать с серверами Kerberos. Несмотря на то что билеты автоматически удаляются по истечении срока их действия, рекомендуется после окончания работы с билетами вызывать программу kdestroy. Это снизит вероятность того, что злоумышленник сможет обнаружить недостатки в системе защиты и использовать их в своих целях.
Желательно включать вызов kdestroy в состав .logout, .xinitrc и других стандартных файлов, которые выполняются по окончании сеанса работы пользователя в системе. При использовании модулей РАМ (они будут рассматриваться далее в этой главе) kdestroy вызывается автоматически.
Как используются перечисленные выше утилиты на практике? В большинстве случаев программы kinit и kdestroy вызываются соответственно в начале и в конце сеанса работы. Чтобы определить текущее состояние билетов, можно использовать утилиту klist. Рассмотрим следующий пример:
$ kinit
Password for fluffy@THREEROOMCO.COM:
$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principaclass="underline" fluffy@THREEROOMCO.COM
Valid starting Expires Service principal
10/09/02 14:38:57 10/10/02 00:38:57 krbtgt/THREEROOMCO.COM@\
THREEROOMCO.COM
Kerberos 4 ticket cache: /tmp/tkt500
klist: You have no tickets cached
$ kpasswd
Password for fluffy@THREEROOMCO.COM:
Enter new password:
Enter it again:
Password changed.
$ kdestroy
$ klist
klist: No credentials cache file found (ticket cache
FILE:/tmp/krb5cc_500)
Kerberos 4 ticket cache: /tmp/tkt500
klist: You have no tickets cached
Программа kinit, вызываемая в начале работы, получает TGT, который затем отображается при вызове утилиты klist как krbtgt. Программа klist выводит также время выдачи билета и окончания его действия; в данном случае билет действителен в течение десяти часов (в зависимости от системы это значение может изменяться). Если вызвать klist после использования керберизованного клиента, данная утилита выведет сведения о другом билете. Для изменения пароля надо сначала указать текущий пароль, а затем дважды ввести новый. Как и при работе с kinit, символы, составляющие пароль, не отображаются на экране. После вызова kdestroy все билеты удаляются.