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

Ви повинні побачити вивід, що вказує на те, що служба active (running). Якщо служба не запущена, запустіть її вручну:

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 та перейдіть до File → Site Manager
  2. Натисніть New Site та введіть назву
  3. Встановіть Protocol на FTP – File Transfer Protocol
  4. Введіть IP-адресу вашого сервера у поле Host
  5. Встановіть Port на 21
  6. Встановіть Logon Type на Normal
  7. Введіть ftpuser як ім’я користувача та обраний вами пароль
  8. Натисніть Connect

Варіант 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-доступу, який недоступний на спільному хостингу.

Для команд, яким також потрібна професійна поштова інфраструктура поряд із налаштуванням передачі файлів, Email Хостинг надає надійне кероване рішення без накладних витрат на самостійне обслуговування поштового сервера.

Висновок

Налаштування повністю функціонального та безпечного FTP-сервера на Ubuntu з vsftpd є простим процесом при систематичному підході. Дотримуючись цього посібника, ви:

  • ✅ Встановили та увімкнули vsftpd на Ubuntu
  • ✅ Налаштували безпечний доступ користувачів з chroot-ізоляцією
  • ✅ Налаштували пасивний режим для широкої сумісності з клієнтами
  • ✅ Відкрили правильні порти брандмауера
  • ✅ За бажанням захистили з’єднання за допомогою шифрування SSL/TLS

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

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати