15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
30.10.2024

Как установить и настроить FTP-сервер на Ubuntu с помощью vsftpd

Передача файлов — это фундаментальная задача для любого администратора сервера. Независимо от того, загружаете ли вы файлы сайта, управляете резервными копиями или обмениваетесь большими наборами данных между системами, наличие надёжного FTP-сервера делает весь процесс значительно более эффективным. Это подробное руководство проведёт вас через установку, настройку и защиту vsftpd (Very Secure FTP Daemon) на Ubuntu — наиболее надёжного решения FTP-сервера для Linux-окружений.

Зачем использовать vsftpd на Ubuntu?

FTP (File Transfer Protocol) остаётся одним из наиболее широко используемых методов передачи файлов между локальной машиной и удалённым сервером. Хотя существуют более новые альтернативы, такие как SFTP и SCP, FTP с шифрованием SSL/TLS (FTPS) по-прежнему остаётся практичным выбором для многих хостинговых сред.

vsftpd выделяется как предпочтительный FTP-демон на Ubuntu по ряду весомых причин:

  • Минимальный след — минимальное потребление ресурсов, идеально подходит для VPS-окружений
  • Надёжная модель безопасности — встроенная поддержка SSL/TLS, chroot-окружений и детального управления доступом
  • Активная поддержка — регулярно обновляется и хорошо документирован
  • Совместимость — работает без проблем с популярными FTP-клиентами, такими как FileZilla, WinSCP и Cyberduck

Если вы используете среду VPS Хостинга или Выделенный сервер, vsftpd является отличным выбором для безопасного и эффективного управления передачей файлов.

Предварительные требования

Перед началом работы убедитесь, что у вас есть следующее:

  • Сервер под управлением Ubuntu 20.04, 22.04 или 24.04
  • Доступ root или sudo к серверу
  • Базовое понимание командной строки Linux
  • Установленный UFW firewall (рекомендуется)

Шаг 1: Обновите систему

Перед установкой нового программного обеспечения крайне важно убедиться, что пакеты вашей системы полностью обновлены. Это предотвращает конфликты зависимостей и гарантирует получение последних патчей безопасности.

Откройте терминал и выполните:

sudo apt update
sudo apt upgrade -y

Дождитесь завершения процесса обновления, прежде чем продолжить.

Шаг 2: Установите vsftpd

Установите пакет vsftpd из официальных репозиториев Ubuntu:

sudo apt install vsftpd -y

После завершения установки убедитесь, что служба vsftpd запущена:

sudo systemctl status vsftpd

Вы должны увидеть вывод, указывающий на то, что служба активна (работает). Если служба не запущена, запустите её вручную:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Флаг enable гарантирует, что vsftpd будет автоматически запускаться при каждой перезагрузке системы.

Шаг 3: Создайте резервную копию файла конфигурации по умолчанию

Перед изменением любого файла конфигурации всегда создавайте резервную копию. Это позволит вам восстановить исходные настройки в случае возникновения проблем:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Шаг 4: Настройте vsftpd

Основной файл конфигурации vsftpd находится по адресу /etc/vsftpd.conf. Откройте его в предпочитаемом текстовом редакторе:

sudo nano /etc/vsftpd.conf

Примените следующие изменения конфигурации для улучшения функциональности и безопасности:

4.1 — Разрешите локальным пользователям входить в систему

Найдите и раскомментируйте следующую строку, чтобы разрешить локальным системным пользователям аутентификацию через FTP:

local_enable=YES

4.2 — Включите загрузку файлов

Чтобы разрешить аутентифицированным пользователям загружать файлы на сервер, раскомментируйте:

write_enable=YES

4.3 — Ограничьте пользователей их домашними директориями (Chroot Jail)

Это критически важная мера безопасности. Она предотвращает навигацию FTP-пользователей за пределы их назначенных домашних директорий:

chroot_local_user=YES

4.4 — Настройте порты пассивного режима

Пассивный режим необходим для клиентов за NAT или межсетевыми экранами. Добавьте следующие строки в конец файла конфигурации:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

4.5 — Дополнительные рекомендуемые настройки безопасности

Добавьте или проверьте следующие директивы для усиленной конфигурации:

anonymous_enable=NO
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

> Объяснение ключевых настроек:

> – anonymous_enable=NO — Отключает анонимный FTP-доступ, являющийся серьёзным риском безопасности

> – xferlog_enable=YES — Записывает все передачи файлов в журнал для целей аудита

> – use_localtime=YES — Использует местное время сервера в записях журнала

После внесения всех изменений сохраните файл с помощью Ctrl+O, затем выйдите с помощью Ctrl+X.

Шаг 5: Создайте выделенного FTP-пользователя

Рекомендуется создать выделенную учётную запись пользователя специально для FTP-доступа, а не использовать учётную запись root или администратора:

sudo adduser ftpuser

Следуйте интерактивным подсказкам для установки надёжного пароля и завершения процесса создания пользователя.

Затем создайте выделенную FTP-директорию для этого пользователя и установите правильные права владения и разрешения:

sudo mkdir -p /home/ftpuser/ftp/upload
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload

> Почему такая структура? Родительская директория ftp принадлежит nobody и недоступна для записи, что удовлетворяет требованию безопасности chroot в vsftpd. Поддиректория upload — это место, где пользователь фактически читает и записывает файлы.

Шаг 6: Перезапустите vsftpd для применения изменений

После завершения настройки перезапустите службу vsftpd:

sudo systemctl restart vsftpd

