Установка и Настройка Vsftpd с SSL/TLS на Ubuntu 20.04

Vsftpd (Very Secure FTP daemon) это программное обеспечение FTP-сервера для Linux и других Unix подобных систем. Программное обеспечение FTP сервера облегчает передачу файлов с клиентского компьютера на сервер и наоборот.

В этой инструкции вы узнаете, как установить Vsftpd на Ubuntu 20.04, а так же как включить безопасную передачу файлов (FTPS) через SSL/TLS.

Требования к установке

  • Система Ubuntu 20.04 Linux
  • Пользователь с правами sudo
  • FTP-клиент с поддержкой SSL, такой как FileZilla

Установка Vsftpd на Ubuntu

Vsftpd доступен в репозитории пакетов Ubuntu по умолчанию. Вы можете начать с обновления доступных пакетов. Делается это с помощью следующей команды.

$ sudo apt update

Затем выполните следующую команду для того чтоб установить Vsftpd.

$ sudo apt install vsftpd

Введите Y, если вам будет предложено продолжить установку.

После успешной установки Vsftpd вы можете проверить версию с помощью приведенной ниже команды.

$ vsftpd -v

Кроме того, проверьте состояние сервера Vsftpd, сделать это можно следующим образом.

$ sudo systemctl status vsftpd

Проверка состояние сервера Vsftpd

Служба vsftpd уже должна быть активна. Нажмите кнопку q, чтобы вернуться в командную строку.

Если служба vsftpd еще не активна, вы можете запустить ее с помощью следующей команды.

$ sudo systemctl start vsftpd

Настройка Vsftpd

Есть много вариантов, которые вы можете настроить для vsftpd, но в этой инструкции мы рассмотрим только основы. Откройте файл конфигурации vsftpd с помощью следующей команды.

$ sudo nano /etc/vsftpd.conf

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

Настройка анонимного FTP-доступа

По умолчанию анонимный FTP отключен. Мы рекомендуем оставить этот параметр по умолчанию как есть. Однако если по какой-либо причине вы хотите включить анонимный FTP-доступ, например для тестирования, измените значение параметра anonymous_enable с NO На YES.

А пока оставь все как есть.

Настройка анонимного FTP-доступа для vsftpd

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

По умолчанию локальным пользователям разрешен вход в систему. Если вы хотите запретить локальным пользователям входить на сервер Vsftpd, измените значение local_enable с YES на NO.

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

Вы также можете разрешить только определенным локальным пользователям входить на сервер Vsftpd. Для этого убедитесь, что local_enable имеет значение YES.

После этого добавьте следующие строки внизу.

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

Сохраните и закройте файл vsftpd.conf.

Далее создайте файл userlist со следующей командой и введите разрешенных пользователей по одному на строку.

$ sudo nano /etc/vsftpd.userlist

Сохраните и закройте файл userlist.

Перезагрузите vsftpd с помощью:

$ sudo systemctl restart vsftpd

Включить команду записи FTP

Чтобы разрешить пользователям FTP создавать, удалять, переименовывать и сохранять файлы, раскомментируйте параметр write_enable и убедитесь, что он установлен в значение YES.

Vsftpd Включить команду записи и чтения FTP

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

Вход на сервер Vsftpd

Для этого создадим тестового пользователя и назначим пароль следующим образом.

$ sudo useradd -m myftpuser $ sudo passwd myftpuser

Примечание: Если вы включили список пользователей vsftpd ранее, не забудьте добавить пользователя ftp в /etc/vsftpd.userlist . По умолчанию пользователи имеют ssh-доступ, рекомендуется отключить shell-доступ для FTP-пользователей.

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

В моем случае FileZilla уведомила, что сервер небезопасен, так как он не поддерживает FTP через TLS.

Уведомление о небезопасном FTP сервере

Отмените соединение. Давайте исправим это в следующем разделе.

Включите SSL/TLS для безопасной передачи файлов

Чтобы включить безопасную передачу файлов по протоколу TLS, выполните следующие действия.

Во-первых, откройте конфигурационный файл vsftpd с помощью приведенной ниже команды.

$ sudo nano /etc/vsftpd.conf

Затем найдите параметры rsa_cert_file и rsa_private_key_file и обновите значения, как показано ниже.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.key

Кроме того, найдите строку ssl_enable и измените значение на YES.

ssl_enable=YES

Включить TLS/SSL для Vsftpd

Сохраните и закройте файл конфигурации vsftpd.

Создать закрытый ключ и сертификат

Теперь вам нужно будет создать закрытый ключ и сгенерировать сертификат TLS/SSL с помощью openssl. Вы можете использовать бесплатный SSL-сертификат Lets Encrypt, если у вас есть домен, указывающий на FTP-сервер.

Чтобы сгенерировать закрытый ключ, выполните команду:

$ sudo openssl genrsa -out /etc/ssl/private/vsftpd.key

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

$ sudo openssl req -new -key /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.csr

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

$ sudo openssl x509 -req -days 365 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

Перезагрузите vsftpd с помощью:

$ sudo systemctl restart vsftpd

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

Безопасное FTP соединение по протоколу TLS

Конечно, на этот раз FileZilla смогла безопасно подключиться через TLS. Вы можете смело выбрать вариант, чтобы всегда доверять этому сертификату в будущих сеансах. Затем нажмите кнопку ОК, чтобы продолжить подключение.

Доверительный самозаверяющий сертификат

Если вы попытаетесь подключиться к FTP-серверу через командную строку, которая не поддерживает FTP через TLS, вы получите сообщение об ошибке. Например:

$ ftp 192.168.100.168

Ошибка FTP без TLS

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

Заключение

В этой инструкции мы показали вам, как установить сервер Vsftpd на Ubuntu 20.04. Мы также показали, как включить безопасную передачу файлов по протоколу TLS. Мы рассмотрели только основные параметры Vsftpd в этой статье, но вы можете изучить дополнительные параметры на странице руководства параметры конфигурации vsftpd.

Оцените статью
Установка и настройка популярных программ на Windows, Linux и другие операционные системы