Как установить VSFTPD для настройки FTP-сервера на Ubuntu 24.04 или 22.04

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

Кроме того, Vsftpd является единственным FTP-сервером в «главная» ветви дистрибутива Ubuntu, то есть гарантированно поддерживается и получает обновления безопасности. То же самое можно сказать и о других FTP-серверах из ветвей «вселенная/мультиверс».

И последнее, но не менее важное: Vsftpd очень прост в настройке. Без громоздких конфигурационных файлов вы можете предоставить локальным пользователям доступ к их домашней директории или настроить анонимный FTP-доступ. Кроме этого FTP-сервера с открытым исходным кодом, PureFTPd и ProFTPD — другие известные имена в этой категории.

Шаги по установке FTP-сервера VSFTPD на Ubuntu 22.04

Приведенные здесь шаги также могут быть использованы на Ubuntu 20.04, Debian 11, Linux Mint и других подобных дистрибутивах Linux.

1. Обновите Ubuntu 24.04 или 22.04

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

sudo apt update && sudo apt upgrade

2. Установите VSFTPD на Ubuntu 24.04 или 22.04

Нам не нужно добавлять сторонние репозитории или скачивать deb-бинары вручную, потому что достаточно официального репозитория Ubuntu; используйте команду менеджера пакетов APT, приведенную ниже, и все готово:

sudo apt install vsftpd
VSFTPD на Ubuntu 22.04

3. Проверьте, активна ли служба Vsftpd

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

systemctl status vsftpd --no-pager -l
Проверьте, активна ли служба Vsftpd

4. Создайте пользователя для FTP на Ubuntu 24.04 или 22.04

Создадим пользователя без доступа sudo. Мы будем использовать его только для доступа к папке в его домашнем каталоге для FTP, чтобы читать и записывать файлы.

sudo adduser h2smedia

Примечание: Изменить h2smedia на любое имя, которое вы хотите дать своему пользователю. Приведенная выше команда также попросит вас задать пароль пользователя.

5. Создайте папку FTP:

Теперь создадим папку в домашней директории только что созданного пользователя пользователя , так что пользователь может получить доступ к нему только для загрузки и скачивания файлов. Однако, чтобы ограничить доступ пользователя только к некоторым определенным каталогам, vsftpd использует chroot, который нам также необходимо включить, что мы и сделаем далее в этой статье. Еще одна проблема заключается в том, что VSFTPD не позволит пользователю подключиться к FTP-серверу, если его домашний каталог доступен для записи. Поэтому мы создаем корневой каталог для пользователя с именем FTP под домашним каталогом пользователя, который будет действовать как chroot, а внутри него будет еще один каталог, известный как upload, в котором будут храниться файлы.

Примечание: Не забудьте заменить h2smedia на созданного вами пользователя.

sudo mkdir /home/h2smedia/ftp

Настройте права собственности:

sudo chown nobody:nogroup /home/h2smedia/ftp

Снимите разрешение на запись корневой папки FTP:

sudo chmod a-w /home/h2smedia/ftp

Создайте каталог для загрузки файлов, в котором будут храниться ваши файлы:

sudo mkdir /home/h2smedia/ftp/upload

Передайте право собственности на созданную папку загрузки нашему FTP-пользователю

sudo chown h2smedia:h2smedia /home/h2smedia/ftp/upload

Теперь, для проверки, давайте создадим демо-файл в папке upload:

echo "My FTP Server" | sudo tee /home/h2smedia/ftp/upload/demo.txt

Наконец, проверьте права доступа к FTP-каталогу:

sudo ls -la /home/h2smedia/ftp
Создание пользователя FTP-сервера

6. Настройка VSFTPD на Ubuntu 24.04 или 22.04

После установки файл конфигурации /etc/vsftpd.conf необходимо адаптировать к вашим потребностям с помощью редактора. Файл подробно прокомментирован. Тем не менее, ниже приведены наиболее важные настройки.

sudo nano /etc/vsftpd.conf

7. Как включить анонимного пользователя

(необязательно) По умолчанию, в целях безопасности, никто не может войти на FTP-сервер анонимно (без использования действительного пользователя). Однако, если вы хотите включить эту функцию по какой-либо причине, найдите строку. anonymous_enable=No и измените НЕТ на ДА.

8. Включить пользователя локального FTP

Чтобы получить доступ к FTP-серверу с помощью созданных и доступных в вашей системе пользователей, вы можете найти строку, приведенную ниже, в файле конфигурации Vsftpd на Ubuntu 24.04 или 22.04:

local_enable=YES

По умолчанию, установлено значение ДА или включена, поэтому ничего делать не нужно.

9. Включить загрузку файлов и папок

В базовой конфигурации ни один пользователь не имеет права писать по FTP. Ни локальным пользователям (если они разрешены параметром «local_enable=YES»), ни анонимным пользователям. Чтобы разрешить загрузку файлов на FTP-сервер, нам необходимо

# Снимите этот комментарий, чтобы разрешить любому виду FTP записывать команду.

write_enable=YES
VSFTPD FTP Включить загрузку папок с файлами

10. Ограничение доступа локальных пользователей к их домашнему каталогу

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

chroot_local_user=YES
Ограничение доступа локальных пользователей к их домашнему каталогу

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

user_sub_token=$USER
local_root=/home/$USER/ftp

Установите пассивные порты:

Vsftpd по умолчанию использует активный режим на портах 20 / 21 для обмена данными. Однако если вы хотите установить и пассивный режим, который работает, если между клиентом и сервером есть проблемы с брандмауэром, то для работы этого процесса и сервер, и клиент должны поддерживать пассивный режим FTP. Пассивные порты также должны быть разрешены в брандмауэре сервера. Узнайте о его настройке.

