предназначена для передачи файлов; керберизованная версия данного инструмента поддерживает средства аутентификации Kerberos.
• Прочие программы. Здесь рассмотрены лишь описания сетевых инструментов, поставляемых в составе стандартного пакета Kerberos V5. В настоящее время доступны другие керберизованные системы. Очевидно, что для работы с ними необходимо, чтобы средства Kerberos поддерживались как клиентами, так и серверами.
В справочной системе приведена дополнительная информация о керберизованных клиентских программах, в том числе сведения о различных опциях, которые задаются при их вызове. В особенности внимательно надо прочитать документацию на программы, не входящие в стандартный пакет поставки Kerberos. Некоторые из них обеспечивают минимальное взаимодействие с Kerberos (например, поддерживают
аутентификацию, но не осуществляют кодирование), другие реализуют полный набор функций защиты. Говоря о средствах Kerberos, следует особо отметить кодирование данных, которое должно поддерживаться всеми стандартными клиентами Kerberos. Если при вызове такого клиента вы укажете в командной строке опцию
– х
, данные будут передаваться в зашифрованном виде. Эта возможность чрезвычайно полезна в том случае, если необходимо передавать важные данные по Internet или даже по локальной сети. Например, если вы собираетесь зарегистрироваться на компьютере с помощью средств Telnet, а затем использовать команду
su
для выполнения административных функций, то, вероятно, захотите передавать данные в зашифрованном виде и защитить таким образом пароль пользователя
root
. Это позволит сделать команда которая
ksu
, будет рассмотрена ниже в этой главе.
При установке системы Kerberos, поставляемой в виде исходных кодов, пользовательские программы по умолчанию размещаются в каталоге
/usr/local/bin
(инструменты, предназначенные для администрирования, располагаются в
/usr/local/sbin
). Некоторые пакеты, распространяемые в виде двоичных кодов, используют другие каталоги. Например, Kerberos для Red Hat помещает пользовательские программы в каталог
/usr/kerberos/bin
. Для того чтобы использовать керберизованные инструменты вместо стандартных программ, надо включить каталоги, в которых размещены эти инструменты, в состав строки, задаваемой в качестве значения переменной окружения
PATH
, и убедиться, что они находятся перед каталогами со стандартными программами. (Значение переменной окружения
PATH
обычно указывается в файле
/etc/profile
, а для пользователей, работающих с оболочкой Bash, — в файле
.bashrc
.
Применение Kerberos для регистрации пользователей
При обсуждении средств поддержки сеанса Kerberos предполагалось, что пользователь уже зарегистрирован в системе. Однако подобный подход крайне неудобен, так как пользователю приходится регистрироваться дважды: один раз в начале работы на компьютере, а второй раз при работе с серверами Kerberos (при запуске программы
kinit
). Решением этой проблемы могло бы быть использование программы, одновременно решающей обе задачи. В составе пакета Kerberos обычно поставляются два подобных инструмента:
login.krb5
и
ksu
. Они предназначены для регистрации пользователя в текстовом режиме. Регистрацию можно было бы организовать и по-другому, модифицировав библиотеки Linux для работы с Kerberos. Такое решение сложнее в реализации, но обеспечивают большую гибкость.
Внимание
Рекомендуется перед использованием
login.krb5
сначала проверить программу
kinit
для основных учетных записей, в том числе для записи root. Если
kinit
не работает, не будет работать и
login.krb5
, следовательно, вам не удастся зарегистрироваться с консоли в текстовом режиме. Желательно также зарегистрироваться под именем root с одного из виртуальных терминалов. В случае, если у вас возникнут проблему с использованием
login.krb5
, вы сможете изменить конфигурацию программы. Аналогичному подходу необходимо следовать и при работе с другими инструментами регистрации.
Выполнение аутентификации Kerberos в текстовом режиме
Процедура регистрации в системе Linux в текстовом режиме включает использование программы
getty
или одной из ее разновидностей (разновидностями
getty
являются
mingetty
,
mgetty
и
vgetty
). Они запускаются из
/etc/inittab
, контролируют консольный терминал и последовательные порты и передают управление программе
/bin/login
. Программы поддержки некоторых
сетевых протоколов, например Telnet, также вызывают
/bin/login
. Как следует из имени
login.krb5
, эта программа создана для замены
/bin/login
. Прежде чем выполнять такую замену, желательно сохранить исходную программу регистрации под другим именем. Например, вы можете использовать следующие команды:
# mv /bin/login /bin/login-original
# cp /usr/kerberos/sbin/login.krb5 /bin/login
Если возникнут проблемы с использованием
login.krb5
, вы всегда сможете восстановить исходную программу
/bin/login
. После замены программы
login
регистрация пользователя на компьютере будет автоматически сопровождаться начальной регистрацией в системе Kerberos. Процедура начальной регистрации включает получение TGT, поэтому после нее нет необходимости в вызове
kinit
. Несмотря на то что описанная конфигурация предполагает наличие записи в файле
/etc/passwd
, рабочего каталога пользователя и прочих ресурсов, необходимых в обычных условиях для нормальной работы на компьютере, в системе будет выполняться только аутентификация Kerberos. Существуют также другие средства регистрации, которые надо модифицировать для работы с Kerberos. К ним относятся регистрация с помощью инструментов с графическим интерфейсом, а также регистрация посредством серверов, которые не используют
/bin/login
, например SSH.
Переход к новой учетной записи после регистрации
При использовании
su
для замены учетной записи в работу включается новый механизм аутентификации. В состав пакета Kerberos входит альтернативный инструмент
ksu
, который принимает решение о переходе к учетной записи другого пользователя и выполняет необходимые действия. Для работы этой программы должны выполняться следующие условия.
• Компьютер, на котором работает
ksu
, должен иметь ярлык (обычно он хранится в файле
/etc/krb5.keytab
).
• Для исполняемого файла
ksu
должен быть установлен признак SUID, так, чтобы программа, запускаемая от имени любого пользователя, выполнялась с правами
root
. Во многих пакетах Kerberos этот признак не установлен, поэтому вам необходимо сделать это самостоятельно (вызвать команду
chmod a+s /usr/kerberos/bin/ksu
).
• Для повышения уровня защиты пользователю, учетной записью которого вы собираетесь воспользоваться, должен соответствовать файл авторизации, в котором указываются права доступа для других пользователей. В роли файла авторизации может выступать
.k5login
или
.k5users
. Особенности создания и использования этих файлов описаны ниже.
Для того чтобы один пользователь мог перейти к учетной записи другого пользователя, целевой пользователь должен создать файл авторизации. Без этого файла
ksu
запросит пароль, который может быть передан по сети в незашифрованном виде (это произойдет, если пользователь регистрировался посредством незащищенного протокола, например Telnet). Файл
.k5login
предоставляет другому пользователю полный набор привилегий. Он состоит из набора строк, в каждой из которых указан принципал Kerberos. Файл
.k5users
предоставляет пользователю ограниченный доступ; в нем указаны списки программ, которые этот пользователь может запускать. Каждая строка файла начинается с идентификатора принципала Kerberos, за которым следуют имена программ, разделенных пробелами. Групповые операции обозначаются с помощью символа
*
. Ниже приведен пример записи, с помощью которой принципалу
minerva@THREEROOMCO.COM
предоставляются права на запуск программ
/bin/ls
и
/usr/bin/zip
.
minerva@THREEROOMCO.COM /bin/ls /usr/bin/zip
После настройки программа
ksu
работает подобно
su
— вы вводите имя программы, затем указываете имя пользователя, привилегии которого вы собираетесь получить. Если файлы
.k5login
и
.k5users
отсутствуют, вам придется ввести пароль для принципала. При наличии файла авторизации вводить пароль не нужно. Такой подход создает меньшую угрозу для безопасности системы, чем взаимодействие по незащищённому протоколу.