Выполнение аутентификации 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отсутствуют, вам придется ввести пароль для принципала. При наличии файла авторизации вводить пароль не нужно. Такой подход создает меньшую угрозу для безопасности системы, чем взаимодействие по незащищённому протоколу.
Если вы хотите непосредственно выполнить некоторую программу, вы можете сделать это с помощью опции -е имя_программы . Например, для того, чтобы запустить /bin/lsот имени пользователя fluffy, вам надо вызвать команду fluffy -e /bin/ls.
Читать дальше