Открыть сервис

ProFTPD

ProFTPD — это свободный FTP-сервер для операционных систем семейства Unix (включая Linux, BSD, macOS) и Windows (через Cygwin), распространяемый под лицензией GNU General Public License (GPL). Разработан как альтернатива широко распространённому серверу WU-FTPD, ориентирован на безопасность, гибкость настройки и производительность. ProFTPD использует модульную архитектуру, что позволяет расширять его функциональность без изменения основного кода.

История

Проект ProFTPD был основан в 1999 году группой разработчиков, стремившихся создать FTP-сервер, лишённый уязвимостей и недостатков, присущих WU-FTPD. Первая стабильная версия (1.2.0) вышла в 2000 году. С тех пор сервер получил широкое распространение в веб-хостинге, корпоративных сетях и образовательных учреждениях. Ключевыми версиями стали:

  • 1.2.0 (2000) — первая стабильная версия, поддержка виртуальных хостов.
  • 1.3.0 (2005) — внедрение модульной системы, поддержка IPv6.
  • 1.3.5 (2014) — исправление критических уязвимостей, улучшение поддержки TLS.
  • 1.3.8 (2022) — обновление механизмов аутентификации, поддержка новых стандартов безопасности.

На 2025 год ProFTPD остаётся одним из самых популярных FTP-серверов в Unix-среде, наряду с vsftpd и Pure-FTPd.

Архитектура и принципы работы

ProFTPD работает по модели «один процесс на одно соединение» (fork-on-connect). При получении запроса на подключение основной процесс (master) создаёт дочерний процесс для обслуживания конкретного клиента. Это обеспечивает изоляцию сессий и повышает отказоустойчивость.

Основные компоненты

  • proftpd — основной демон, принимающий входящие соединения.
  • ftpasswd — утилита для управления файлами паролей (аналог htpasswd).
  • ftpcount — утилита для отображения количества активных сессий.
  • ftpwho — утилита для просмотра информации о текущих подключениях.

Модульная архитектура

ProFTPD поддерживает динамическую загрузку модулей, которые добавляют новые функции. Модули компилируются отдельно и подключаются через директиву LoadModule в конфигурационном файле. Основные модули:

  • mod_auth_fileаутентификация через файлы паролей (по умолчанию).
  • mod_auth_pam — аутентификация через PAM (Pluggable Authentication Modules).
  • mod_tls — поддержка FTP over TLS/SSL (FTPS).
  • mod_sql — аутентификация и хранение данных в SQL-базах (MySQL, PostgreSQL).
  • mod_ldap — интеграция с LDAP-каталогами.
  • mod_ban — автоматическая блокировка IP-адресов при подозрительной активности.
  • mod_ratio — управление соотношением загрузки/скачивания (для файлообменников).

Конфигурация

Конфигурационный файл ProFTPD обычно располагается по пути /etc/proftpd/proftpd.conf (в Linux) или /usr/local/etc/proftpd.conf (в BSD). Синтаксис напоминает конфигурацию Apache HTTP Server: используются директивы, вложенные в секции (<Directory>, <Limit>, <VirtualHost>).

Пример базовой конфигурации

`` ServerName "ProFTPD сервер" ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nogroup AllowOverwrite on ``

Основные директивы

  • ServerName — имя сервера, отображаемое при подключении.
  • ServerType — режим работы: standalone (демон) или inetd (запуск через суперсервер).
  • Port — порт для FTP-соединений (по умолчанию 21).
  • DefaultRoot — ограничение корневого каталога для пользователей (chroot).
  • MaxClients — максимальное количество одновременных подключений.
  • AllowOverwrite — разрешение на перезапись файлов.

Виртуальные хосты

ProFTPD поддерживает виртуальные хосты, позволяя на одном IP-адресе обслуживать несколько FTP-серверов с разными настройками. Виртуальные хосты задаются в секции <VirtualHost>:

`` <VirtualHost 192.168.1.100> ServerName "Виртуальный хост 1" DefaultRoot /srv/ftp1 MaxClients 10 </VirtualHost> ``

Безопасность

ProFTPD включает ряд механизмов для защиты от несанкционированного доступа и атак:

  • Поддержка TLS/SSL — шифрование канала передачи данных (FTPS) через модуль mod_tls.
  • Chroot-окружение — ограничение пользователя его домашним каталогом (директива DefaultRoot).
  • Ограничение команд — через секцию <Limit> можно запретить определённые FTP-команды (например, STOR для запрета загрузки).
  • Блокировка по IP — модуль mod_ban автоматически блокирует адреса после нескольких неудачных попыток входа.
  • Анонимный доступ — настройка гостевых учётных записей с ограниченными правами.

Типичные уязвимости

За историю проекта было выявлено несколько критических уязвимостей, в том числе:

  • CVE-2011-4130 (2011) — возможность выполнения произвольного кода через переполнение буфера в mod_sql.
  • CVE-2020-9272 (2020) — отказ в обслуживании (DoS) через специально сформированные запросы.

Разработчики оперативно выпускают патчи, поэтому рекомендуется всегда использовать последнюю стабильную версию.

Применение

ProFTPD используется в различных сценариях:

  • Веб-хостинг — для предоставления клиентам доступа к файлам сайта по FTP.
  • Корпоративные сети — для обмена файлами между сотрудниками и партнёрами.
  • Образовательные учреждения — для организации файловых хранилищ.
  • Файлообменные сервисы — с модулями mod_ratio и mod_quota для управления трафиком.
  • Встраиваемые системы — благодаря низкому потреблению ресурсов.

Сравнение с аналогами

ПараметрProFTPDvsftpdPure-FTPd
ЛицензияGPLGPLBSD
МодульностьДа (динамические модули)Нет (встроенные функции)Да (плагины)
Поддержка TLSДа (mod_tls)ДаДа
Поддержка SQLДа (mod_sql)НетДа (через внешние модули)
ПроизводительностьСредняяВысокаяВысокая
Сложность настройкиСредняяНизкаяСредняя

ProFTPD выигрывает в гибкости настройки за счёт модульной архитектуры, но уступает vsftpd в производительности при очень большом количестве одновременных подключений.

Интересные факты

  • ProFTPD используется в дистрибутивах Linux, таких как Debian, Ubuntu, CentOS, в качестве FTP-сервера по умолчанию (в некоторых версиях).
  • Изначально проект назывался «Professional FTP Daemon», откуда и произошло название.
  • В 2003 году ProFTPD был выбран в качестве FTP-сервера для проекта SourceForge (ныне SourceForge.net).
  • Модуль mod_sql поддерживает работу с MySQL, PostgreSQL, SQLite и ODBC-совместимыми базами данных.

Источники

  • Официальная документация ProFTPD (proftpd.org)
  • Статья «ProFTPD» в архиве Linux Documentation Project (tldp.org)
  • Анализ уязвимостей CVE (cve.mitre.org)
  • Сравнение FTP-серверов (сайт «FTP Server Comparison»)
  • Руководство по настройке ProFTPD (Ubuntu Server Guide)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →