Установка FTP · 5 min read · Sep 24, 2025

Установка Pure-FTPd на Ubuntu 22.04

Pure-FTPd — это бесплатный (лицензия BSD), безопасный, качественный и соответствующий стандартам FTP-сервер. Он не предоставляет ненужных функций, а сосредоточен на эффективности и простоте использования. Этот гид предлагает пошаговый процесс установки и настройки Pure-FTPd на Ubuntu.

Предварительные требования для установки Pure-FTPd

Перед тем как продолжить установку, убедитесь, что у вас есть:

  • Настроенный сервер Ubuntu
  • Доступ к учетной записи пользователя с привилегиями sudo

Пошаговая установка Pure-FTPd

Обновление системных пакетов

Сначала обновите список пакетов вашей системы:

sudo apt update

Установка Pure-FTPd

Далее установите Pure-FTPd с помощью следующей команды:

sudo apt install pure-ftpd

Настройка Pure-FTPd для повышения безопасности

Настройка безопасной среды

Создайте выделенную группу для FTP-пользователей:

sudo groupadd ftpgroup

Создайте пользователя для Pure-FTPd:

sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Управление доступом пользователей

Чтобы добавить пользователя на FTP-сервер:

sudo pure-pw useradd [username] -u ftpuser -g ftpgroup -d /home/ftpusers/[username]  
sudo pure-pw mkdb

Замените [username] на желаемое имя пользователя.

Настройка TLS для безопасной передачи данных

Сгенерируйте самоподписанный сертификат:

sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Измените конфигурацию Pure-FTPd для активации TLS:

echo 1 | sudo tee /etc/pure-ftpd/conf/TLS  
sudo service pure-ftpd restart

Расширенные параметры конфигурации

Вот список общих настроек, которые можно настроить для Pure-FTPd в /etc/pure-ftpd/conf/ директории на Ubuntu. Имя конфигурационного файла выделено жирным шрифтом.

  • AltLog: Указывает альтернативные методы ведения журнала. Например, AltLog clf:/var/log/pureftpd.log будет записывать передачи в формате W3C.
  • AnonymousOnly: При включении (создав файл с именем AnonymousOnly) ограничивает сервер, позволяя только анонимные входы.
  • AntiWarez: Если этот файл существует, пользователям запрещено загружать файлы, которые уже существуют на сервере.
  • AutoRename: Автоматически переименовывает загруженные файлы, если файл с таким же именем существует.
  • Bind: Привязывает сервер к определенному IP-адресу и порту. Например, Bind 21 привязывает к порту 21 на всех доступных адресах.
  • BrokenClientsCompatibility: Включает совместимость с FTP-клиентами, которые не строго соблюдают стандарты FTP.
  • ChrootEveryone: Если включено, ограничивает всех пользователей их домашним каталогом.
  • CreateHomeDir: Автоматически создает домашние каталоги, если они не существуют, когда пользователь входит в систему.
  • CustomerProof: Увеличивает устойчивость к распространенным ошибкам, совершаемым в конфигурациях и командах клиентов.
  • Daemonize: Когда этот файл существует, Pure-FTPd будет работать как демон.
  • DisplayDotFiles: Управляет тем, отображаются ли скрытые файлы.
  • DontResolve: Предотвращает разрешение DNS для ведения журнала и контроля пропускной способности, что может улучшить производительность.
  • ExtAuth: Указывает внешнюю программу для аутентификации пользователей.
  • ForcePassiveIP: Заставляет сервер сообщать определенный IP-адрес клиентам в пассивном режиме.
  • FSCharset: Устанавливает набор символов файловой системы, полезный для имен файлов, не содержащих ASCII.
  • IPv4Only или IPv6Only: Ограничивает сервер прослушиванием только IPv4 или IPv6 адресов.
  • KeepAllFiles: Предотвращает удаление любых файлов на сервере.
  • LDAPConfigFile: Указывает путь к файлу конфигурации LDAP для аутентификации.
  • LimitRecursion: Ограничивает глубину рекурсии и количество файлов, отображаемых в списках каталогов.
  • MaxClientsNumber: Ограничивает максимальное количество одновременно подключенных клиентов.
  • MaxClientsPerIP: Ограничивает количество одновременных подключений с одного IP-адреса.
  • MaxDiskUsage: Ограничивает процент использования диска.
  • MaxIdleTime: Устанавливает максимальное время простоя в минутах перед отключением клиента.
  • MaxLoad: Отключает клиентов или отказывает в новых подключениях при превышении определенной нагрузки на систему.
  • MinUID: Устанавливает минимальный UID для входа. Пользователи с более низким UID не могут войти в систему.
  • MySQLConfigFile: Указывает путь к файлу конфигурации MySQL для аутентификации на основе базы данных.
  • NoAnonymous: Отключает анонимные входы, если этот файл существует.
  • NoChmod: Отключает команду CHMOD на сервере.
  • NoRename: Запрещает пользователям переименовывать файлы.
  • PassivePortRange: Определяет диапазон портов для пассивных подключений (например, 30000 35000).
  • PerUserLimits: Устанавливает ограничения на основе каждого пользователя.
  • PureDB: Указывает путь к файлу базы данных пользователей PureDB.
  • Quota: Устанавливает лимиты квоты для пользователей.
  • SyslogFacility: Определяет средство syslog для ведения журнала.
  • TLSCipherSuite: Указывает разрешенные шифры TLS для зашифрованных соединений.
  • TrustedGID: Указывает список доверенных идентификаторов групп для входа.
  • UMask: Устанавливает умаску по умолчанию для создания файлов.
  • UnixAuthentication: Включает аутентификацию против базы данных паролей UNIX.
  • UploadScript: Указывает скрипт для выполнения после успешной загрузки.

