Настройка Pure-FTPd
Замена обработчика конфигурации
Удаляем ставшие не нужными каталоги настроек FTP-сервера:
# rm -R /etc/pure-ftpd/auth
# rm -R /etc/pure-ftpd/conf
# rm -R /etc/pure-ftpd/db
В файле /etc/init.d/pure-ftpd после строчки WRAPPER добавляем определение пустой переменной CONFIG:
CONFIG=
В том же файле строки --exec $WRAPPER
заменяем на строки --exec $WRAPPER $CONFIG
.
В файл /etc/defaults/pure-ftpd прописываем две переменные:
WRAPPER=/etc/pure-ftpd/pure-config.py
CONFIG=/etc/pure-ftpd/pure-ftpd.conf
Нужно проверить работу Upload-скрипта с новой обёрткой.
Конфигурация
Булево значение
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
AllowAnonymousFXP | -W | --allowanonymousfxp |
Разрешить протокол FXP для всех пользователей. Небезопасно! |
AllowDotFiles | -z | --allowdotfiles |
Разрешить анонимным пользователям читать файлы и каталоги, имя которых начинается с точки. |
AllowUserFXP | -w | --allowuserfxp |
Разрешить протокол FXP для неанонимных пользователей. |
AnonymousCanCreateDirs | -M | --anonymouscancreatedirs |
Разрешить анонимным пользователям создавать каталоги. |
AnonymousCantUpload | -i | --anonymouscantupload |
Запретить анонимным пользователям загружать файлы в каталоги, вне зависимости от разрешений каталога. |
AnonymousOnly | -e | --anonymousonly |
Разрешить вход только анонимным пользователям. |
AntiWarez | -s | --antiwarez |
Запретить анонимным пользователям читать файлы, принадлежащие пользователю ftp. Обычно это файлы, загруженные другими анонимными пользователями. |
AutoRename | -r | --autorename |
Не заменять существующие файлы. Новые файлы будут загружаться под именем xyz.1, xyz.2 и т.д. |
BrokenClientsCompatibility | -b | --brokenclientscompatibility |
Включить поддержку клиентов с неполадками в реализации. |
CallUploadScript | -o | --uploadscript |
Включить обработку загружаемых файлов скриптом pure-uploadscript. |
ChrootEveryone | -A | --chrooteveryone |
Выполнять системный вызов chroot() для любого пользователя, кроме пользователя root. |
CreateHomeDir | -j | --createhomedir |
Автоматически создать домашний каталог пользователя, если он не существует. Владельцем каталога назначается пользователь, а для прав доступа используется текущая маска каталогов. Для безопасности вышестоящий каталог не должен принадлежать не доверенному пользователю. |
CustomerProof | -Z | --cutomerproof |
Защита от неразумных действий пользователя, например от применения chmod 0 к собственным файлам. |
Daemonize | -B | --daemonize |
Запустить программу как сервер, в фоновом режиме. |
DisplayDotFiles | -D | --displaydotfiles |
Показывать файлы с именами, начинающимися с точки, даже если пользователь не указал опцию -a при запросе списка файлов. |
DontResolve | -H | --dontresolve |
Не выполнять обратный DNS-просмотр для IP-адресов клиентов. Может существенно увеличить скорость работы сервера, особенно для публичных FTP-серверов. |
IPV4Only | -4 | --ipv4only |
Ожидать подключений только по адресам IPv4. |
IPV6Only | -6 | --ipv6only |
Ожидать подключений только по адресам IPv6. |
KeepAllFiles | -K | --keepallfiles |
Разрешить пользователям продолжать скачивание файлов и закачку файлов, но не их удаление. Удалять можно только пустые каталоги. |
LogPID | -1 | --logpid |
Добавлять в журнал syslog идентификатор процесса PID. Не учитывается, если указана опция -f none. |
NATmode | -N | --natmode |
Режим NAT - стараться использовать активный режим. Полезно если FTP-сервер находится за NAT-сервером внутри локальной сети. |
NoAnonymous | -E | --noanonymous |
Разрешить только аутентифицированных пользователей. Анонимные пользователи запрещены. |
NoChmod | -R | --nochmod |
Запретить пользователям (даже не анонимным) использовать команду CHMOD. Помогает защитить новичков хостинг-сервисов от ошибок. |
NoRename | -G | --norename |
Опция запрещает переименовывать уже загруженные файлы, даже если пользователь владеет файлом или каталогом. |
ProhibitDotFilesRead | -X | --prohibitdotfilesread |
Обычно пользователи могут и читать и писать файлы, имена которых начинаются с точки. Эта опция запрещает и читать и изменять содержимое таких файлов и каталогов. |
ProhibitDotFilesWrite | -x | --prohibitdotfileswrite |
Обычно пользователи могут и читать и писать файлы, имена которых начинаются с точки. Эта опция запрещает изменять содержимое таких файлов. |
VerboseLog | -d | --verboselog |
Заставляет сервер помещать в файл журнала все команды, отправляемые клиентами, за исключением команды PASS, пароль в которой заменяется на текст "". Если указать эту опцию дважды, в журнал будут записываться и ответы сервера. |
NoTruncate | -0 | --notruncate |
Если уже существует файл, имя которого совпадает с именем закачиваемого, то новый файл будет сначала закачан во временный файл, а затем временный файл заменит старый файл. Эту опцию нельзя использовать совместно с виртуальными квотами. |
Число
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
MaxClientsNumber | -c | --maxclientsnumber |
Разрешить указанное максимальное количество подключенных клиентов. Учитывается значение опции -p - выбирается меньшее значение из двух: указанное в опции -c и половина указанного в опции -p. При превышении указанного количества подключений, новые подключения будут отклоняться. Значение по умолчанию - 50. В целях ограничения предпочтительнее пользоваться опцией -m. |
MaxClientsPerIP | -C | --maxclientsperip |
Ограничивает максимальное количество одновременных подключений от одного IP-адреса. Это второй способ защититься от атак на отказ в обслуживании. Опция работает только в том случае, если сервер работает в самостоятельном режиме. Опция требует немного дополнительной памяти для учёта IP-адресов, но рекомендуется её использовать. |
MaxDiskUsage | -k | --maxdiskusagepct |
Запретить заполнять раздел с файлами FTP более чем на указанный процент. |
MaxIdleTime | -I | --maxidletime |
Задаёт максимальное время простоя в минутах. По умолчанию - 15. |
MaxLoad | -m | --maxload |
Запретить анонимным пользователям скачивать файлы, если загрузка системы превысила указанное значение. Закачка файлов и получение списка файлов при этом разрешаются, как и загрузка для аутентифицированных пользователей. Пользователь не узнает об ограничении, пока не попробует скачать файл. |
MinUID | -u | --minuid |
Запретить пользователей с идентификаторами ниже указанного. Ограничение не действует на пользователя, от имени которого работают анонимные пользователи. |
TLS | -Y | --tls |
0 - отключить SSL/TLS, 1 - разрешить и обычные подключения и SSL/TLS, 2 - запретить подключения, не использующие SSL/TLS, включая анонимные, 3 - запретить подключения, не использующие SSL/TLS, включая подключения для данных. Для использования SSL/TLS должен быть указан сертификат. |
TrustedGID | -a | --trustedgid |
Обычные пользователи помещаются в chroot, за исключением пользователей, домашние каталоги которых принадлежат группе с указанным идентификатором. root в chroot не попадает никогда. |
Два числа
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
AnonymousRatio | -q | --anonymousratio |
Задаёт анонимным пользователям ограничение для отношения входящего на сервер трафика к исходящему от сервера. Например, значение 1:5 заставит пользователя закачать 1 мегабайт, прежде чем он сможет скачать 5 мегабайт. |
LimitRecursion | -L | --limitrecursion |
Защита от DoS-атак, ограничивающая максимальное количество файлов и максимальную глубину рекурсии для команды ls. По умолчанию - 2000:5. Для снятия ограничения используется значение -1. |
PassivePortRange | -p | --passiveportrange |
Задаёт диапазон TCP-портов, который будет использоваться сервером в пассивном режиме. Отметим, что эта настройка ограничивает максимальное количество клиентов половиной от количества портов. |
PerUserLimits | -y | --peruserlimits |
Задаёт максимальное количество одновременных подключений от одного IP-адреса для аутентифицированных пользователей и анонимных пользователей. Например, 3:2 - разрешено устанавливать три аутентифицированных подключения или два - анонимных. |
Quota | -n | --quota |
Задаёт виртуальные квоты - ограничение на максимальное количество и объём файлов. В домашнем каталоге пользователей создаётся файл .ftpquota, в котором будет отслеживаться текущее количество и объём файлов. |
UserRatio | -Q | --userratio |
Задаёт отношение входящего на сервер и исходящего с сервера трафика для анонимных и не анонимных пользователей. Если указана также опция -a, то ограничение не будет распространяться на пользователей из доверенной группы. |
Одно или два числа
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
AnonymousBandwidth | -t | --anonymousbandwidth |
Задаёт ограничение для входящего на сервер и исходящего на сервер трафика для анонимных пользователей. Значения задаются в килобайтах в секунду. Чтобы задавать одно из ограничений, нужно оставить это поле пустым. Если задано ограничение, но ни справа ни слева нет двоеточия, то ограничение будет одинаково и для входящего и для исходящего трафика. |
UserBandwidth | -T | --userbandwidth |
Задаёт ограничение для входящего на сервер и исходящего с сервера трафика для аутентифицированных пользователей. Значения задаются в килобайтах в секунду. Чтобы задавать одно из ограничений, нужно оставить это поле пустым. Если задано ограничение, но ни справа ни слева нет двоеточия, то ограничение будет одинаково и для входящего и для исходящего трафика. |
Два шестнадцатеричных числа
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
Umask | -U | --umask |
Задаёт маску прав доступа для новых файлов. По умолчанию для файлов - 133, для каталогов - 022. Если файлы не должны быть доступными на чтение другими пользователями, то можно задать настройку 177:077. Если файлы должны к тому же быть исполняемыми, то это будут значения 022:022 или 077:077 соответственно. |
Строка
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
AltLog | -O | --altlog |
Задаёт альтернативный формат файла журнала о загрузках и скачиваниях. Поддерживаются значения clf, stats и w3c. Например, -o clf:/var/log/pureftpd.log |
Bind | -S | --bind |
Указывает на каком адресе и порту слушать подключений. IP-адрес или имя узла и порт или название сервиса указываются через запятую, но любую из частей можно не указывать. |
ForcePassiveIP | -P | --forcepassiveip |
Задаёт IP-адрес, который сервер будет сообщать клиенту при работе в пассивном режиме. Полезно, например, если FTP-сервер находится за NAT-сервером - в этом случае в этой опции можно указать IP-адрес NAT-сервера. |
Слово
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
SyslogFacility | -f | --syslogfacility |
С помощью этой опции можно указать "средство" для отправки сообщений в syslog. Можно указать значение none, еслиотправлять сообщения в syslog не требуется. |
Название кодировки
Опция конфигурации | Опции командной строки |
---|---|
FSCharset | -8 |
ClientCharset | -9 |
IP-адрес
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
TrustedIP | -V | --trustedip |
С помощью этой опции можно указать доверенный IP-адрес. Только с этого IP-адреса можно будет подключаться аутентифицированным пользователям. Со всех остальных адресов можно будет подключаться только анонимно. |
Имя файла
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
FortunesFile | -F | --fortunesfile |
При входе пользователя будет показываться случайное сообщение из указанного файла. Если установлена программа fortune, то сообщения будут браться из каталога /usr/share/fortune - из двоичных файлов с расширением .dat или из текстовых файлов без расширения. |
Аутентификация
Все указанные методы аутентификации можно комбинировать. Порядок использования методов аутентификации определяется порядком следования опций, либо после алфавитной сортировки символических ссылок в каталоге /etc/pure-ftpd/auth/, каждая из которых указывает на соответствующий файл.
Булево значение
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
PAMAuthentication | -l pam | --login pam |
Включает аутентификацию пользователей при помощи подсистемы PAM. |
UnixAuthentication | -l unix | --login unix |
Включает аутентификацию пользователей по системному файлу паролей. |
Имя файла
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
LDAPConfigFile | -l ldap: | --login ldap: |
Включает аутентификацию по LDAP. Нужно указать файл конфигурации LDAP-клиента. |
MySQLConfigFile | -l mysql: | --login mysql: |
Включает аутентификацию по базе в MySQL. Нужно указать файл с настройками аутентификации по MySQL. |
PGSQLConfigFile | -l pgsql: | --login pgsql: |
Включает аутентификацию по базе в PostgreSQL. Нужно указать файл с настройками аутентификации по PostgreSQL. |
PureDB | -l puredb: | --login puredb: |
Включает аутентификацию по базе пользователей PureFTPd. Этот метод аутентификации позволяет задавать более разнообразные настройки пользователей. |
Сокет-файл
Опция конфигурации | Опции командной строки | Описание | |
---|---|---|---|
ExtAuth | -l extauth: | --login extauth: |
Включает аутентификацию при помощи указанной внешней программы. Подробнее - в файле README.Authentication-Modules. |