Настройка PureFTP
Приступаем к установке из портов, с поддержкой русского языка:
cd /usr/ports/ftp/pure-ftpd/ make WITH_LANG=russian install clean
При этом появится конфигурационное меню в котором мы выбираем:
1. Support for PAM authentication – авторизация через pam – нужно для авторизации
2. Enable privilege separation – разделение привелегий
3. Per-user concurrency limits – возможность указывать количество соединений для пользователя
4. Bandwidth throttling – ограничение на отдачу/прием трафика
5. Show pure-ftpd welcome upon session start – показывать приглашение сервера (мы установили поддержку русского – баннер тоже будет на русском)
6. Support for the sendfile syscall – использовать sendfail для передачи файлов.
После того как установка завершена, приступаем к настройке.
Пример конфигурационного файла /usr/local/etc/pure-ftpd.conf:
#Делать chroot пользователю в его home #пользователь не сможет выйти из своего домашнего каталога ChrootEveryone yes BrokenClientsCompatibility no #максимальное число одновремменных подключений MaxClientsNumber 50 Daemonize yes #с одного адреса можно соединится не более 8 раз MaxClientsPerIP 8 VerboseLog yes #Показывать файлы начинающиеся на точку #в UNIX системах такие файлы считаются скрытыми DisplayDotFiles yes #Запретим анонимные подключения AnonymousOnly no NoAnonymous yes SyslogFacility ftp #Не делат обратное преобразование ip в имя в лог файлах DontResolve yes #Ограничим время простоя пользователя 15 минутами MaxIdleTime 15 PAMAuthentication yes #Ограничим число вложенных каталогов и файлов в #листинге - первая цифра - число файлов вторая #количество вложенных директорий LimitRecursion 2000 8 AnonymousCanCreateDirs no #При LA(загружености системы) 4 - запретим подключения MaxLoad 4 #Ограничение пропускной способности пользователям 8 килобайт в секунду UserBandwidth 8 #первая цифра маска создания директории, #вторая цифра маска создания файлов Umask 133:022 #Подключатся разрешается пользователям с UID больше 100 MinUID 100 #Запрет команды FXP, эта команда позволяет #одному FTP серверу скачивать со второго #сервера AllowUserFXP no AllowAnonymousFXP no #Запрет на запись файлов начинающихся с точки ProhibitDotFilesWrite no #Запрет на чтение файлов начинающихся с точки ProhibitDotFilesRead no #запрет на перезапись файлов, #файлы будут автоматически переименовываться #с добавлением цифры - версии файла AutoRename no #Запрет на закачку(заливку) файлов на сервер анонимным #gjkmpjdfntkzv AnonymousCantUpload yes LogPID yes #Запрет выполнения команды chmod NoChmod yes #Запрет на удаление файлов KeepAllFiles yes #Сервер будет создавать домашние папки, #если они отсутствуют CreateHomeDir yes PIDFile /var/run/pure-ftpd.pid #запрет на закачку файлов на сервер, #если занято 99 и более процентов диска MaxDiskUsage 99
На этом настройка завершена.
Теперь сделаем так, что бы pure-ftpd автоматически стартовал.
Добавим в /etc/rc.conf:
pureftpd_enable="YES"
Для того, что бы работала авторизация через PAM, необходимо разместить создать файл /etc/pam.d/pure-ftpd, такого содержания:
pure-ftpd auth required pam_nologin.so #pure-ftpd auth sufficient pam_kerberosIV.so #pure-ftpd auth sufficient pam_krb5.so #pure-ftpd auth required pam_opie.so pure-ftpd auth required pam_unix.so try_first_pass #pure-ftpd account required pam_kerberosIV.so #pure-ftpd account required pam_krb5.so pure-ftpd account required pam_permit.so pure-ftpd session required pam_permit.so #pure-ftpd session required pam_kerberosIV.so #pure-ftpd session required pam_krb5.so
PAM авторизация хороша тем, что вы можете использовать разные модули от разных производителей, использующие разные источники авторизации, внося их в этот файл. В нашем файле первой строкой стоит проверка на наличие у пользователя «правильного» shellа (командной оболочки типа bash или tcsh). По условиям задачи стоящей у меня, нельзя было допускать ssh соединение пользователей, которые должны были иметь возможность размещать свои файлы по ftp, поэтому эту строку я закомментировал. А в дальнейшем вообще перевел на авторизацию MySQL. О чем обязательно напишу статью в ближайшее время.
Можно запускать:
/usr/local/etc/rc.d/pure-ftpd start
Проверяем:
ps afx|grep pure-ftpd 54371 ?? Is 0:00,02 pure-ftpd (SERVER) (pure-ftpd)
Настройка завершена.




By kot, 17.03.2009 @ 13:03
А где можно указать директорию ftp (по умолчанию она в /var/ftp)? И после настроек я не могу зайти на сервер с виндовой машины… не пускает по рутом :(
By hilik, 17.03.2009 @ 15:27
Папка в которую попадает пользователь по умолчанию – его домашний каталог. Для того что бы работать под рутом, его надо удалить из /etc/ftpusers. Но работать под рутом я б вам крайне не рекомендовал.
By kot, 17.03.2009 @ 15:30
Спасибо. просто я сделал анонимное подключение к серверу. А как тогда заливать и удалять файлы с сервера, если не под рутом?
By kot, 17.03.2009 @ 15:32
заранее прошу извенить за мою некомпетентность :) freebsd установил только неделю дня назад :)
By kot, 17.03.2009 @ 18:51
А если заходит анонимус то попадает в /var/ftp… Так вот вопрос, в каком файле указывается папка по умолчанию для анонимуса и можно ли поменять путь (т.е. создать другую папку для анонимуса)
By hilik, 18.03.2009 @ 00:05
Что бы удалять файлы созданные анонимусом – можно добавить свой аккаунт в ту же группу, которой принадлежит пользователь ftр. Не рекомендую разрешать заливать файлы анонимусам, потому что через время ваш фтп сервер, могут налить много неприятных вещей.
Каталог для анонимуса определяется исходя из домашнего каталога для системного пользователя ftр.
By kot, 25.03.2009 @ 20:48
а как создать юзера ftp?
By hilik, 25.03.2009 @ 21:48
Воспользоваться командой adduser