Оглавление Оглавление 1

Вид материалаДокументы
Подобный материал:
1   ...   15   16   17   18   19   20   21   22   ...   29

Упражнения


Упражнение 1:


  • Установите и настройте сервер OpenLDAP
  • Воспользуйтесь утилитой ldap-account-manager, чтобы создать пользователей и группы (отключите Samba в файле конфигурации LAM)
  • Используйте каталог LDAP как репозиторий email адресов для вашего любимого почтового клиента
      1. Решения


Решение 1 :


  • Следуйте инструкциям этой главы
    1. Аутентификация PAM

                  1. Ключевые файлы, термины и утилиты:

/etc/pam.d
pam.conf
      1. Настройка PAM

Введение


Подключаемые модули аутентификации (PAM - Pluggable Authentication Modules) упрощают реализацию процедуры аутентификации для различных программ. Как правило, в системе Linux существует несколько программ, требующих аутентификации: login, su, ftpd, sshd, ... Поскольку все они используют библиотеки PAM, довольно легко настраивать новые механизмы аутентификации или исправлять проблемы с безопасностью в одном месте без необходимости перекомпиляции всех этих программ.


Модули PAM допускают аутентификацию с помощью LDAP, Samba, смарт-карт, USB-ключей, баз данных SQL и т.п.


Настройка


Библиотеки PAM настраиваются в /etc/pam.d :

[root@test pam.d]# ls

chfn ftp kbdrate kppp login passwd ppp sieve squid sudo xdm

chsh halt kde3 kscreensaver3 net_monitor pop reboot simple_root_authen sshd system-auth xserver cups imap kde3-np lmtp other poweroff secure-mcserv smtp su webmin*

[root@test pam.d]#


Все файлы выглядят примерно так:

[root@test pam.d]# cat login

#%PAM-1.0

auth required pam_securetty.so

auth required pam_stack.so service=system-auth

auth required pam_nologin.so

account required pam_stack.so service=system-auth

password required pam_stack.so service=system-auth

session required pam_stack.so service=system-auth

session optional pam_console.so

[root@test pam.d]#


В каждой строке указан тип модуля, управляющий флаг и используемая библиотека PAM вместе с ее опциями.


Тип модуля


Тип модуля может принимать одно из следующих значений:
  • auth

Модуль этого типа устанавливает, что пользователь именно тот, за кого себя выдает, предписывая приложению запросить у пользователя пароль или идентифицировать себя другим способом.
  • account

Этот модуль занимается управлением учетными записями. Обычно он используется для разрешения / запрещения доступа к сервису, основываясь на времени суток, имеющихся системных ресурсах (максимальном числе пользователей), проверке срока действия учетной записи и т.п.
  • session

Этот модуль отвечает за выполнение действий, производимых до или после того как пользователь получит какой-либо сервис. Такого рода действия включают регистрацию сведений об обмене данными с пользователем в журналах, монтирование каталогов и т.п.
  • password

Последний тип модуля служит для обновления ключа аутентификации (authentication token) пользователя. Обычно существует один такой модуль для каждого модуля типа auth, осуществляющего аутентификацию по схеме «вызов/отклик». Модули данного типа управляют паролями.

Управляющий флаг


Управляющий флаг служит для индикации того, как библиотека PAM будет реагировать на успешный или неуспешный результат работы модуля, с которым этот флаг ассоциирован. Приложение получает сводный отчет от библиотеки PAM об успешном или неуспешном выполнении.

Порядок исполнения модулей совпадает с порядком их перечисления в конфигурационном файле сервиса PAM.

Существует четыре управляющих флага:
  • required

Флаг означает, что для успешного завершения работы требуется успешное выполнение данного модуля.
  • requisite

Поведение похоже на флаг required, однако в случае неуспешного выполнения модуля управление возвращается приложению. Возвращаемое значение – это значение, ассоциированное с первым неудачно завершившимся модулем, имеющим флаг required или requisite.
  • sufficient

Успешное выполнение модуля достаточно для того, чтобы библиотека PAM считала, что тип модуля успешно выполнил свое предназначение. Неуспешное же выполнение не будет считаться фатальным для принятия решения об успешности выполнения типа модуля.
  • optional

Как и предполагает имя этого флага, успешное или неуспешное исполнение модуля не является критичным для пользовательского приложения. Как правило, PAM игнорирует такой модуль, когда определяет успешность выполнения всего стека модулей. Однако, в отсутствии какого-либо определенного успешного или неуспешного статуса выполнения предыдущего или последующего модуля, этот модуль будет определять статус значения, возвращаемого приложению.




Модули библиотеки PAM


Существует множество модулей PAM, среди них:
  • pam_pwdb.so : традиционная аутентификация при помощи файла passwd
  • pam_security.so : добавляет дополнительные ограничения (/etc/securetty)
  • pam_mount.so : монтирует домашние каталоги во время входа в систему
  • pam_usb.so : аутентификация с помощью USB-ключа
  • pam_ldap.so : использует каталог LDAP для аутентификации в системе
  • pam_smb.so : использует Samba для аутентификации в системе
  • pam_mysql.so : аутентификация с помощью базы данных MYSQL
  • pam_krb5.so : аутентификация с помощью протокола MIT Kerberos 5
  • pam_opensc.so : аутентификация с помощью смарт-карты
  • ...

Наиболее часто используемые опции модулей:


Основные опции модулей:


  • no_warn

Запрещает модулю выдавать предупреждающие сообщения приложению.
  • use_first_pass

Модуль не должен запрашивать пароль у пользователя, вместо этого модуль должен использовать ранее набранный пароль (от предыдущего модуля auth). Если это не сработает, пользователь не пройдет аутентификацию (данная опция применима к модулям auth и password).
  • try_first_pass

Модуль должен попробовать аутентифицировать пользователя по ранее набранному паролю (от предыдущего модуля auth). Если аутентификация не удалась, пароль будет запрошен у пользователя. (Эта опция применима только к модулям auth).