- Как настроить FTP на Ubuntu 20.04 LTS
- Установка FTP-сервера
- Защита передачи данных при помощи SSL/TLS
- Настройка учётной записи FTP-пользователя
- Настройка брандмауэра
- Проверка подключения к FTP-серверу
- Устанавливаем и настраиваем FTP-сервер в Linux
- Устанавливаем vsFTPd
- Установка vsFTPd в другие операционные системы
- Настраиваем FTP-сервер
- Запуск FTP-сервера
- Настройка анонимного доступа
- Настройка авторизованного доступа
- Дополнительные настройки и возможности
- Управление FTP-сервером
- Настройки шифрования
- Настройка Firewall
Как настроить FTP на Ubuntu 20.04 LTS
FTP – это протокол, который позволяет передавать файлы по сети от одного узла другому. Данный протокол является самым старым протоколом прикладного уровня, который появился намного раньше, чем HTTP или TCP/IP. С помощью протокола FTP могут быть организованы соединения с удаленными серверами для просмотра и передачи необходимых данных. При подключении к серверам и рабочим станциям при помощи протокола FTP необходимо использовать специальные приложения, которые именуются FTP-клиентами. Далее о том, как настроить работу с протоколом FTP на сервере, работающем под управлением Ubuntu 20.04 LTS.
Для того чтобы развернуть свой FTP-сервер на Ubuntu 20.04 LTS, необходимо:
- установить FTP-сервер с поддержкой SSL для безопасного подключения;
- настроить учетную запись FTP-пользователя;
- проверить подключение к FTP-серверу.
Установка FTP-сервера
Как всегда при работе с Ubuntu необходимо произвести первоначальную настройку сервера в соответствии с посвящённой данной процедуре статье. Далее следует обновить списки пакетов:
После чего необходимо установить программу vsftpd :
По окончании установки можно убедиться, что сервис vsftpd уже успешно работает:
Далее необходимо произвести некоторые настройки в конфигурационном файле. Для этого откройте при помощи текстового редактора файл vsftpd.conf :
Вот те основные изменения, которые необходимо внести для корректной работы FTP-сервера:
listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_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
После внесения изменений в файл настроек необходимо сохранить их и перезапустить службу vsftpd :
$ sudo systemctl restart vsftpd
Защита передачи данных при помощи SSL/TLS
Для защиты передачи ваших данных между FTP-клиентом и FTP-сервером в данной инструкции мы будем использовать генерацию самозаверяющего SSL-сертификата. Закрытый ключ и сертификат будут сохранены в одном файле, для чего следует применить команду:
$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
После установки SSL-сертификата необходимо внести изменения в конфигурационный файл:
А именно, внесите изменения в следующие строки данного файла:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Настройка учётной записи FTP-пользователя
Для авторизации на FTP-сервере необходимо создать учетную запись пользователя. Изначально, подключаться к серверу можно и под локальным пользователем. Но более целесообразно для этих целей использовать специальную учётную запись. Для её создания используйте следующую команду:
Таким образом, у нас теперь есть пользователь ftpuser . Следующей командой нужно создать для него домашний каталог:
$ sudo mkhomedir_helper ftpuser
После этого для него необходимо создать пароль на вход:
Настройка брандмауэра
Если вы производили работы по первоначальной настройке виртуального сервера, то на нём должен быть запущен межсетевой экран UFW. Соответственно, для того, чтобы брандмауэр вашего VPS позволял осуществлять подключения, необходимо внести небольшие изменения в настройки UFW. Проще говоря, нужно будет добавить в брандмауэр исключения для TCP-портов 20 и 21. Делается это следующими командами:
$ sudo ufw allow 20/tcp $ sudo ufw allow 21/tcp
После чего брандмауэр следует перезапустить:
$ sudo ufw disable $ sudo ufw enable
И убедиться, что служба работает без ошибок:
Проверка подключения к FTP-серверу
Корректность произведённых настроек можно проверить через осуществление подключения к FTP-серверу. Для этой цели можно воспользоваться бесплатным FTP-клиентом FileZilla. После запуска приложения в FileZilla следует заполнить поля Хост и Имя пользователя . После нажатия кнопки Быстрое соединение система попросит ввести пароль учётной записи, под именем которой происходит подключение к FTP-серверу.
Подключение к серверу осуществлено успешно, значит произведенные настройки в конфигурационном файле корректны. В статусе подключения видно, что в данной сессии TLS соединение установлено , значит передача данных между клиентом и сервером шифруются.
Устанавливаем и настраиваем FTP-сервер в Linux
File Transfer Protocol — это технология передачи данных по сети. FTP уже не так популярен, как на заре интернета, но все еще используется. Причем в локальных сетях довольно часто, так как это простой способ организовать большое количество файлов и предоставить пользователям доступ к ним.
vsFTPd — это дополнительный инструмент, который расширяет возможности FTP-протокола. По сути, он является полноценным сервером, который используется в Linux по умолчанию, славится высокой надежностью и большим количество функций.
vsFTPd работает с виртуальными пользователями и IP-адресами. В нем есть возможность настраивать отдельные правила для пользователей. Продукт активно поддерживается сообществом. В этом инструменте есть возможность подключить SSL-шифрование данных и так далее.
Устанавливаем vsFTPd
vsFTPd есть во всех популярных репозиториях, поэтому его легко загрузить в любой дистрибутив. Вот как это делается в Ubuntu и ей подобных системах (Linux Mint, Debian, Elementary OS).
- Открываем терминал. Это можно сделать, одновременно нажав клавиши Ctrl + Alt + T.
- Вводим туда команду sudo apt-get install vsftpd и нажимаем клавишу «Ввод» (Enter).
Устанавливаем vsFTPd с помощью стандартного менеджера пакетов
Возможно, придется подтвердить установку клиента, нажав на клавишу «Д» (или Y в английской версии системы).
Учтите, что во время набора пароля, вводимые символы никак не отображаются в терминале. Придется набирать вслепую
Для тестирования соединения можно установить стандартный FTP-сервер. Чтобы это сделать, открываем терминал и вводим в него команду sudo apt-get install ftp.
Установка vsFTPd в другие операционные системы
В разных дистрибутивах используются разные менеджеры пакетов, поэтому придется скорректировать команду под свой вариант Linux. Например:
Для Fedora — sudo dnf install vsftpd, openSUSE — sudo zypper install vsftpd, CentOS — sudo yum install vsftpd, Arch Linux — pacman -S vsftpd, Gentoo — emege vsftpd.
Чтобы установить vsFTPd в дистрибутив, не указанный в списке, нужно выяснить, какой менеджер пакетов там используется и подставить его в команду sudo название менеджера пакетов install vsftpd. Либо найти исходный код утилиты и собрать его вручную локально.
Настраиваем FTP-сервер
Перед тем как начать настройку, можно ознакомиться с файлом-инструкцией. В vsFTPd встроено большое удобное руководство по базовой настройке и запуску сервера. Оно открывается командой man vsftpd.conf Это на тот случай, если вы дружите с английским и хотите провести более тонкую настройку под свои нужды. В ином случае продолжайте читать дальше…
Все параметры FTP-сервера хранятся в одном конфигурационном файле. Он называется vsftpd.conf и в зависимости от системы может храниться либо в папке /etc/vsftpd/, либо просто в /etc/.
Например, чтобы получить доступ к настройкам в CentOS, введем в терминале sudoedit /etc/vsftpd/vsftpd.conf. А в Debian и Ubuntu — sudoedit /etc/vsftpd.conf.
sudoedit — это запуск стандартного текстового редактора от имени администратора. При желании вы можете указать любой другой инструмент. Например, vi.
Запуск FTP-сервера
Вообще, vsFTPd запускается автоматически, и его работоспособность легко проверить. Просто открываем браузер и переходим по ссылке ftp://192.0.0.1. Это локальный адрес, на котором работает ваш сервер.
Вот как выглядит наш FTP-сервер в браузере
Чтобы запустить vsFTPd, нужно ввести в терминал команду systemctl start vsftpd.
Настройка анонимного доступа
Режим анонимного доступа позволяет подключаться к FTP-серверу без авторизации. Правда, подключиться к нему можно только от лица единственного пользователя (по умолчанию речь идет о пользователе ftp).
При этом автоматически устанавливается и папка, доступ к которой будет открыт через FTP-сервер. По умолчанию vsFTPd открывает доступ к директории /srv/ftp. Выбор падает именно на эту папку, потому что это домашняя директория пользователя ftp. Если ее изменить, то и данные на сервере тоже изменятся.
Чтобы включить анонимный доступ в vsFTPd, надо открыть конфигурационный файл, найти там директиву anonymous_enable=NO и заменить NO на YES.
Теперь вы можете сами подключиться к своему FTP-серверу и проверить, что он работает без авторизации.
Настройка авторизованного доступа
Режим авторизованного доступа дает больше возможностей. Пока он включен, к FTP-серверу может подключиться любой пользователь, который может войти в систему. Проще говоря, если удаленным компьютером на базе Linux пользуется группа людей, то все они смогут подключаться к FTP-серверу от своего имени, а не от имени ftp.
Включается этот режим довольно просто.
- Открываем конфигурационный файл.
- Ищем внутри директиву local_enable=NO_ и меняем NO на YES.
- Потом то же самое делаем с директивой write_enable=NO (это чтобы люди могли не только скачивать файлы, но и загружать).
Теперь при попытке войти на FTP-сервер пользователи натолкнутся на окошко, запрашивающее логин и пароль. Собственно, логин — имя пользователя, а пароль — тот пароль, что используется для входа в систему.
Важно отметить, что любые изменения в файле vsftpd.conf вступают в силу только после перезагрузки сервера. Поэтому не забывайте после внесения корректировок перезагружать vsFTPd командой systemctl restart vsftpd. Для этого нужны будут права администратора, запустившего FTP-сервер или права суперпользователя.
Дополнительные настройки и возможности
Теперь, когда у нас уже есть рабочий FTP-сервер, можно ознакомиться с дополнительными параметрами. Во-первых, узнаем команды для управления сервером. Во-вторых, настроим шифрование. В-третьих, уберем блокировку Firewall, если таковая имеется.
Управление FTP-сервером
Вообще для работы с vsFTPd достаточно пары команды:
- Чтобы проверить статус FTP-сервера (включен ли он и как работает), используем команду systemctl status vsftpd (или service vsftpd status)
Вот что выдается по запросу systemctl status vsftpd
- Для запуска команду systemctl start vsftpd (или service vsftpd start).
- Для перезапуска — systemctl restart vsftpd (или service vsftpd restart).
- Чтобы выключить сервер, используем systemctl stop vsftpd(или __ service vsftpd stop). Чтобы добавить vsFTPd в автозагрузку (то есть заставить FTP-сервер запускаться вместе с системой), вводим в терминал команду systemctl enable vsftpd__ (или service vsftpd enable).
Вот как это выглядит на практике
Все действия с vsFTPd нужно подтверждать паролем суперпользователя или администратора.
Вот такой запрос будет появляться при попытке взаимодействовать с vsFTPd
Настройки шифрования
Включить шифрование данных в vsFTPd не сложно. Просто:
- Открываем конфигурационный файл командой sudoedit /etc/vsftpd/vsftpd.conf.
- Ищем внутри директиву ssl_enable=NO_.
- Заменяем NO на YES.
Сложность заключается в том, что нужно сгенерировать SSL-ключи и сертификаты для конкретного сервера и разместить их в директориях, которые указаны в параметрах vsFTPd (либо указать путь к другим сертификатам и ключу). Речь идет о строках:
Настройка Firewall
В некоторых дистрибутивах (в частности, серверных) работает Firewall. Это механизм защиты от несанкционированных входящих и исходящих подключений. Он обычно блокирует некоторые порты, по которым программы подключаются к удаленному ресурсу, чтобы избежать утечки данных.
В Ubuntu, к примеру, используется Firewall ufw, который по умолчанию блокирует подключение к портам 21 и 20. А без них FTP-сервер запустить не получится. Так что придется их сначала разрешить. Для этого:
- Открываем терминал.
- Вводим в него команду sudo ufw disable, чтобы выключить Firewall.
- Затем снова включаем его командой sudo ufw enable.
Перезагрузимся перед настройкой
- Потом добавляем в список исключений подключение по порту 20. Для этого введем в командную строку sudo ufw allow 20/tcp.
Потом снова перезагружаем Firewall и FTP-сервер.