Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
system:pureftpd [2016/03/31 00:49] – [Настройка] mirocow | system:pureftpd [2016/10/02 21:53] (текущий) – [Подключение MySQL] mirocow | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{tag> | + | {{tag>networks networking |
====== Pure-FTPd ====== | ====== Pure-FTPd ====== | ||
Строка 6: | Строка 6: | ||
**Функциональные возможности: | **Функциональные возможности: | ||
- | | + | |
+ | | ||
* Возможна работа по FXP протоколу | * Возможна работа по FXP протоколу | ||
* Поставляется с программой мониторинга **pure-ftpwho**, | * Поставляется с программой мониторинга **pure-ftpwho**, | ||
- | * Возможен запуск pure-ftpwho как CGI приложения с возможностью генерации выходных данных в виде HTML или | + | * Возможен запуск pure-ftpwho как CGI приложения с возможностью генерации выходных данных в виде HTML или XML. |
* Сообщения сервера на данный момент переведены на 21 язык (в том числе и на русский). | * Сообщения сервера на данный момент переведены на 21 язык (в том числе и на русский). | ||
* Создание виртуальных пользователей. | * Создание виртуальных пользователей. | ||
Строка 15: | Строка 16: | ||
* После загрузки файла на сервер возможен автоматический запуск внешних скриптов или программ (например, | * После загрузки файла на сервер возможен автоматический запуск внешних скриптов или программ (например, | ||
* Запрет доступа к dot-файлам (имя которых начинается с точки, например, | * Запрет доступа к dot-файлам (имя которых начинается с точки, например, | ||
- | <note tip> | ||
- | ===== Примеры ===== | ||
- | * Добавить пользователя и установить для него пароль: | ||
- | # pure-pw useradd YourUser -u ftpusers -g ftpusers -d / | ||
- | </ | ||
- | * Доступ к хостингу с полным доступом< | ||
- | # pure-pw useradd YourUser -u ftpusers -g www-data -d / | ||
- | # chown -R ftpusers: | ||
- | или | ||
- | # pure-pw useradd YourUser -u www-data -g www-data -d / | ||
- | </ | ||
- | * Для применения изменений нужно обновить файл pureftpd.pdb командой. Чтобы избежать использования ' | ||
- | # pure-pw mkdb | ||
- | </ | ||
- | * Просмотр данных пользователя< | ||
- | pure-pw show YourLogin | ||
- | </ | ||
- | * Изменить пароль< | ||
- | pure-pw passwd YourLogin | ||
- | </ | ||
- | ====== Использование Pure-FTPd ====== | + | <note tip>Для |
- | * **Установка** | + | |
- | < | + | |
- | # aptitude install pure-ftpd | + | |
- | </ | + | |
- | Конфигурационные файлы: | + | |
- | < | + | |
- | / | + | |
- | / | + | |
- | </ | + | |
- | <note tip>У PureFTPd в Ubuntu не используется файл конфигурации pure-ftpd.conf - все | + | |
- | Включим авторизацию PureDB (создадим символическую ссылку), | + | |
- | <file> | + | |
- | # ls -l auth/ | + | |
- | lrwxrwxrwx 1 root root 26 2011-03-23 12:54 65unix -> ../ | + | |
- | lrwxrwxrwx 1 root root 25 2011-03-23 12:54 70pam -> ../ | + | |
- | # ln -s / | + | ==== Создание пользователей |
- | </ | + | |
- | Механизм Virtual Users, который есть в Pure FTPD, представляет из себя следующее - в системе заводится системный пользователь, | + | |
- | У нас имеется системный пользователь portal , создадим для него одноименного виртуального пользователя. | + | |
- | < | + | |
- | # pure-pw useradd portal -u portal -g portal -d / | + | |
- | </ | + | |
- | * **Настройка**. Все операции над пользователями FTP сервера осуществляться с помощью утилиты pure-pw. Работа с виртуальными пользователями происходит в два этапа: | + | < |
- | - Создание файла со списком аккаунтов пользователей и их параметрами (по умолчанию '/etc/pureftpd.passwd' | + | $ groupadd ftp |
- | | + | $ useradd |
+ | </ | ||
- | * **Создание файла аккаунтов**. Каждая запись файла виртуальных аккаунтов имеет следующий формат: | + | ==== Установка |
- | < | + | |
- | account: | + | |
- | dl bw:ul ratio:dl ratio:max con: | + | |
- | files quota:size quota: | + | |
- | local IPs: | + | |
- | </ | + | |
- | Рассмотрим значения полей записи: | + | |
- | < | + | |
- | ' | + | |
- | ' | + | |
- | ' | + | |
- | ' | + | |
- | ' | + | |
- | ' | + | |
- | 'ul bw' | + | |
- | 'dl bw' | + | |
- | 'ul ratio' -- соотношение upload к download; | + | |
- | 'dl ratio' -- соотношение download к upload; | + | |
- | 'max con' | + | |
- | 'files quota' -- квота на количество | + | |
- | 'size quota' | + | |
- | 'auth local IPs' | + | |
- | (при наличии нескольких сетевых интерфейсов на сервере); | + | |
- | 'ref local IPs' | + | |
- | 'auth client IPs' -- ip адреса, | + | |
- | 'ref client IPs' | + | |
- | ' | + | |
- | </ | + | |
- | <note important> | + | |
- | * **Добавление нового пользователя** | + | |
- | Добавление аккаунта осуществляется с помощью утилиты ' | + | <code> |
- | Синтаксис команды следующий: | + | $ mkdir -p /etc/ssl/private/ |
- | + | $ openssl req -x509 -nodes -newkey rsa:1024 -keyout | |
- | <file> | + | $ chmod 600 /etc/ssl/private/*.pem |
- | pure-pw useradd login [-f file] | + | </code> |
- | -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] | + | |
- | </ | + | |
- | + | ||
- | Рассмотрим значения используемых опций: | + | |
- | + | ||
- | < | + | |
- | ' | + | |
- | '-f file' | + | |
- | по умолчанию, | + | |
- | '-u uid' | + | |
- | '-g gid' | + | |
- | '-D/-d dir' | + | |
- | при использовании ' | + | |
- | при использовании ' | + | |
- | При запуске сервера с опцией ' | + | |
- | автоматически при первом их подключении к системе, | + | |
- | в противном случае, | + | |
- | '-c name' | + | |
- | '-t num' | + | |
- | '-T num' -- задает скорость upload (в Kb/s); | + | |
- | '-n num' | + | |
- | '-N num' | + | |
- | '-q num' | + | |
- | '-Q num' | + | |
- | '-r ip' -- задает ip адреса, | + | |
- | | + | |
- | + | ||
- | '-R ip' -- задает ip адреса, | + | |
- | '-i ip' -- при нескольких интерфейсах на сервере позволяет указать ip адрес | + | |
- | того интерфейса, | + | |
- | '-I ip' -- при нескольких интерфейсах на сервере позволяет указать ip адрес | + | |
- | того интерфейса, | + | |
- | '-y num' | + | |
- | '-z hhmm-hhmm' | + | |
- | получать доступ к аккаунту, | + | |
- | промежуток для доступа к аккаунту с 18:30 до 22: | + | |
- | подключен к серверу во время истечения указанного значения, | + | |
- | прервано. | + | |
- | '-m' | + | |
- | запустить ' | + | |
- | '/etc/pureftpd.pdb' | + | |
- | </file> | + | |
- | * **Изменение параметров аккаунта пользователя**. | + | |
- | Изменение параметров аккаунта также осуществляется с помощью | + | |
- | < | + | |
- | ' | + | |
- | </ | + | |
- | 'attr value' в данном случае -- это те же параметры, | + | |
- | + | ||
- | Не забывайте использовать параметр '-f passwd file' в том случае, | + | |
- | + | ||
- | ====== 530 Sorry, but I can't trust you ====== | + | |
- | Для устранения этой ошибки нужно в /etc/pure-ftpd/ | + | |
- | ====== DontResolve ====== | + | |
- | Записывать в лог IP, а не имя клиента. Это приведет к ускорению работы Pure-FTPd так как не будет использоваться [[DNS]]. | + | |
- | <file bash> | + | |
- | echo ' | + | |
- | </ | + | |
- | <note important> | + | |
- | + | ||
- | ====== Bind изменить IP, | + | |
- | Для того чтобы задать определенный IP и/или порт нужно создать файл Bind, в котором через запятую указать IP и порт. Можно задать пустые значение, | + | |
- | echo ' | + | |
- | </file> | + | |
- | ====== Ссылки ====== | + | |
- | * [[wpru> | + | |
- | * [[Правила iptables для FTP]] | + | |
- | * [[http:// | + | |
- | * [[http:// | + | |
- | + | ||
- | ====== Настройка PureFtpd + MySql ====== | + | |
- | + | ||
- | + | ||
- | * apt-get install pure-ftpd-common pure-ftpd-mysql | + | |
- | * http:// | + | |
- | ===== Создание БД ===== | + | |
- | + | ||
- | * [[: | + | |
- | + | ||
- | ===== Добавление пользователя ===== | + | |
- | + | ||
- | * adduser site.ru | + | |
- | + | ||
- | * INSERT INTO users VALUES (' | + | |
- | + | ||
- | * mkdir / | + | |
- | * chown -R site.ru: | + | |
- | + | ||
- | * Где пользоватеь: | + | |
- | * site.ru - 1000 | + | |
- | * Где группа: | + | |
- | * site.ru - 1100 | + | |
- | ====== PureFTPd with MySQL ====== | + | |
- | + | ||
- | * [[:/ | + | |
- | ====== Настройка | + | ==== Настройка ==== |
Устанавливаем пакет «pure-ftpd-mysql». Настройка происходит с помощью индивидуальных файлов в / | Устанавливаем пакет «pure-ftpd-mysql». Настройка происходит с помощью индивидуальных файлов в / | ||
Строка 228: | Строка 53: | ||
echo yes > / | echo yes > / | ||
echo / | echo / | ||
+ | echo no > / | ||
</ | </ | ||
- | ====== Установка SSL сертификата для TLS ====== | + | === Включить логирование === |
< | < | ||
- | $ mkdir -p /etc/ssl/private/ | + | $ echo ' |
- | $ openssl req -x509 -nodes -newkey rsa:1024 -keyout \ | + | $ echo ' |
- | $ /etc/ | + | |
- | $ chmod 600 /etc/ssl/private/*.pem | + | |
</ | </ | ||
- | ===== Включить логирование ===== | ||
- | $ echo ' | + | ==== Подключение MySQL ==== |
- | $ echo ' | + | |
- | ====== PureFTP Complete Upload Script | + | Самым удобным способом хранения и конфигурирования FTP является БД MySql. Для подключения хранилища достаточно настроить MySQLConfigFile. |
+ | |||
+ | * echo / | ||
+ | * [[pureftpd: | ||
+ | * [[:/ | ||
+ | |||
+ | |||
+ | ==== PureFTP Complete Upload Script ==== | ||
После получения полностью залитого файла, скрипт переименует его в ended.< | После получения полностью залитого файла, скрипт переименует его в ended.< | ||
+ | |||
+ | === Конфигурция === | ||
+ | |||
+ | Конфигурация осуществляется через базовый конфигурационный файл / | ||
+ | |||
+ | Включает испльзование скрипта | ||
+ | < | ||
+ | $ sudo echo " | ||
+ | </ | ||
+ | |||
+ | === Файл скрипта === | ||
< | < | ||
Строка 260: | Строка 100: | ||
dirname=${fullpath%/ | dirname=${fullpath%/ | ||
mv " | mv " | ||
+ | chmod 664 " | ||
+ | chown :www-data " | ||
</ | </ | ||
- | ===== Конфигурция ===== | + | === Настройка pure-ftpd-common === |
- | + | ||
- | Конфигурация осуществляется через базовый конфигурационный файл / | + | |
- | + | ||
- | Включает испльзование скрипта | + | |
- | < | + | |
- | $ sudo echo " | + | |
- | </ | + | |
- | + | ||
- | ===== Настройка pure-ftpd-common | + | |
+ | nano / | ||
< | < | ||
STANDALONE_OR_INETD=standalone | STANDALONE_OR_INETD=standalone | ||
Строка 280: | Строка 114: | ||
UPLOADSCRIPT=/ | UPLOADSCRIPT=/ | ||
</ | </ | ||
- | ===== Проверка | + | |
+ | <note important> | ||
+ | UPLOADUID | ||
+ | UPLOADGID = 1002\\ | ||
+ | Относятся только к UPLOADSCRIPT.\\ | ||
+ | Пример: | ||
+ | </ | ||
+ | |||
+ | ==== Проверка ==== | ||
< | < |