|
|||||||
Pure-ftpd - установка, первичная настройка
Время создания: 23.06.2009 13:33
Раздел: Компьютер - Linux - Сеть в Linux - FTP
Запись: xintrea/mytetra_syncro/master/base/0000001049/text.html на raw.github.com
|
|||||||
|
|||||||
Установка рассматривается для Ubuntu. Настройка делается так, чтобы FTP-сервер имел своих FTP пользователей, и этих пользователей не приходилось создавать в системе. Для работы pure-ftpd нужно будет создать пользователя ftpusers и группу ftpusers. Больше системных пользователей создавать будет ненужно. Pure-ftpd позволяет хранить данные виртуальных аккаунтов в специальных файлах формата puredb, подобном '/etc/passwd'. Помимо списка самих аккаунтов, данных авторизации и директорий пользователей, файл puredb может содержать такие данные, как индивидуальные квоты, параметры скорости работы с сервером, соотношения download/upload и некоторые другие опции, которые будут рассмотрены далее. Установка Если программа ставится из исходников, для включения поддержки puredb в pure-ftpd вам необходимо сконфигурировать сервер следующим образом: ./configure --with-puredb --with-peruserlimits --with-throttling --with-ratios --with-quotas
Если программа устанавливается из репозитария, достаточно команды # apt-get install pure-ftpd В Ubuntu 7.04 сервер pure-ftpd собран с поддержкой puredb. Настройка Перед началом настройки сервера рекомендуется завести системный аккаунт, которому будут принадлежать все директории виртуальных пользователей, чтобы в дальнейшем избежать путаницы с правами. Создадим группу ftpusers и добавим пользователя ftpusers: для linux: groupadd ftpusers useradd -g ftpusers -d /home/ftpusers -s /sbin/nologin ftpusers для freebsd: pw groupadd ftpusers pw useradd ftpusers -g ftpusers -d /home/ftpusers -s /sbin/nologin Далее добавим директорию и назначим права на нее для пользователя ftpusers: mkdir /home/ftpusers chown ftpusers:ftpusers /home/ftpusers Сразу отмечу, что работа с виртуальными аккаунтами происходит в два этапа: 1. Создание файла со списком аккаунтов пользователей и их параметрами (по умолчанию '/etc/pure-ftpd/pureftpd.passwd'), на этом этапе вы также cможете вносить изменения в список аккаунтов; 2. Создание на основе файла списка бинарного файла, с которым в конечном итоге и будет работать сервер (по умолчанию '/etc/pure-ftpd/pureftpd.pdb'); Альтернативные значения для passwd-файла и pdb-файла могут быть заданы с помощью переменных окружения 'PURE_PASSWDFILE' и 'PURE_DBFILE' соответственно. Все операции над аккаунтами будут осуществляться с помощью утилиты 'pure-pw', входящей в пакет pure-ftpd. Создание файла аккаунтов Каждая запись файла виртуальных аккаунтов имеет следующий формат: account:pass:uid:gid:name:dir:ul bw: dl bw:ul ratio:dl ratio:max con: files quota:size quota:authorized local IPs:refused local IPs:authorized client IPs:refused client IPs:time Рассмотрим значения полей записи:
Допускается пустое значение всех полей кроме 'account', 'pass', 'uid', 'gid' и 'dir'. Добавление нового аккаунта Добавление аккаунта осуществляется с помощью утилиты 'pure-pw'. Синтаксис команды следующий: pure-pw useradd login [-f file] -u uid [-g gid] -D/-d dir [-c name] [-t num] [-T num] [-n num] [-N num] [-q num] [-Q num] [-r ip,..] [-R ip,..] [-i ip,..] [-I ip,..] [-y num] [-z hhmm-hhmm] [-m] Рассмотрим значения используемых опций:
Таким образом, в простейшем случае добавление аккаунта осуществляется следующим образом: # pure-pw useradd tester -u ftpusers -g ftpusers -d /home/ftpusers/tester После этой команды вы получите запрос на ввод пароля для tester. Изменение параметров аккаунта Изменение параметров аккаунта также осуществляется с помощью pure-pw: # pure-pw usermod login [-f passwd file] attr value [attr value ...] [-m] 'attr value' в данном случае -- это те же параметры, которые используются при добавлении нового аккаунта. Не забывайте использовать параметр '-f passwd file' в том случае, если список аккаунтов изначально создавался в файле, отличном от '/etc/pure-ftpd/pureftpd.passwd'. Сброс установленных значений Для сброса параметров конфигрурации pure-pw запускается со следующими опциями:
Удаление аккаунтов Удаление аккаунта осуществляется следующим образом: # pure-pw userdel login [-f passwd file] [-m] Изменение пароля Изменение пароля осуществляется следующим образом: # pure-pw passwd login [-f passwd file] [-m] Фиксирование изменений После добавления (удаления, модификации) данных аккаунта изменения не вступят в силу, пока не будет обновлен файл '/etc/pure-ftpd/pureftpd.pdb'. Для создание нового файла 'pureftpd.pdb', используйте следующую команду: # pure-pw mkdb В том случае, если вы используете имена файлов, отличныные от '/etc/pure-ftpd/pureftpd.passwd' и '/etc/pure-ftpd/pureftpd.pdb', файлы необходимо указать явно: 'pure-pw mkdb /path/to/file.pdb -f /path/to/files.passwd'. Чтобы избежать использования 'pure-pw mkdb' после каждого изменения данных, используйте опцию '-m' в командах модификации, например: # pure-pw useradd andrew -u ftpusers -g ftpusers -d /home/ftpusers/andrew -m Таким образом изменения сразу же будут внесены в файл 'pureftpd.pdb'. Получение информации об аккаунтах Для просмотра данных аккаунта используется следующий синтаксис 'pure-pw': # pure-pw show login [-f passwd file] Запуск сервера Сервер можно просто запустить как демон. Чтобы работали настроенные через pure-pw аккаунты, сервер должен запускаться со стандартными опциями, и с указанием файла с данными авторизации пользователей с помощью опции '-l': # pure-ftpd -14ABEH -p 33000:35000 -l puredb:/etc/pure-ftpd/pureftpd.pdb После запуска нужно проверить, запустился ли сервер. Для этого можно дать команды # ps aux | grep pure - покажет, появился ли процесс # netstat -lnp | grep 21 - покажет, какая программа (демон) слушает 21-й порт если процесса не появилось, или видно, что 21-й порт слушает другая программа, или если при старте pure-ftpd была написана ошибка, или если pure-ftpd молча запустился, но не работает, и в довершение ко всему, в файле /var/log/syslog есть ошибки вида pure-ftpd[14069]: (?@?) [ERROR] Unable to start a standalone server: [Invalid argument] ... pure-ftpd[14067]: (?@?) [ERROR] Unable to start a standalone server: [Illegal seek] то это скорее всего значит, что 21-й порт занят inetd-демоном. В Ubuntu 7.04 этот демон называется /usr/sbin/inetutils-inetd и его работа управляется через файл /etc/inetd.conf. Если в системе есть демон inetutils-inetd, то можно поступить двумя способами. 1. Неправильный, но для проверки работоспособности pure-ftpd сгодится. Можно закомментировать в файле /etc/inetd.conf строку, отвечающую за ftp-протокол. Затем уничтожить процесс inetutils-inetd, и снова его запустить командой # /usr/sbin/inetutils-inetd После этого командой netstat -lnp | grep 21 удостоверится, что порт 21 не занят, и запустить pure-ftpd как демона (должна присутсвовать опция B). 2. Правильный. Если в системе уже есть inetutils-inetd, то его надо настроить так, чтобы при входящем соединении на порт 21, он вызывал запуск pure-ftpd. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|