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

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

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

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

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

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

$ sudo apt update

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

$ sudo apt install vsftpd

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

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

$ vsftpd -v

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

$ sudo systemctl status vsftpd

Проверка состояние сервера 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
Настройка анонимного FTP-доступа для vsftpd

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

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

Разрешить локальным пользователям входить на сервер Vsftpd
Разрешить локальным пользователям входить на сервер 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 Включить команду записи и чтения 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 - сервере
Уведомление о небезопасном 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
Включить TLS/SSL для Vsftpd

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

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

Теперь вам нужно будет создать закрытый ключ и сгенерировать сертификат TLS/SSL с помощью openssl. Вы можете использовать бесплатный SSL-сертификат Let’s 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
Безопасное FTP соединение по протоколу TLS

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

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

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

$ ftp 192.168.100.168

Ошибка FTP без TLS
Ошибка FTP без TLS

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

Заключение

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

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

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