Этот список охватывает наиболее часто используемые параметры конфигурации, но не является исчерпывающим. Всегда обращайтесь к официальной документации Pure-FTPd или используйте команду

pure-ftpd-wrapper --help

для получения наиболее точной и полной информации.

Примеры

Вот список настроек Pure-FTPd в /etc/pure-ftpd/conf/ с примерами, чтобы проиллюстрировать типы значений, которые они принимают:

  • AltLog: AltLog clf:/var/log/pureftpd.log - Пример: clf:/var/log/pureftpd.log
  • AnonymousOnly: Включите, создав файл с именем AnonymousOnly. - Значение не требуется.
  • AntiWarez: Включите, создав файл с именем AntiWarez. - Значение не требуется.
  • AutoRename: Включите, создав файл с именем AutoRename. - Значение не требуется.
  • Bind: Bind 21 - Пример: 192.168.0.1,21
  • BrokenClientsCompatibility: Включите, создав файл с именем BrokenClientsCompatibility. - Значение не требуется.
  • ChrootEveryone: Включите, создав файл с именем ChrootEveryone. - Значение не требуется.
  • CreateHomeDir: Включите, создав файл с именем CreateHomeDir. - Значение не требуется.
  • CustomerProof: Включите, создав файл с именем CustomerProof. - Значение не требуется.
  • Daemonize: Включите, создав файл с именем Daemonize. - Значение не требуется.
  • DisplayDotFiles: Включите, создав файл с именем DisplayDotFiles. - Значение не требуется.
  • DontResolve: Включите, создав файл с именем DontResolve. - Значение не требуется.
  • ExtAuth: ExtAuth /path/to/authenticator - Пример: /usr/local/bin/myauth
  • ForcePassiveIP: ForcePassiveIP 192.168.0.1 - Пример: 192.168.0.1
  • FSCharset: FSCharset utf-8 - Пример: utf-8
  • IPv4Only или IPv6Only: Включите, создав файл с именем IPv4Only или IPv6Only. - Значение не требуется.
  • KeepAllFiles: Включите, создав файл с именем KeepAllFiles. - Значение не требуется.
  • LDAPConfigFile: LDAPConfigFile /etc/pure-ftpd/ldap.conf - Пример: /etc/pure-ftpd/ldap.conf
  • LimitRecursion: LimitRecursion 10000 8 - Пример: 10000 8 (10000 файлов, 8 уровней глубины)
  • MaxClientsNumber: MaxClientsNumber 50 - Пример: 50
  • MaxClientsPerIP: MaxClientsPerIP 8 - Пример: 8
  • MaxDiskUsage: MaxDiskUsage 95 - Пример: 95 (95 процентов)
  • MaxIdleTime: MaxIdleTime 15 - Пример: 15 (15 минут)
  • MaxLoad: MaxLoad 4.0 - Пример: 4.0
  • MinUID: MinUID 1000 - Пример: 1000
  • MySQLConfigFile: MySQLConfigFile /etc/pure-ftpd/mysql.conf - Пример: /etc/pure-ftpd/mysql.conf
  • NoAnonymous: Включите, создав файл с именем NoAnonymous. - Значение не требуется.
  • NoChmod: Включите, создав файл с именем NoChmod. - Значение не требуется.
  • NoRename: Включите, создав файл с именем NoRename. - Значение не требуется.
  • PassivePortRange: PassivePortRange 30000 35000 - Пример: 30000 35000
  • PerUserLimits: PerUserLimits 8 - Пример: 8 (8 одновременных подключений на пользователя)
  • PureDB: PureDB /etc/pure-ftpd/pureftpd.pdb - Пример: /etc/pure-ftpd/pureftpd.pdb
  • Quota: Quota 1000M - Пример: 1000M (1000 мегабайт)
  • SyslogFacility: SyslogFacility ftp - Пример: ftp
  • TLSCipherSuite: TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 - Пример: HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
  • TrustedGID: TrustedGID 1000 - Пример: 1000
  • UMask: UMask 133:022 - Пример: 133:022 (Файлы: 133, Каталоги: 022)
  • UnixAuthentication: Включите, создав файл с именем UnixAuthentication. - Значение не требуется.
  • UploadScript: UploadScript /path/to/script - Пример: /usr/local/bin/uploadscript

Эти примеры должны прояснить, как настраивать различные параметры в Pure-FTPd.

Мониторинг и обслуживание

Регулярно проверяйте журналы в /var/log/pure-ftpd/ на предмет необычной активности или ошибок.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.