Поддержка Kerberos с помощью РАМ имеет свои ограничения. В частности, если код программы построен так, что программа запрашивает имя пользователя и пароль, ее поведение не изменится при замене РАМ на модуль, поддерживающий Kerberos. Полученные данные программа передаст РАМ, и он предпримет попытку аутентификации с использованием базы данных Kerberos. Так, например, РАМ не устраняет необходимость ввода имени пользователя и пароля при работе с FTP-сервером, но позволяет следить за текущим паролем и приводить его в соответствие с данными для области Kerberos. Если речь идет о керберизованных программах, выполняющих регистрацию пользователя, то такая особенность не является недостатком, так как программы регистрации
в любом случае запрашивают пользовательское имя и пароль.
Несмотря на то что РАМ может выступать в роли универсального средства аутентификации и поддерживается во всех версиях Linux и во многих системах, отличных от Linux, керберизованные версии РАМ мало распространены. Ниже описаны некоторые из таких модулей, которые были доступны в момент написания данной книги.
• Модуль Деррика Брешера (Derrik Brashier). Этот модуль предназначен для использования совместно с Kerberos V4. Он расположен по адресу
ftp://ftp.dementia.org/pub/pam/
; имена файлов, содержащих этот модуль, начинаются символами
pam_krb4
. Выберите самый новый из файлов (во время написания данной книги все файлы датировались 1998 г.). Данный модуль распространяется в исходных кодах, поэтому перед использованием его надо скомпилировать.
• Модуль Фрэнка Кусека (Frank Cusack). Модуль РАМ, поддерживающий MIT Kerberos V5 и Heimdal, находится по адресу
http://www.nectar.com/zope/krb/
. Этот пакет доступен в исходных кодах; изначально коды были написаны для Solaris, но после компиляции они будут работать в системе Linux.
• Модуль Кертиса Кинга (Curtis King). Этот модуль доступен по адресу
ftp://ftp.dementia.org/pub/pam/
; имя файла —
pam_krb5-1.1.3.tar.gz
. Данный модуль также требует компиляции, в ходе которой могут возникнуть проблемы.
• Модуль для системы Red Hat. Модуль РАМ Kerberos V5 входит в состав дистрибутивного комплекта Red Hat под именем
pam_krb5
. Данный вариант РАМ поставляется в виде двоичного кода в формате поэтому чрезвычайно просто устанавливается в Red Hat и других подобных системах. При подготовке материала данной главы я использовал именно этот тип модуля, хотя следует отметить, что точно так же работает модуль Фрэнка Кусека.
• Модули для системы Debian. В Debian и других подобных системах работа с Kerberos V5 и Heimdal поддерживается соответственно модулями
libpam-krb5
и
libpam-heimdal
. На Web-узле Debian эти пакеты найти достаточно сложно, поэтому лучше скопировать их, обратившись по адресам
При инсталляции РАМ для поддержки Kerberos вы по сути устанавливаете средства, с помощью которых РАМ настраивается для выполнения конкретной задачи. В состав модуля РАМ входит одна или несколько библиотек, которые располагаются в каталогах
/lib/security
или
/usr/lib/security
. В системе Red Hat библиотеки содержатся в файлах
pam_krb5.so
и
pam_krb5afs.so
. Для работы с этими библиотеками вы должны внести изменения в конфигурационные файлы РАМ, которые содержатся в каталоге
/etc/pam.d
. Имена конфигурационных файлов составляются на основании имен серверов и других программ, для которых необходимо выполнить аутентификацию. Например, содержимое файла
/etc/pam.d/login
определяет взаимодействие программы
login
с РАМ. При редактировании конфигурационного файла РАМ в нем надо изменить (или добавить) одну или несколько строк, определяющих использование нового модуля Kerberos. В пакете, предназначенном для системы Red Hat, содержится большое число файлов с примерами
настройки. Эти файлы находятся в каталоге
/usr/share/doc/pam_krb5-версия/pam.d
, где версия — это номер версии пакета. Чтобы упростить настройку, надо скопировать соответствующие конфигурационные файлы в каталог
/etc/pam.d
. Файлы, которые могут потребоваться вам, перечислены ниже.
•
login
. Данный файл управляет взаимодействием с программой
login
. Настроив РАМ для работы с Kerberos, вы можете отказаться от
login.krb5
и продолжать работу с привычной вам программой
login
.
•
gdm
. GNOME Display Manager, или GDM, является одним из трех широко распространенных средств регистрации с графическим интерфейсом. (О настройке GDM и других подобных инструментах речь пойдет в главе 14.)
•
xdm
. Вторым инструментом, предоставляющим графический интерфейс для регистрации, является X Display Manager, или XDM. Конфигурационные файлы XDM может также использовать KDE Display Manager. В описании утверждается, что данный файл должен обеспечить аутентификацию Kerberos при работе указанных средств регистрации, однако при установке конфигурации в системе Mandrake возникают проблемы.
•
su
и
sudo
. Программа
su
, которая обсуждалась ранее, позволяет пользователю после регистрации в системе переходить к другой учетной записи. Программа делает то же самое, используя аутентификацию Kerberos, однако аналогичные результаты можно получить, создав файл РАМ для
su
. Файл
sudo
управляет взаимодействием с утилитой
sudo
.
•
passwd
. Этот файл настраивает РАМ так, что информация об изменении пароля, выполненном с помощью программы
passwd
, передается KDC.
•
vlock
. Программа
vlock
блокирует консоль, не завершая при этом сеанс работы пользователя. Чтобы разблокировать консоль, необходимо ввести пароль. Как нетрудно догадаться, данный файл обеспечивает аутентификацию путем обращения программы
vlock
к KDC.
•
xlock
и
xscreensaver
. Программы с такими именами предназначены для блокирования сеанса X Window (т.е. они выполняют действия, аналогичные
vlock
). Программа xscreensaver автоматически блокирует сеанс, если в течение определенного периода времени пользователь не выполняет никаких действий.
Возможно, вы захотите настроить и другие программы для взаимодействия с Kerberos; при этом вам придется отредактировать соответствующие конфигурационные файлы РАМ. Если какой-то из серверов уже сконфигурирован для работы с Kerberos, вам не надо модифицировать файлы РАМ. Например, если у вас уже установлен керберизованный FTP-сервер, вам не следует изменять файл
/etc/pam.d/ftp
. Подобные программы могут взаимодействовать с KDC, минуя РАМ; при работе с ними нет необходимости вводить имя пользователя и пароль, как это приходится делать, используя программы, взаимодействующие посредством РАМ.
Если некоторая программа использует РАМ, то для обеспечения ее совместной работы с Kerberos вам необходимо добавить или заменить некоторые строки в конфигурационном файле РАМ. В составе такого файла содержатся записи, определяющие основные действия, связанные с аутентификацией:
auth
(аутентификация пользователя),
account
(проверка корректности учетной записи),
password
(изменение пароля) и
session
(начало и завершение сеанса). В листинге 6.4 показано содержимое файла