В последние годы PAM фактически стал стандартным способом предоставления услуг безопасной аутентификации в системах UNIX. PAM работает как интерфейс между демоном программы или системой и основными методами аутентификации. Это значительно повышает уровень безопасности и гибкость. Как следует из названия, интерфейс является общим для всех методов аутентификации, поддерживаемых PAM, однако за этим единообразием лежит возможность поддержки самых различных методов аутентификации. Вплоть до расширенной поддержки RADIUS для ftp-доступа и /etc/shadow для telnet.
Для ProFTPD требуется PAM версии не ниже 0.59. Системный вызов pam_sm_open_session не предоставляется в более ранних версиях.
Безопасность, прозрачность и простота. PAM - наиболее безопасный из имеющихся систем аутентификации. Многие вопросы использования и подсказки по настройке содержатся в файле README.PAM, который можно найти в исходных кодах сервера и различных пакетах. Чтобы использовать /etc/passwd непосредственно, вам потребуется перекомпилировать сервер, включив флаг конфигурации --without-pam. Пока подсистема PAM не будет настроена должным образом, подключение к серверу будет срываться.
Директива AuthPAMAuthorative по умолчанию выставлена в "off", позволяя тем самым использовать другие методы аутентификации. Установка этой директивы в "on" сделает невозможным использование внешних файлов, например, определённых в AuthUserFile.
Если это не подходит для вашей системы, можно написать собственный модуль или использовать такой подход как 'ld.so.preload', перехватывающий системные вызовы getpwbynam().
Proftpd практически не требует настроек для поддержки PAM, однако необходимо выполнить некоторую настройку самой подсистемы PAM. Одна из наиболее часто допускаемых ошибок - отсутствие файла /etc/pam.d/ftp, если он не установлен, то запросы аутентификации будут завершаться ошибкой.
В корневом каталоге исходных кодов ProFTPD есть файл README.PAM, где можно почерпнуть более подробные сведения.
Многие разработчики ProFTPD используют системы RedHat, однако это не должно создать проблем пользователям других дистрибутивов.
Пример 8-1. Стандартная конфигурация PAM для Linux
#%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so session required /lib/security/pam_pwdb.so
SuSE предпочитает использовать pam_unix вместо pam_pwdb, который используется в Redhat. Все упоминания pam_pwdb следует заменить на "pam_unix".
Пример 8-3. Конфигурация для SuSe
/etc/pam.d/ftpd #%PAM-1.0 # Uncomment this to achieve what used to be ftpd -A. # auth required /lib/security/pam_listfile.so item=user sense=allow file=/etc/ftpchroot onerr=fail auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth sufficient /lib/security/pam_ftp.so auth required /lib/security/pam_unix.so auth required /lib/security/pam_shells.so account required /lib/security/pam_unix.so password required /lib/security/pam_unix.so session required /lib/security/pam_unix.so
Назад | Содержание | Вперёд |
Аутентификация | Наверх | SQL |