pasv_min_port=30000
pasv_max_port=31000

Также добавьте следующие строки, чтобы VSFTPD разрешал доступ к FTP-серверу только тем пользователям, которые есть в его списке, а не случайным.

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Сохраните файл, используя Ctrl+O, нажмите кнопку Введите Клавиша и Выход из файла с помощью Ctrl+X.

Также не забудьте открыть порты в брандмауэре. Если вы используете UFW, используйте эту команду; в противном случае откройте их в облачном или сетевом брандмауэре. Порт 900 предназначен для TLS.

sudo ufw allow 20,21,990/tcp
sudo ufw allow 30000:31000/tcp

11. Добавьте созданного пользователя в список пользователей VSFTPD

Далее добавьте созданного пользователя в файл списка пользователей VSFTPD, чтобы он мог войти в систему и получить доступ к FTP-серверу.

echo "h2smedia" | sudo tee -a /etc/vsftpd.userlist

Примечание: Заменить h2smedia на созданного вами пользователя.

12. Перезапустите сервер VSFTPD

Чтобы применить внесенные изменения, перезапустите службу FTP-сервера один раз:

sudo systemctl restart vsftpd

13. Подключение для тестирования FTP-сервера

Мы можем использовать как командную строку, так и GUI-приложение, чтобы протестировать сервер и определить, работает ли он. Сначала попробуем с помощью командной строки:

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

-p для пассивного режима

ftp -p 192.168.135.129

Примечание: Заменить 192.168.135.129 на адрес вашего сервера Ubuntu 22.04, на котором установлен VSFTPD.

Поскольку он запрашивает Имя, введите FTP-сервер имя пользователя и сайт пароль вы установили. Если вы все настроили правильно, вы можете войти в систему.

Подключение к тестовому FTP-серверу Команда VSFTPD

Тест с использованием файла Zilla

Здесь мы используем FTP-клиент FileZilla с графическим интерфейсом; вы можете использовать любой другой, который у вас есть. В FTP-клиенте введите IP-адрес сервера Ubuntu 24.04 или 22.04, на котором вы настроили VSFTPD. После этого добавьте имя пользователя и пароль.

Подключение к тестовому FTP-серверу VSFTPD FileZilla

14. Настройка SSL/TSL для Vsftpd на Ubuntu 24.04 или 22.04

По умолчанию передача данных с помощью FTP-сервера Vsftpd не шифруется, даже учетные данные. Чтобы устранить этот недостаток безопасности, мы можем настроить SSL с помощью OpenSSL для обеспечения шифрования.

В командном терминале сначала выполните команду:

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

Это сгенерирует необходимый 2048-битный закрытый ключ и самоподписанный SSL-сертификат.

После генерации SSL-сертификата отредактируйте конфигурационный файл VSFTPD и добавьте местоположение закрытого ключа и SSL-сертификата.

sudo nano /etc/vsftpd.conf

Прокрутите вниз, чтобы найти следующие строки и измените их значения, как показано далее:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

Измените значения rsa_cert_file и rsa_private_key_file директивы с указанием пути к файлу SSL & Private Key, который мы сгенерировали. Также измените ssl_enable=NO на ssl_enable=YES. Как показано ниже:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
Настройка SSL TSL для Vsftpd Ubuntu 22.04

Также прокрутите файл до конца и добавьте:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Это запретит доступ к анонимному соединению через SSL и заставит пользователей передавать данные и входить в систему только через SSL:

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

Перезапустите FTP-сервер:

sudo systemctl restart vsftpd

Теперь проверьте, можем ли мы получить доступ к FTP-серверу через TSL. Здесь мы снова используем FileZilla:

Принять самоподписанный сертификат для FTP-сервера
Установка FTP-сервера VSFTPD на Ubuntu 22.04

15. Как обновить VSFTPD

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

sudo apt update && sudo apt upgrade

16. Деинсталляция или удаление

Чтобы полностью удалить VSFTPD из Ubuntu 24.04 или 22.04, если вам больше не нужен этот FTP-сервер в вашей системе. Тогда вот команда, которую нужно выполнить:

sudo apt autoremove --purge vsftpd*

FAQ

Что означает Vsftpd?

VSFTPD означает Very Secure FTP Daemon. Это FTP-сервер с открытым исходным кодом для Unix и Linux, предназначенный для передачи данных с FTP-клиента на сервер и наоборот.

В чем разница между FTP и Vsftpd?

FTP это протокол передачи файлов (сокращенно FTP), а VSFTP — это серверное приложение, которое предоставляет платформу для эффективного и безопасного использования протокола FTP. FTP используется в больших сетях или серверах для обмена файлами между серверами и компьютерами или сетями и компьютерами. Мы можем использовать протокол FTP для создания, перемещения или удаления каталогов на сервере или в сети.

Безопасен ли Vsftpd?

Да, VSFTPD — один из самых безопасных FTP-серверов с открытым исходным кодом, доступных для бесплатного использования. Он безопасен, обеспечивает высокую скорость и стабильность.

Какой протокол использует Vsftpd?

Vsftpd использует протокол FTP (File transfer protocol) для передачи данных, и он расшифровывается как «Очень безопасный FTP-демон

Является ли Vsftpd открытым исходным кодом?

Да, VSFTPD — это серверное приложение с открытым исходным кодом, лицензированное под GNU General Public License. Поэтому его исходный код доступен всем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *