Pure-FTPd — свободный FTP-сервер для операционных систем семейства UNIX, распространяется по лицензии BSD. Основное внимание уделяется безопасности и простоте настройки.
Из исходного кода компилировался для Linux, OpenBSD, NetBSD, DragonFly BSD, FreeBSD, Solaris, Tru64, Darwin, IRIX и HP-UX. Также есть под Android[3].
Готовые пакеты существуют для Novell, Mandriva, Debian, Ubuntu, PLD Linux, Stampede Linux, Slackware (Slimslack), Multilinux, Sorcerer Linux, Fli4L, ROOT Linux, Gentoo, Arch Linux, OpenWrt.
На BSD системах портирован под DragonFly BSD и FreeBSD (/usr/ports/ftp/pure-ftpd/), OpenBSD (/usr/ports/net/pure-ftpd/) и NetBSD (/usr/pkgsrc/net/pureftpd/), Crux Linux (/usr/ports/contrib/pure-ftpd/).
Отличительной особенностью является то, что сервер не читает настройки напрямую из конфигурационных файлов, а принимает их только из командной строки. Но возможность использования конфигурационных файлов существует[4][неавторитетный источник]. Начиная с версии 1.0.44 (дата выхода 1 января 2017 года) поддерживает работу с конфигурационным файлом.
Pure-FTPd базируется на Troll-FTPd, написанном Arnt Gulbrandsen из Trolltech в период работы в 1995—2003 годах. С 2001 года и по настоящее время разрабатывается группой под управлением Frank Denis[5].
- Простота установки и конфигурирования.
- Встроенная поддержка UTF-8.
- При подключении по медленным каналам и работе с несколькими серверами возможна работа по FXP протоколу.
- Может выполняться как отдельный демон (standalone mode), так и через супер-сервер inetd.
- Поставляется с программой мониторинга pure-ftpwho (с версии 0.97.7), которая в реальном времени показывает кто скачивает/загружает файлы и с какой скоростью. Возможен запуск pure-ftpwho как CGI приложения с возможностью генерации выходных данных в виде HTML или XML.
- Сообщения сервера на данный момент переведены на 21 язык (в том числе и на русский).
- Поддержка как базового, так и расширенного (например MLST) набора FTP-команд[англ.].
- Возможность использования различных методов идентификации: unix (для пользователей перечисленных в /etc/passwd), PAM, LDAP (поддерживаются методы plaintext, Crypt, MD5, SMD5, SHA и SSHA), MySQL, PostgreSQL, PureDB (механизм самого Pure-FTPd), расширенный (возможность написать и подключить свой модуль идентификации). Допустимо использование нескольких методов одновременно. Имя пользователя и пароль будут проверяться каждым методом последовательно. Проверка завершается и оставшиеся методы использованы не будут если пользователь найден (вне зависимости от того, правильный пароль или нет).
- Возможен запуск рабочих процессов в chroot-е.
- Создание виртуальных пользователей.
- Задание индивидуальных квот, не связанных с системными, для пользователей (максимальное количество файлов, максимальный размер каталога, максимальная скорость скачивания/закачивания).
- После загрузки файла на сервер возможен автоматический запуск внешних скриптов или программ (например, для проверки на вирусы, расчет MD5 хэшей файлов, отправка уведомлений о загрузке).
- Возможность создания виртуальных FTP серверов (поскольку ftp протокол не поддерживает обращение к серверу по имени, то для каждого сервера необходим выделенный IP адрес).
- Можно запускать несколько копий сервера с различными конфигурационными опциями.
- Запрет доступа к dot-файлам (имя которых начинается с точки, например, .ssh directories, .bash_history files, .rhosts).
- Создание псевдонимов (алиасы) для каталогов. Например, если создать алиас pictures для /home/user/pictures и выполнить команду cd pictures находясь в /home, то сервер автоматически совершит перенаправление в /home/user/pictures (конечно при условии, что не существует каталога /home/pictures). Может использоваться для быстрого перехода в определенные каталоги (т. е. работать как shortcuts).
- Операции загрузки файлов атомарны.
- Работа по IPv6, в том числе поддержка EPSV/EPRT команд.
- По заявлению авторов, Pure-FTPd — первый сервер поддерживающий ESTA и ESTP команды.
- Поддержка libsodium > 1.0.12(с версии 1.0.47).
- Поддержка SNI (с версии 1.0.48).