Этот раздел находится в процессе правки из-за глобальных структурных изменений в SQL модуле, предшествующем 1.2.0
Из элементарных соображений безопасности. PAM наиболее безопасный метод из возможных систем авторизации. Большинство описаний возможных вариантов и подсказок по настройкам конфигурации PAM содержится в файле README.PAM, которые (описания и посказки) зависят отисходного кода сервера и сборки его с поддержкой тех или иных программных пакетов. Для использования /etc/passwd будет необходима компилляция вручную с указанием в скрипте конфигурации --without-pam. До тех пор, пока PAM подсистема не будет тщательно сконфигурирована, аутентификация не удастся.
PAM
Стандартный /etc/passwd поиск
NIS
Скрытые (shadow) пароли
Личные passwd/group файлы для каждого виртуального пользователя
базы данных SQL
Если они не согласуются с вашей системой, тогда для работы с ProFTPD вам необходимо написать обычный модуль или использовать "ld.so.preload" подход для перехвата getpwbynam() системных звонков.
Обычно эти проблемы решаются либо путем полного отключения PAM, либо отключением директив
PersistentPasswd off AuthPAMAuthoritative off
Проверьте правильность написания - должно быть написано AuthPAMAuthoritative, а не AuthPAMAuthorative, и никакой другой вариант.
Вверху установочной директории ProFTPD есть файл README.Pam:
Redhat 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.soSuSE Linux
SuSE появляется при использовании pam_unix чаще, чем при использовании pam_pwdb, которая является методом Redhat. Все ссылки на pam_pwdb долны быть заменены на "pam_unix" для SuSE систем.
Следующий фрагмент программы прекрасно работает на SuSE 6.2
/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.soFreeBSD
FreeBSD не поддерживает директивы PAM сессии. Если вы удалите следующую строчку из раздела FreeBSD README.PAM, PAM должен прекрасно работать с новыми версиями FreeBSD.
ftp session required pam_unix.so try_first_pass
Для работы ProFTPD необходима версия PAM 0.59 или более поздние. pam_sm_open_session не является частью предыдущих версий.
Убедитесь, что файл /etc/pam.d/ftp существует в системе и сконфигурирован, как указано в README.PAM
В настоящее время AuthPAMAuthoritative установлена по умолчанию на "ON", что приводит к сбою логинов, если PAM не может аутентифицировать пользователя. Это нарушает директиву AuthUserFile, поскольку она не может аутентифицировать пользователя, пока AuthPAMAuthoritative директива настроена на "OFF"
Такая настройка по умолчанию необходима для того, чтобы убедиться в том, что система безопасна, учитывая то, что системный администратор может отключить данную опцию. Сейчас данный вопрос вызывает много споров, что может привести к тому, что настройка директивы вернется к установленному "Off" в AuthUserFile.
Внимание: также, как и в текущем CVS, в будущем pre9 релизе установки по умолчанию изменены на "Off"
mod_ldap в настоящее время стабилен; были обнаружены пара ошибок, которые были устранены после релиза модуля 1.0. Сейчас все еще идет доработка, загляните на http://horde.net/~jwm/software/proftpd-ldap/ для более подробной информации. На сайте автора приведен в качестве примера фрагмент, который дает представление о том, как использовать данный модуль.
Существуют патчи, которые в настоящее время соединяются для того, чтобы обеспечить SHA шифрование. Идея состоит в том, чтобы сервер получал всю информацию о пользователе, кроме паролей, анонимно. Затем сервер возобновляет соединение, когда пользователь логинится, и пытается получить пароль через шифрованное соединение. Об этом подробнее вы сможете прочитать в следующем релизе (2.5)
Использование одноразовых паролей возможно при использовании PAM или Opie модулей. Модуль возвращает вызов, который пользователь посылает клавишному генератору вместе с "pass phrase", что дает 5 слов, которые посылаются в качестве пароля. Если вы сделаете все правильно, пароль никогда не будет повторен.
Здесь требуется установленный на сервере http://inner.net/opie/. Существуют key gen клиенты для win95/98, *nix, mac.
Новый mod_radius модуль предусматривает RADIUS аутентификацию и поддержку аккаунта для ProFTPD.
Возможно ли проверить предложенный email адрес с анонимным логином перед разрешением доступа? Ответ прост, анонимный доступ сделан для того, чтобы можно было попасть на сайт без каких-либо ограничений и проверок, кроме тех, что установлены при скачиваниях/зачачиваниях на сайт. Самое лучшее, что здесь может быть, это умеренная регистрация и трэкинг доступа, а также запрашиваемые IP.
Если операционная система поддерживает PAM (Сменные Аутентификационные Модули - Pluggable Authentication Modules), proftpd будет выполнять аутентификацию PAM по умолчанию. Однако, эта аутентификация не является "полномочной" ("authoritative") по умолчанию, что значит проблемы при PAM аутентификации необязательно приведут к проблемам с логином. Использование PAM может быть сконфигурировано при помощи конфигурационной директивы AuthPAM; "полномочность" любых проверок PAM контролируется через конфигурационную директиву AuthPAMAuthoritative.