Убедитесь, что служба всё ещё работает корректно:

sudo systemctl status vsftpd

Шаг 7: Настройте UFW Firewall

Если UFW (Uncomplicated Firewall) активен на вашем сервере, необходимо открыть необходимые порты для FTP-трафика. FTP использует порт 21 для команд, порт 20 для передачи данных в активном режиме и диапазон пассивных портов, определённый в вашей конфигурации:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

Перезагрузите межсетевой экран для применения новых правил:

sudo ufw reload

Проверьте обновлённые правила:

sudo ufw status

Шаг 8: Протестируйте ваш FTP-сервер

После завершения настройки пришло время протестировать соединение. Вы можете использовать любой стандартный FTP-клиент:

Вариант A: Использование FileZilla (GUI-клиент)

  1. Откройте FileZilla и перейдите в Файл → Менеджер сайтов
  2. Нажмите Новый сайт и введите название
  3. Установите Протокол на FTP – File Transfer Protocol
  4. Введите IP-адрес вашего сервера в поле Хост
  5. Установите Порт на 21
  6. Установите Тип входа на Normal
  7. Введите ftpuser в качестве имени пользователя и выбранный пароль
  8. Нажмите Подключиться

Вариант B: Использование командной строки

ftp your_server_ip

Введите ftpuser и соответствующий пароль при появлении запроса. Протестируйте загрузку и скачивание файлов, чтобы убедиться, что всё работает как ожидается.

Шаг 9: Защитите FTP с помощью шифрования SSL/TLS (настоятельно рекомендуется)

Передача учётных данных и данных по обычному FTP представляет значительный риск безопасности. Шифрование вашего FTP-соединения с помощью SSL/TLS преобразует его в FTPS, защищая ваши данные при передаче.

Создайте самоподписанный SSL-сертификат

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 
-keyout /etc/ssl/private/vsftpd.pem 
-out /etc/ssl/private/vsftpd.pem

Обновите конфигурацию vsftpd для SSL/TLS

Снова откройте файл конфигурации:

sudo nano /etc/vsftpd.conf

Добавьте или обновите следующие директивы:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Перезапустите vsftpd для применения конфигурации SSL:

sudo systemctl restart vsftpd

> Совет профессионала: Для производственных сред рассмотрите возможность использования доверенного SSL-сертификата от центра сертификации вместо самоподписанного сертификата. AlexHost предлагает SSL-сертификаты, которые обеспечивают полное доверие браузеров и клиентов без предупреждений о сертификате.

Устранение распространённых проблем vsftpd

ПроблемаВероятная причинаРешение
500 OOPS: vsftpd: refusing to run with writable root inside chrootДиректория chroot доступна для записиУдалите разрешение на запись из корня chroot: sudo chmod a-w /home/ftpuser/ftp
Отказ в соединении на порту 21Межсетевой экран блокирует FTPПроверьте правила UFW с помощью sudo ufw status
Сбои соединения в пассивном режимеДиапазон пассивных портов не открытУбедитесь, что порты 40000–50000 открыты в UFW
Ошибка аутентификации при входеНеверные учётные данные или проблема с PAMПроверьте существование пользователя с помощью id ftpuser и при необходимости сбросьте пароль
Невозможно загрузить файлыwrite_enable не установленПодтвердите write_enable=YES в /etc/vsftpd.conf

Для просмотра журналов vsftpd с подробной информацией об ошибках:

sudo tail -f /var/log/vsftpd.log

Выбор подходящей хостинговой среды для вашего FTP-сервера

Производительность и безопасность вашего FTP-сервера напрямую зависят от качества базовой хостинговой инфраструктуры. Вот что следует учитывать:

  • VPS Хостинг — Идеально подходит для большинства случаев использования. Обеспечивает выделенные ресурсы, полный root-доступ и гибкость для настройки vsftpd именно так, как вам нужно.
  • Выделенные серверы — Лучший выбор для высоконагруженных сред или организаций со строгими требованиями к изоляции данных. Максимальная производительность и полный контроль.
  • Общий веб-хостинг — Подходит для базовых потребностей управления файлами с меньшим объёмом трафика. Обратите внимание, что установка vsftpd требует root-доступа, который недоступен на общем хостинге.

Для команд, которым также необходима профессиональная почтовая инфраструктура наряду с настройкой передачи файлов, Почтовый хостинг предоставляет надёжное управляемое решение без накладных расходов на самостоятельное обслуживание почтового сервера.

Заключение

Настройка полностью функционального и безопасного FTP-сервера на Ubuntu с vsftpd — это простой процесс при систематическом подходе. Следуя этому руководству, вы:

  • ✅ Установили и включили vsftpd на Ubuntu
  • ✅ Настроили безопасный доступ пользователей с chroot-окружением
  • ✅ Настроили пассивный режим для широкой совместимости с клиентами
  • ✅ Открыли необходимые порты межсетевого экрана
  • ✅ При желании защитили соединение с помощью шифрования SSL/TLS

Независимо от того, управляете ли вы файлами сайта, автоматизируете резервное копирование или обеспечиваете командный обмен файлами, vsftpd на хорошо настроенном Ubuntu VPS обеспечивает необходимую надёжность и безопасность. С высокопроизводительной инфраструктурой VPS Хостинга AlexHost вы получаете идеальную основу для запуска vsftpd в производственной среде — с корпоративным уровнем доступности, полным root-доступом и оперативной технической поддержкой всякий раз, когда она вам нужна.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать