Установка FTP · 6 min read · Sep 23, 2025
Установка Pure-FTPd на Ubuntu 24.04

Pure-FTPd — это бесплатное программное обеспечение FTP-сервера с открытым исходным кодом, доступное для Ubuntu и других дистрибутивов Linux. Разработанный с акцентом на безопасность, производительность и простоту использования, Pure-FTPd предлагает надежные функции, такие как поддержка виртуальных пользователей, зашифрованные соединения с использованием TLS/SSL и различные механизмы аутентификации. Он также предоставляет такие функции, как ограничение пропускной способности, ограничение прав пользователей и включение анонимного доступа к FTP. Pure-FTPd часто выбирают за его простоту в настройке по сравнению с другими FTP-серверами, что делает его популярным выбором как для малых, так и для крупных развертываний на системах Ubuntu.
Протокол передачи файлов (FTP) — это стандартный сетевой протокол, используемый для передачи файлов между клиентом и сервером по сети, такой как интернет. Разработанный в начале 1970-х годов, FTP позволяет пользователям загружать, скачивать и управлять файлами на удаленном сервере. Он работает с использованием двух каналов: командного канала для управления соединением и канала данных для передачи файлов. FTP может работать в активном или пассивном режиме, что определяет, как сервер и клиент устанавливают соединения. Хотя FTP широко используется для передачи файлов, он считается небезопасным, поскольку данные, включая учетные данные для входа, передаются в открытом виде; в этом руководстве я покажу вам, как настроить Pure-FTPd для использования FTPS (FTP через SSL/TLS), что сделает 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/ на предмет необычной активности или ошибок.
Get new posts in your inbox
No spam. Unsubscribe anytime.