Как известно, FTP – это протокол, который позволяет передавать файлы по сети от одного узла другом. Это самый старый протокол прикладного уровня, который появился намного раньше HTTP и TCP/IP. С помощью протокола FTP организовываются подключения к удаленным серверам для просмотра и передачи необходимой информации. Для подключения к серверам, либо компьютерам протоколу FTP необходимо использовать специальные приложения, которые именуются FTP-клиентами. Далее расскажем, как настроить FTP на Ubuntu 20.04 LTS.
Для того чтобы развернуть свой FTP-сервер на Ubuntu 20.04 LTS, необходимо:
- Установить FTP-сервер с поддержкой SSL для безопасного подключения;
- Настроить учетную запись для FTP-пользователя;
- Проверить подключение к FTP-серверу.
Установка сервера-FTP
В данной статье, для организации FTP-сервера, за основу выбрана операционная система Ubuntu 20.04 LTS. Обновимся и установим из официального репозитория пакет vsftpd
:
$ sudo apt update && apt install vsftpd
Наш сервер уже успешно работает. В этом можно убедиться используя следующую команду:
$ systemctl status vsftpd
После успешной установки, произведем некоторые настройки в конфигурационном файле. Откроем текстовым редактором файл vsftpd.conf
:
$ sudo nano /etc/vsftpd.conf
Вот те основные изменения, которые необходимо внести для корректной работы сервера:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
allow_writeable_chroot=YES
После внесенных настроек- в конфигурационном файле, сохраняем изменения и перезапускаем сервер:
$ sudo systemctl restart vsftpd
На основании сертификатов SSL организуем безопасный, шифрованный режим передачи информации между клиентом и сервером. Команда ниже создает самозаверяющие цифровые сертификаты, подписанные самим сервером. После генерации, используем файлы сертификатов в работе сервера FTP:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Внесем некоторые изменения в конфигурационный файл vsftpd.conf
. Изменим строки в соответствии с рисунком ниже:
Здесь мы указали путь к созданным файлам сертификатов, которые были созданы ранее.
Настройка учетной записи FTP-пользователя
Создадим учетную запись пользователя, которой будем осуществлять подключение к созданному серверу FTP. Изначально, авторизоваться на сервере можно под локальным пользователем. Но мы для этих целей будем использовать отдельно созданную учётную запись. Создадим пользователя следующей командой:
$ sudo useradd ftpuser -d /home/ftpuser -s /bin/false -m
Таким образом, этой командой мы создали пользователя ftpuser
. Его домашняя директория – /home/ftpuser/
и для него запрещен локальный доступ в систему. Добавим в файл разрешенных оболочек следующую строку:
/bin/false
Создадим пароль на вход для пользователя следующей командой:
$ passwd ftpuser
Проверка подключения к FTP-серверу
Проверим правильность настроек и осуществим первое подключение к FTP-сервер. Для соединения с сервером воспользуемся бесплатным FTP-клиентом FileZilla. После запуска программы заполним поля адрес сервера/имя пользователя/ пароль. Для авторизации будем использовать учетную запись ftpuser
.
Подключение к серверу успешно, значит произведенные настройки в конфигурационном файле верны. В статусе подключения видно, что в данной сессии инициализирован TLS, значит передача данных между клиентом и сервером шифруются.