hostprofi.ru
Подобрать хостинг
Термин·буква P

ProFTPD

краткое определение

ProFTPD — высокопроизводительный FTP-сервер с открытым исходным кодом для Linux/Unix. Настраивается через единый конфиг в стиле Apache. Поддерживает виртуальные серверы, FTPS, SFTP, анонимный FTP и модульную архитектуру.

ProFTPD (Pro FTP Daemon) — FTP-сервер с открытым исходным кодом для Unix-систем. В отличие от большинства FTP-серверов, унаследованных от BSD ftpd, ProFTPD написан с нуля с акцентом на безопасность и гибкость конфигурации. Синтаксис конфигурационного файла намеренно повторяет структуру Apache: директивы, секции, виртуальные хосты.

Как работает

ProFTPD запускается как standalone-демон или через systemd, прослушивает порт 21 (FTP) и порт 990 (Implicit FTPS). Конфигурационный файл /etc/proftpd/proftpd.conf — основной; дополнительные конфиги подключаются директивой Include /etc/proftpd/conf.d/*.conf. Пользователи аутентифицируются через PAM, LDAP, MySQL или PostgreSQL (через модули).

Архитектура ProFTPD модульная. Базовый набор функций расширяется mod_*-модулями:

  • mod_tls — поддержка FTPS (TLS-шифрование). Настраивается через директивы TLSEngine, TLSRequired, TLSProtocol.
  • mod_sftp — поддержка SFTP через SSH (необычно для FTP-сервера, но полезно).
  • mod_sql — аутентификация через MySQL/PostgreSQL: виртуальные пользователи без системных учётных записей.
  • mod_quota — дисковые квоты на пользователя.
  • mod_ban — автоматическая блокировка IP при неудачных попытках входа (аналог Fail2ban внутри ProFTPD).
  • mod_wrap — интеграция с hosts.allow/hosts.deny для ограничения доступа по IP.

Виртуальные FTP-серверы позволяют на одном IP обслуживать несколько доменов с разными корневыми директориями и наборами пользователей — это аналог виртуальных хостов Apache. Каждый виртуальный сервер оборачивается в блок <VirtualHost>.

Конфигурация: минимальный пример

ServerName "ProFTPD Server"
ServerType standalone
DefaultServer on
Port 21
PassivePorts 49152 65534
RootLogin off
RequireValidShell off

<Anonymous /var/ftp/pub>
  User ftp
  Group nogroup
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>

История

ProFTPD создан Андреасом Шейером в 1997 году. Мотивация — безопасность и гибкость: существующие FTP-серверы (wu-ftpd, BSD ftpd) страдали от уязвимостей и ограниченных возможностей конфигурации. Версия 1.0 вышла в 1999 году. В 2000-е ProFTPD занял место одного из трёх наиболее распространённых FTP-серверов в Linux (наряду с vsftpd и Pure-FTPd). В 2008 году обнаружена критическая уязвимость удалённого выполнения кода. ProFTPD активно развивается: версия 1.3.8 (2023) добавила поддержку TLS 1.3 и OpenSSL 3.

ProFTPD vs vsftpd vs Pure-FTPd

КритерийProFTPDvsftpdPure-FTPd
КонфигурацияApache-подобная, гибкаяПростая, минималистичнаяФлаги командной строки
МодулиБогатая экосистемаОграниченнаяСредняя
SFTPДа (mod_sftp)НетНет
Виртуальные пользователиДа (mod_sql)ОграниченноДа

На что обращать внимание

ProFTPD при установке требует отключить аутентификацию root: директива RootLogin off должна быть в конфиге. При использовании пассивного режима задайте диапазон PassivePorts и откройте его в iptables. Без mod_tls все данные передаются в открытом виде. Для хостинг-панелей (ISPmanager, cPanel) ProFTPD часто поставляется как встроенный FTP-сервер с преднастроенной конфигурацией.

ProFTPD и безопасность

ProFTPD — один из наиболее функциональных FTP-серверов с модульной архитектурой. На ISPmanager ProFTPD устанавливается как часть хостинг-стека для FTP-доступа клиентов к их сайтам. Рекомендуется использовать FTPS (FTP over TLS) вместо plain FTP: трафик шифруется SSL-сертификатом. Fail2ban для ProFTPD: jail для блокировки брутфорса FTP-паролей. Passive mode (пассивный режим) с ограниченным диапазоном портов обязателен при работе за NAT/файрволом.

Другие термины