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 уже должна быть активна. Нажмите кнопку q, чтобы вернуться в командную строку.
Если служба vsftpd еще не активна, вы можете запустить ее с помощью следующей команды.
$ sudo systemctl start vsftpd
Настройка Vsftpd
Есть много вариантов, которые вы можете настроить для vsftpd, но в этой инструкции мы рассмотрим только основы. Откройте файл конфигурации vsftpd с помощью следующей команды.
$ sudo nano /etc/vsftpd.conf
Вы увидите, что различные параметры vsftpd хорошо описаны в конфигурационном файле. Вам нужно только прочитать инструкции, чтобы понять, что вы хотите включить или отключить. Ниже приведено несколько примеров.
Настройка анонимного FTP-доступа
По умолчанию анонимный FTP отключен. Мы рекомендуем оставить этот параметр по умолчанию как есть. Однако если по какой-либо причине вы хотите включить анонимный FTP-доступ, например для тестирования, измените значение параметра anonymous_enable с NO На YES.
А пока оставь все как есть.
Разрешить локальным пользователям входить в систему
По умолчанию локальным пользователям разрешен вход в систему. Если вы хотите запретить локальным пользователям входить на сервер Vsftpd, измените значение local_enable с YES на NO.
Вы также можете разрешить только определенным локальным пользователям входить на сервер 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 и убедимся в том, что он работает. А пока сохраните все изменения и закройте конфигурационный файл vsftpd.
Вход на сервер Vsftpd
Для этого создадим тестового пользователя и назначим пароль следующим образом.
$ sudo useradd -m myftpuser
$ sudo passwd myftpuser
Примечание: Если вы включили список пользователей vsftpd ранее, не забудьте добавить пользователя ftp в /etc/vsftpd.userlist . По умолчанию пользователи имеют ssh-доступ, рекомендуется отключить shell-доступ для FTP-пользователей.
Теперь запустите FTP-клиент с поддержкой SSL, такой как FileZilla, а затем войдите в систему с помощью вновь созданного тестового пользователя.
В моем случае FileZilla уведомила, что сервер небезопасен, так как он не поддерживает FTP через TLS.
Отмените соединение. Давайте исправим это в следующем разделе.
Включите 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
Сохраните и закройте файл конфигурации 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.
Конечно, на этот раз FileZilla смогла безопасно подключиться через TLS. Вы можете смело выбрать вариант, чтобы всегда доверять этому сертификату в будущих сеансах. Затем нажмите кнопку ОК, чтобы продолжить подключение.
Если вы попытаетесь подключиться к FTP-серверу через командную строку, которая не поддерживает FTP через TLS, вы получите сообщение об ошибке. Например:
$ ftp 192.168.100.168
Это еще одно доказательство того, что ваш сервер Vsftpd включен для безопасной передачи файлов по протоколу TLS.
Заключение
В этой инструкции мы показали вам, как установить сервер Vsftpd на Ubuntu 20.04. Мы также показали, как включить безопасную передачу файлов по протоколу TLS. Мы рассмотрели только основные параметры Vsftpd в этой статье, но вы можете изучить дополнительные параметры на странице руководства параметры конфигурации vsftpd.