Port 0 Bind 159.93.17.121 SocketBindTight on Port 8041
Модуль PAM подключается в том случае, если система имеет поддержку pam:
Модуль для отображение фалов readme - директива "DisplayReadme"
Дополнительные модули авторизации, интерфейс на основе DB:
DefaultRoot ~
AuthPAM off AuthPAMAuthoritative off
Примечание: Читайте внимательно документацию, или посмотрите чем инициализируется pamconfig в proftpd-sources/modules/mod_pam.c:
static char * pamconfig = "ftp";
Проверку ftpusers можно отключить директивой UseFtpUsers off. Дополнительно для безпарольного входа под anonymous или ftp, воспользуйтесь директивами:
AnonRequirePassword off (значение по-умолчанию) RequireValidShell off UserAlias anonymous ftp
DenyAll
Order Allow,Deny Allow from ip-address1,... Deny from all
AllowAll
DenyFilter \*.*/
UseReverseDNS off
UseReverseDNS off IdentLookups off
Лучший вариант, собрать proftpd из портов системы:
cd /usr/ports/ftp/proftpd make make install rm -rf work
cd /usr/ports/ftp/proftpd make WITHOUT_PAM=yes make install rm -rf work
/usr/local/etc/proftpd.conf под свои нужды.
Допустим у нас имеется пользователь ftp с uid=ftp и gid=operator, а запустить демон proftpd мы хотим с USER nobody и Group nogroup, тогда, возможно придется сделать в секции Anonymous USER ftp и Group operator (по-умолчанию во FreeBSD пользователь ftp имеет uid=ftp, gid=operator).
Соответственно удалить из файла /etc/ftpusers пользователей с именами nobody, ftp. Или, как вариант изменить uid/gid пользователя ftp на uid=ftp и gid=ftp, не забыв создать группу ftp и поменять владельца группы в директории ~ftp.
./proftpd -t
./proftpd -l
./proftpd -n -d 9 -c /path/proftpd.conf
Примечание: Не наступите на те же грабли что и я, проверка MaxClients, MaxClientsPerHost невозможна при запуске в отладочном режиме.
У меня старый-боевой Solaris 2.5.1 без PAM, в настройках общей части сервера он выполнял chroot: