Ноя 12 2008

Настройка 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)

Настройка завершена.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • 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

Other Links to this Post


Украинская Баннерная Сеть