Среда модуля расширения идентификации (PAM) позволяет встраивать новые способы идентификации, не внося изменения в такие команды приложений, как web_auth, file_copy и screen_save. Она позволяет объединить вход в систему AIX с другими механизмами идентификации, такими как DCE и Kerberos. Эта среда позволяет также интегрировать механизмы управления учетом, сеансами и паролями.
PAM позволяет системному администратору выбрать комбинацию служб идентификации. Ниже приведен список преимуществ, которые может получить системный администратор при работе с PAM.
PAM состоит из встраиваемых модулей времени выполнения, выполняющих функции, связанные с идентификацией. Эти модули подразделяются на четыре категории: идентификации, управления учетом, управления сеансами и управления паролями.
Для идентификации пользователей с помощью нескольких методов идентификации в PAM применяется принцип, называемый хранением. В зависимости от конфигурации пользователю понадобится ввести один или несколько паролей для каждого способа идентификации. Для идентификации пользователю на нужно запоминать или вызывать дополнительные команды. Порядок, в котором применяются способы идентификации, задается в файле /etc/pam.conf.
При применении хранения пользователю может понадобиться запомнить несколько паролей. Однако если соответствующий модуль поддерживает преобразование паролей, все пароли могут быть расшифрованы с помощью основного пароля, поэтому необходимо запомнить только один пароль. Вместо этого системный администратор может синхронизировать пароли различных способов идентификации, но это может негативно сказаться на защите, так как степень защиты всех механизмов идентификации будет ограничена наименнее защищенным методом идентификации по паролю в стеке.
На приведенной ниже схеме изображены зависимости между приложениями, библиотекой PAM и модулями PAM. Приложения (web_auth, file_copy и screen_save) применяют модули PAM с помощью библиотеки PAM. Модули, применяемые для каждого приложения, определены в файле pam.conf. Выходные данные модулей возвращаются приложениям через библиотеку.
Рис. 3-2. Среда и объекты PAM. На схеме показаны команды, с помощью которых вымышленные приложения обращаются через библиотеку PAM к соответствующим модулям.
Программное обеспечение PAM состоит из библиотеки, нескольких модулей и файла настройки. Данный выпуск включает, кроме того, новые версии нескольких команд, использующих интерфейсы PAM.
Библиотека PAM, /usr/lib/libpam, обеспечивает среду для загрузки необходимых модулей и управления хранением. Она является общей структурой, в которую встраиваются все модули.
Каждый модуль PAM реализует определенных механизм. С каждым модулем может быть связано несколько типов модуля (идентификации, учета, сеансов или паролей), но не менее одного. Ниже приведено описание некоторых модулей.
Так как модуль pam_unix, /usr/lib/security/pam_unix.so.1, обеспечивает поддержку идентификации, управления учетом, управления сеансами и паролями, с этим модулем могут применяться определения любых типов модулей. Модуль pam_unix применяет для идентификации пароли AIX.
Модуль dial_auth, /usr/lib/security/pam_dial_auth.so.1 , может применяться только для идентификации. Он применяет для идентификации данные, хранящиеся в файлах /etc/dialups и /etc/d_passwd. Этот модуль обычно применяется командой login .
Модуль rhosts_auth, /usr/lib/security/pam_rhosts_auth.so.1, также может применяться для идентификации. Для идентификации он получает и данные из файлов ~/.rhosts и /etc/host.equiv с помощью процедуры ruserok. Этот модуль обычно применяется командами rlogin и rsh.
Модуль pam_dce, /usr/lib/security/pam_dce.so.1, обеспечивает поддержку идентификации, управления учетом и паролями. С ним могут быть связаны любые определения данных типов модулей. Для идентификации модуль применяет реестр DCE.
Для обеспечения защиты эти файлы должны принадлежать пользователю root, а права доступа для группы и прочих не должны разрешать запись. Если владельцем файла не является пользователь root, PAM не загрузит такой модуль.
Изменив файл /etc/pam.conf, можно выбрать механизм идентификации для каждого приложения входа в систему. Файл состоит из записей в следующем формате:
имя_службы тип_модуля флаг_управления путь_к_модулю опции_модуля
где:
Единственный необязательный элемент - module_options. Остальные значения должны быть указаны. Комментарии в файле должны начинаться со знака фунтов (#). Поля разделяются пробелами.
Запись в файле игнорируется при следующих условиях:
Для каждой записи необходимо указать одни из трех флагов_управления, определяющих способ обработки модуля. Эти флаги определяют конечный результат обработки модуля. Значения флага приведены ниже:
Для для всех модулей установлены флаги required, для идентификации пользователя необходима успешная обработка всех модулей. Если какие-либо модули не будут выполнены успешно, сообщается код ошибки первого такого модуля. Если обработка не выполняется успешно для обязательного модуля, выполняются все модули стека, но доступ не предоставляется.
Если в стеке нет обязательных модулей, то для успешной идентификации пользователя достаточно успешной обработки одного модуля. В случае, если для предоставления доступа достаточно успешной обработки одного модуля из стека, следует использовать флаг optional. Этот флаг следует устанавливать для модуля, только если успешная обработка соответствующего механизма необязательна. Например, если для выполнения операции пользователям необходимы права доступа, связанные с определенным механизмом идентификации, то для соответствующего модуля не следует указывать флаг optional.
При применении флага sufficient для предоставления доступа пользователю достаточно успешной обработки одного модуля идентификации.
В следующем разделе описаны некоторые задачи по работе с PAM. В частности, необходимо записать все особенности защиты, связанные с изменением файлов настройки.
При настройке PAM для конкретной системы следуйте общей процедуре:
Перед изменением файла настройки ознакомьтесь со следующими рекомендациями:
Для того, чтобы отключить чтение файлов ~/.rhosts в сеансе rlogin, удалите из файла настройки запись rlogin auth rhosts_auth.so.1. Это позволит защитить локальные ресурсы от доступа неидентифицированных пользователей удаленных систем. Пользователи должны будут ввести пароль, чтобы получить права доступа rlogin, независимо от наличия или содержимого файлов ~/.rhosts и /etc/hosts.equiv.
Чтобы закрыть доступ прочим неидентифицированным пользователям, применяющим файлы ~/.rhosts , следует отключить службу rsh. Для отключения конкретной службы лучше всего удалить запись об этой службе из файла /etc/inetd.conf. Внесения изменений в файл настройки PAM недостаточно для отключения службы.
Для того чтобы добавить модуль PAM DEC, измените файл /etc/pam.conf, в соответствии со следующим примером:
# # PAM configuration # # Authentication management # login auth sufficient /usr/lib/security/pam_dce.so.1 login auth required /usr/lib/security/pam_unix.so.1 rlogin auth required /usr/lib/security/pam_unix.so.1 rsh auth required /usr/lib/security/pam_rhost_auth.so.1 OTHER auth required /usr/lib/security/pam_unix.so.1 # # Account management # login account required /usr/lib/security/pam_dce.so.1 login account required /usr/lib/security/pam_unix.so.1 OTHER account required /usr/lib/security/pam_unix.so.1 # # Session management # OTHER session required /usr/lib/security/pam_unix.so.1 # # Password management # passwd password required /usr/lib/security/pam_dce.so.1 passwd password required /usr/lib/security/pam_unix.so.1
Флаг sufficient в записи входа в систему означает, что если пользователь идентифицируется в случае успешной обработки модуля pam_dce, независимо от других модулей, таких как pam_unix. В данном случае модуль pam_unix проверяется, только если модуль pam_dce не будет обработан успешно.
Две записи для идентификации login обеспечивают доступ к локальной системе пользователю root. Дополнительная строка нужна, так как DCE не предоставляет доступ пользователю root по умолчанию. При этом доступ к системе может получить только пользователь, применяющий локальную учетную запись root, а остальные пользователи без пароля AIX не могут войти в систему.
В приведенном выше примере показано только применение с модулем DCE команды login. Однако модуль DCE может применяться и для других служб. Если модуль pam_dce будет добавлен как модуль auth для входа в систему, его также необходимо добавить как модуль учета. Запись DCE для службы passwd обеспечивает изменение пароля DCE при запуске пользователем команды password.
Примечание: Если файл настройки PAM составлен неправильно или испорчен, существует вероятность того, что даже пользователь root не сможет войти в систему. В этом случае пользователь root может воспользоваться командой su, так как она не применяет PAM, затем перезагрузить систему как систему с одним пользователем и исправить файл настройки /etc/pam.conf.
Для внесения исправлений в файл /etc/pam.conf у вас должны быть права доступа root. Каждый раз изменяя файл /etc/pam.conf как пользователь root, проверьте все команды, на которые могли повлиять внесенные изменения, чтобы убедиться в правильности файла настройки. Например, добавив новый модуль в службу telnet, вызовите команду telnet, чтобы проверить изменения и убедиться в правильности файла /etc/pam.conf.
Выполните следующие действия, чтобы добавить модуль PAM:
Добавьте в файл /etc/syslog.conf записи, чтобы активизировать сообщения об ошибках. Для того чтобы изменения вступили в силу, необходимо перезапустить демон syslogd или отправить ему сигнал SIGHUP. Для сбора информации о PAM в файл могут быть добавлены следующие опции:
Следующая запись выводит все сообщения об ошибках, требующих немедленного исправления, на консоль. Сообщения о критических ситуациях отравляются по почте пользователю root. Информационные сообщения и сообщения отладки заносятся в файл /var/log/pamlog.
auth.alert /dev/console auth.crit 'root' auth.info;auth.debug /var/log/pamlog
Каждая строка протокола содержит системное время, имя системы, создавшей запись, и сообщение. Файл /var/log/pamlog может содержать большой объем информации.