3.3.3. Модули аутентификации
3.3.3. Модули аутентификации
Аутентификация на основе двух файлов /etc/passwd и /etc/shadow немного устарела и предоставляет нам слишком скудные возможности. Разработчики ядра ОС Linux стараются исправить ситуацию с помощью добавления новых алгоритмов шифрования, но все эти попытки чисто косметические, а нам необходимо кардинальное изменение.
Абсолютно новое решение для реализации аутентификации предложила компания Sun — Pluggable Authentication Modules (РАМ, подключаемые модули аутентификации).
Преимущество модульной аутентификации заключается в том, что не требуется перекомпиляция программы для их использования. Существуют модули для основных методов аутентификации, таких как Kerberos, SecureID, LDAP и др.
Конфигурационные файлы для каждого сервиса, который может использовать РАМ, находятся в директории /etc/pam.d. В большинстве случаев вам не придется создавать эти файлы вручную, потому что они устанавливаются во время инсталляции программы из RPM-пакета. Но вы должны знать их структуру, чтобы можно было изменить какие-то параметры в случае необходимости.
Каждая строка в конфигурационном файле состоит из четырех полей, разделенных пробелами:
? тип модуля — может принимать одно из следующих значений:
• auth — аутентификация и проверка привилегий пользователей;
• account — распределение ресурсов системы между пользователями;
• session — поддержка сессии и регистрации действий пользователей;
• password — проверка пароля;
? флаг — определяет параметры модуля. Здесь можно использовать три значения:
• required — обязательный;
• optional — необязательный;
• sufficient — достаточный;
? полный путь к файлу модуля;
? аргументы модуля.
Рассмотрим пример конфигурационного файла для FTP-сервиса, который находится в файле /etc/pam.d/ftp.
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user sense=deny
file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_shells.so
account required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
Это и все, что вам необходимо знать. Остальное берет на себя программа сервиса без нашего вмешательства.
Данный текст является ознакомительным фрагментом.