- Home »

Настройка VSFTPD для пользовательской директории на Ubuntu 24
В этом посте разберёмся, как быстро и без боли поднять FTP-сервер на базе VSFTPD с доступом к пользовательским директориям на свежей Ubuntu 24. Если ты когда-нибудь сталкивался с задачей раздачи файлов через FTP, автоматизации бэкапов или просто хочешь организовать удобный обмен файлами между пользователями на своём сервере — эта статья для тебя. Я покажу, как не наступить на грабли, которые валяются на каждом шагу, и как сделать так, чтобы твой FTP работал стабильно, безопасно и не требовал шаманства с бубном. Всё по делу, с примерами, кейсами и реальными советами.
Как это вообще работает?
VSFTPD (Very Secure FTP Daemon) — это один из самых популярных FTP-серверов под Linux. Его любят за простоту, безопасность и стабильность. В отличие от всяких монстров типа ProFTPD или vsftpd-альтернатив, он не перегружен лишними фичами, но при этом умеет всё, что нужно для хостинга: изолированные пользовательские директории (chroot), работу с виртуальными и системными пользователями, SSL/TLS, ограничение доступа и прочие радости жизни.
В классической схеме VSFTPD работает так: у тебя есть пользователи системы (или виртуальные), у каждого — своя домашняя директория. Ты можешь настроить сервер так, чтобы каждый видел только свою папку, не мог лазить по чужим, а если надо — дать доступ к общим ресурсам. Всё это делается через конфиг, без магии и лишних зависимостей.
Быстрая и простая настройка VSFTPD на Ubuntu 24
Погнали по шагам. Всё, что тебе нужно — это чистая Ubuntu 24 (подойдёт и VPS, и выделенный сервер, если что — VPS тут, dedicated тут), root-доступ и минут 15 времени.
- Установка VSFTPD
sudo apt update
sudo apt install vsftpd
После установки сервис стартует автоматически. - Создание пользователя и директории
sudo adduser ftpuser
# Задаём пароль, создаём домашнюю директорию
Можно создать несколько пользователей — для каждого будет своя папка. - Бэкапим оригинальный конфиг
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
- Редактируем конфиг
sudo nano /etc/vsftpd.conf
Вот минимальный набор опций для изолированной пользовательской директории:listen=YES anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES user_sub_token=$USER local_root=/home/$USER/ftp
chroot_local_user=YES
— изолирует пользователя в его домашней директории.allow_writeable_chroot=YES
— позволяет писать в chroot (иначе будет ошибка 500 OOPS).local_root=/home/$USER/ftp
— можно сделать поддиректорию для FTP, чтобы не светить всю home.
- Создаём поддиректорию для FTP и выставляем права
sudo mkdir /home/ftpuser/ftp
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo mkdir /home/ftpuser/ftp/files
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
- В корне FTP-директории нельзя иметь права на запись (особенность chroot в vsftpd).
- Писать можно только в поддиректорию
files
.
- Перезапускаем сервис
sudo systemctl restart vsftpd
- Проверяем подключение
ftp [email protected]
Или через FileZilla/WinSCP.
Примеры и кейсы: что может пойти не так?
Кейс | Что происходит | Решение |
---|---|---|
Ошибка “500 OOPS: vsftpd: refusing to run with writable root inside chroot()” | Права на запись в корне домашней директории пользователя | Добавить allow_writeable_chroot=YES и/или убрать права на запись в корне, использовать поддиректорию для upload |
Пользователь видит чужие директории | Не включён chroot_local_user=YES |
Включить chroot, проверить права и владельцев директорий |
Не работает пассивный режим (PASV) | FTP-клиент не может подключиться, висит на листинге | Открыть диапазон портов в файрволе, прописать pasv_min_port и pasv_max_port в конфиге |
Передача паролей в открытом виде | FTP по умолчанию не шифрует трафик | Включить SSL/TLS: ssl_enable=YES , сгенерировать сертификат |
Практические советы и схемы
- Для массового создания пользователей используй скрипты на bash с
adduser
и шаблонными конфигами. - Если нужен доступ к одной папке нескольким пользователям — используй группу и выставь права на директорию.
- Для автоматизации бэкапов — подключайся по FTP с помощью
lftp
илиncftp
в скриптах. - Для безопасности — ограничь доступ по IP через
/etc/hosts.allow
и/etc/hosts.deny
. - Мониторь логи:
/var/log/vsftpd.log
— там видно, кто что качал и загружал.
Похожие решения и альтернативы
- ProFTPD — мощный, гибкий, но сложнее в настройке. Гибкая работа с виртуальными пользователями, поддержка LDAP, но конфиг больше похож на Apache.
- Pure-FTPd — лёгкий, быстрый, с хорошей поддержкой виртуальных пользователей и встроенным шифрованием. Но чуть менее популярен в крупных дистрибутивах.
- SFTP (через OpenSSH) — не FTP, но часто используется для тех же задач. Безопаснее, но не всегда поддерживается простыми клиентами и автоматизацией.
Сервер | Безопасность | Простота | Гибкость | Ресурсы |
---|---|---|---|---|
VSFTPD | Высокая | Очень прост | Средняя | Минимальные |
ProFTPD | Средняя | Сложнее | Максимум | Средние |
Pure-FTPd | Высокая | Прост | Средняя | Минимальные |
SFTP (OpenSSH) | Максимум | Очень прост | Ограничена | Минимальные |
Официальная документация VSFTPD: https://security.appspot.com/vsftpd.html
Интересные факты и нестандартные применения
- VSFTPD можно запускать в Docker-контейнере, что удобно для тестовых стендов и CI/CD.
- Можно использовать FTP для передачи логов и данных между IoT-устройствами и сервером — многие железки поддерживают только FTP.
- С помощью
curlftpfs
можно монтировать FTP как обычную файловую систему на Linux — удобно для интеграции с локальными скриптами. - VSFTPD поддерживает ограничение скорости для пользователей и групп — полезно, если не хочешь, чтобы кто-то забил весь канал.
- Можно сделать временных пользователей с помощью cron и скриптов — для разовых задач или гостевого доступа.
Автоматизация и новые возможности
VSFTPD отлично дружит с автоматизацией. Ты можешь:
- Генерировать пользователей и пароли на лету для клиентов через bash/python-скрипты.
- Интегрировать FTP в CI/CD пайплайны для выгрузки билдов или логов.
- Использовать FTP для обмена файлами между разными сервисами внутри инфраструктуры (например, между веб-сервером и бэкап-сервером).
- Автоматически чистить старые файлы с помощью cron и find.
- Собирать статистику по загрузкам и выгрузкам для отчётности.
Выводы и рекомендации
VSFTPD — это тот самый случай, когда “просто работает”. Если тебе нужен быстрый, безопасный и минималистичный FTP-сервер для пользовательских директорий на Ubuntu 24 — смело ставь vsftpd. Он не требует много ресурсов, легко настраивается, отлично подходит для хостинга, обмена файлами, автоматизации и интеграции с другими сервисами. Для большинства задач хватит базовой конфигурации, а если нужно что-то сложнее — всегда можно докрутить через плагины, скрипты или интеграцию с PAM.
Используй VSFTPD, если:
- Нужен FTP-доступ для нескольких пользователей с изоляцией директорий.
- Важно быстро развернуть сервис без лишних зависимостей.
- Планируешь автоматизировать работу с файлами через скрипты.
- Хочешь минимизировать риски безопасности (при правильной настройке).
Если нужен VPS или выделенный сервер для своих экспериментов — VPS тут, dedicated тут. Не забывай про регулярные бэкапы и мониторинг логов!
Вопросы, кейсы, лайфхаки — пиши в комментарии. Удачной настройки и стабильного аптайма!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.