Что такое FTP-протокол

Протокол передачи данных — набор соглашений, который устанавливает порядок для обмена данными между разными программами. Примеры известных сетевых протоколов:

  • HTTP — применяется для передачи данных о веб-страницах в интернете. Посмотрите в строку браузера: перед названием любого сайта вы найдете «https://» или «http://».
  • POP3 (Post Office Protocol) — протокол почтового соединения, используемый для обработки запросов на прием почты от клиентских почтовых программ.
  • SMTP (Simple Mail Transfer Protocol) — протокол, который задействуется для передачи почты.

FTP-протокол — это протокол, который позволяет взаимодействовать с файлами и папками (дает возможность их удалять/загружать/перезаписывать) на специальном файловом сервере с локального устройства пользователя.

Определение

Сначала давайте разберёмся, что такое FTP сервер. FTP (file transfer protocol протокол передачи файлов) – это протокол, обеспечивающий удалённую передачу данных по сети интернет. Он построен на клиенте серверной архитектуры и использует разные каналы для обмена командами и данными. При этом для передачи используется одно соединение, которое стандартно устанавливается через 21 TCP-порт.

Каналов для обмена данными может быть несколько, поэтому во время одного сеанса можно одновременно передавать и принимать файлы. Для каждого канала, используемого для обмена данными, открывается отдельный TCP-порт.

Применение и принцип работы

При подключении к FTP клиент и сервер создают сессию, которая остаётся активной на протяжении всего сеанса обмена файлами.

Существуют два режима работы данного протокола:

  • В активном режиме клиент подключается к серверу и передаёт ему свой IP-адрес и порт, через который будет обмениваться данными. Сервер подключается к заданному узлу и начинается обмен данными.
  • Пассивный режим применяется в том случае, когда клиент защищён сетевым экраном и не может принять входящее подключение. В этом клиент отправляет специальную команду, в ответ на которую сервер шлёт свой IP-адрес и TCP-порт. После этого клиент устанавливает сеанс связи с сервером и начинается обмен информацией.

схема

Обмен данными может осуществляться в одном из режимов:

  • в поточном режиме данные передаются сплошным потоком, протокол её не обрабатывает;
  • при передаче в блочном режиме протокол делит передаваемые данные на блоки, в каждый из которых входит заголовок, размер и информация.

Аутентификация клиента происходит по следующей схеме, сначала клиент отсылает логин и пароль пользователя, на сервере эта информация проверяется и если пользователь с данным логином и паролём существует, то соединение устанавливается. Кроме этого можно настроить анонимный доступ к FTP.

Функции FTP

Для работы с протоколом используют стандартные UNIX-команды. С их полным перечнем можно ознакомиться, набрав в специальной строке «help» или «?». Наиболее часто используются следующие команды:

  • open – устанавливает связь с FTP-сайтом. Применяется при обращении к разным серверам во время одного сеанса работы. Требует предварительного закрытия предыдущей FTP-площадки командой close;
  • user – используется для повторного ввода имени и пароля пользователя для аутентификации. Функция необходима в тех случаях, когда удаленная машина допускает пользователей с определенными параметрами;
  • bye или quit – используется параллельно с close, закрывает все связи и завершает выполнение программы;
  • remotehelp – открывает справочную информацию по командам, которые поддерживает удаленный FTP-сервер.

При работе с функциями необходимо придерживаться следующих правил:

  • использовать символ «/» для разделения каталогов;
  • следить за употреблением строчных и прописных букв (важен регистр);
  • использовать префиксы, которые начинаются с точки (опционально).

Команды и чаще всего вспомогательные программы для FTP-соединений позволяют загружать на сервер файлы с компьютера и в обратном направлении, а также менять права доступа к отдельным объектам.

Взаимодействие между Клиентом и Сервером по ФТП

Перед тем, как продолжить, необходимо определиться с еще некоторыми терминами, которые будут совсем не лишними для восприятия картины в целом.

FTP server — это сервер, который предусматривает возможность использования протокола передачи файлов. Он обладает определенными особенностями, отличающими его от обычных вэбсерверов, а именно теми, которые в основном также присущи одноименному протоколу и представлены в табличке выше:

  • необходима аутентификация пользователей (ввод логина и пароля);
  • все операции производятся в рамках текущей сессии;
  • возможность осуществления различных действий: загрузка и выгрузка файлов, их переименование и удаление, создание и удаление каталогов и т.д.;
  • применяется отдельный канал для каждого соединения;
  • поддерживается два варианта передачи: текстовый и двоичный (бинарный), что позволяет передавать файлы различного размера;

Ярким примером ФТП-сервера может служить server хостинга (что означает этот термин), на котором «живет» сайт. Эта информация для вебмастеров не является тайной за семью печатями, но вот тем, кто только планирует заняться сайтостроением, будет как раз к месту.

FTP client — это программа, позволяющая подключиться к удаленному серверу по ФТП и также выполнять на нем необходимые действия с элементами файловой системы. К слову, клиентом вполне может быть браузер, в адресную строку которого следует ввести урл, представляющий собой путь (c протоколом FTP) до определенного каталога или файла на удаленном сервере, в соответствии с общей блок-схемой URL:

ftp://login:password@goldbusinessnet.com/images/file-1.jpg

Или применить более сложный вариант, ежели используется порт, отличный от 21:

ftp://login:password@goldbusinessnet.com:35/images/file-1.jpg

Однако же, использование веб-обозревателя в таком разрезе позволит лишь просмотреть или скачать интересующие файлы. Для того, чтобы в полной мере задействовать все плюсы FTP, в качестве клиента следует применить специализированный софт наподобие Файлзиллы ( даны все нужные инструкции по установке, настройке и работе с данной программойв этом мануале ):

Чтобы подключиться через уже настроенный клиент FileZilla к удаленному серверу, необходимо ввести название хоста, в качестве которого используется IP-адрес сайта, соответствующий его домену (что такое доменное имя и как его приобрести), имя пользователя, пароль и порт.

Кстати, в статье о Файлзилле дана не только стандартная информация, но и практические советы по устранению ее уязвимости в плане безопасности (несмотря на кучу плюсов, проблемы такого рода у ней есть, впрочем, как и у других программ подобного профиля), поэтому настоятельно рекомендую прочитать этот материал, перейдя по чуть выше предоставленной ссылке.

Но продолжим. Схематически взаимодействие «клиент-сервер» при ФТП-соединении можно наглядно представить следующим образом:

Если расписать этот процесс по пунктам, то получится примерно следующее:

  1. Пользователь активирует клиентское приложение и соединяется с сервером, введя логин и пароль.
  2. Устанавливается управляющее соединение между соответствующими модулями — интерпретаторами протокола со стороны клиента и сервера.
  3. Пользователь посредством клиента посылает команды серверу, определяющие различные параметры FTP-соединения (активный или пассивный режим, порт, вид передачи данных, их тип), а также директивы для действий, которые юзер намерен осуществить (например, удалить, переименовать, закачать файл и т.д.).
  4. После того, как установлены все необходимые параметры, один из участников (к примеру, клиент), являющийся пассивным, становится в режим ожидания открытия соединения на порт, который задан для передачи информации. Затем активный участник открывает соединение и начинает передавать данные по предназначенному для этого каналу.
  5. По завершении передачи это соединение закрывается, но управляющий канал между интерпретаторами остается открытым, вследствие чего пользователь в рамках той же сессии может вновь открыть передачу данных.

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

Однако, в интернете довольно много бесплатных ФТП-серверов, по сути являющихся библиотеками разного рода файлов, которые предназначены для хранения и скачивания текстовых документов, музыки, фото, видео, дистрибутивов программ и т.п.

В этом случае зарегистрированный пользователь после авторизации имеет весьма ограниченный доступ к определенным каталогам и может осуществлять только лишь некоторые установленные операции с их содержимым (скажем, просматривать и скачивать файлики).

Кроме стандартного соединения с сервером, предусматривающего ввод данных аутентификации, существует понятие анонимного FTP, когда любой пользователь может подключиться к серверу без предоставления персональных данных. Если при этом использовать браузер в качестве клиента, то адрес доступа к файлу может быть упрощен и представлен так:

ftp://goldbusinessnet.com/images/file-1.jpg

На практике при анонимном ФТП обычно в качестве логина для доступа применяется известное в сети слово «anonymous», а в качестве пароля — адрес электронной почты, который, впрочем, в большинстве случаев не проверяется.

В чем смысл вообще

Ну и казалось бы — что мешает передавать файлы, как обычно, через сайты по протоколу HTTP? Полно же сайтов и форумов, на которых лежат файлы, и их можно спокойно скачать.

А разница вот в чем:

  • Для FTP не нужен сайт, то есть веб-интерфейс. Не нужно запускать веб-сервер, настраивать шаблоны вывода списка файлов и поднимать отдельную программу, которая будет нам отдавать эти файлы (типа Вордпресса). FTP — это как доступ к удаленной папке: ты сразу видишь файлы и можешь их качать, без посредников. А в вебе нужна какая-то программа, которая «нарисует» тебе файловую систему и поставит ссылки на файлы.
  • В FTP уже реализованы вопросы авторизации и прав. А в вебе их нужно создавать: например, ставить тот же Вордпресс и к нему прикручивать плагины с системой доступа. Или настраивать Apache, генерировать ключи доступа, раскладывать конфигурационные файлы по папкам — это гораздо менее элегантно, чем настройка FTP.
  • В FTP можно разрешить или запретить отдельным пользователям загружать файлы на FTP-сервер. В вебе загрузка файлов от пользователя на сервер — это на порядок более сложная задача.

Особенности FTP сервера

Более подробно рассмотрим технические аспекты и расскажем, что такое ftp сервер и как он работает.

Главная функция FTP — передача файлов.

Помимо заливки и выгрузки информации, доступны различные команды, с помощью которых можно управлять файлами и каталогами:

  1. Требуется аутентификация.
  2. Наличие выделенного канала для каждого соединения.
  3. Поддержка 2-х режимов передачи данных: текста и бинарного (в двоичной системе). Второй вариант сокращает время и трафик.
  4. Использование множественного подключения как минимум двуканального. Через один передаются команды управления и возвращаются обработанные ответы. С помощью других осуществляется файловая передача из расчета выделенный канал на каждую.

Преимущества и недостатки FTP — серверов

Главное преимущество использования FTP-серверов — это простота и удобство «заливки» нового файла на сервер или редактирования уже имеющихся, которые достаточно просто скачать а потом загрузить обратно.

Также у FTP-серверов есть и свои минусы. Эти серверы не имеют систем проверки источника подлинности пакета отправки информации, что делает их крайне уязвимыми к различных хакерским атакам (например, DDoS). Кроме того, причиной повреждения таких серверов — а вместе с ними и ПК пользователей — могут стать технические неполадки. Поэтому секретные и конфиденциальные данные на таких серверах лучше не хранить.

Как можно создать сервер FTP

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

В операционных системах, похожих на Linux, создать сервер можно прямо из терминала. Это очень легко, и после первого раза вы быстро освоите этот навык. Для создания такого сервера в Linux и в подобных операционных системах используется сервис VSFTPD. Это тот же протокол FTP, только с некоторыми особенностями, которые в работе вам абсолютно не помешают. Для начала вам нужно будет зайти в командную строку и через консоль ввести команду для установки сервиса VSFTPD: sudo apt-get install vsftpd. После этого вы сможете управлять папками и правами на них через тот же консоль. Чтобы узнать дополнительные возможности, пропишите в терминале строку man 5 vsftpd.conf для вызова мануала.

Настройка сервера в операционной системе Linux и подобных OC при помощи сервиса VSFTPD проходит внутри файла vsftpd.conf. Он располагается в файловой системе компьютера в папке ETC. Найдите его и откройте при помощи текстового редактора. Внутри вы обнаружите множество строчек. Те, которые начинаются с решетки #, считаются закомментированными, потому не активны и на конфигурации сервера никак не влияют. Над каждой функциональный строкой есть пояснение на английском. Там вы найдете и строки для добавления анонимных пользователей, для изменения способа авторизации, корректировки уровня доступа для юзеров, создания бан-листа и др. Не забудьте прежде почитать мануал и определиться с тем, для каких целей вам нужен сервер.

В Windows и вовсе можно сгенерировать сервер и сделать его онлайн при помощи стандартных возможностей операционной системы. Такое возможно благодаря тому, что Windows размещает множество служб в ОС по умолчанию, но не всех их активирует. Так что вы сможете создать сервер полностью free, даже не придется заходить в браузер, чтобы через него что-либо скачивать.

Итак, чтобы у вас был сервер, у которого есть свой адрес, и на который пользователи могут заходить и через клиент, и через браузер, вам нужно активировать некоторые компоненты Windows. Эта опция находится в “Панели управления” внутри вкладки “Программы и компоненты”. В левом боковом меню вы найдете пункт для включения различных компонентов. Вам нужно активировать службы IIS, в том числе ФТП сервер и другие компоненты внутри папки IIS. После того, как добавите компоненты, они активируются в разделе “Администрирование”. Вам нужно найти “Диспетчер служб IIS” и запустить его. Внутри диспетчера вы сможете добавить новый FTP-сайт. У него будет свой адрес, по какому пользователи и смогут подключиться к вашему серверу.

Учтите, что вам нужно будет не только указать адрес, но и создать пользователей для сервера. По-другому они не смогут получить доступ к вашему удаленному ПК и к его файловой системе. Вам нужно создать сначала группу пользователей, потом отдельного пользователя, а уже затем назначить всей группе права для корневого каталога сервера. Затем, вбивая адрес, они смогут зайти к вам на сервер через браузер или клиент. Но может возникнуть еще одна проблема – они не смогут получить доступ, если у вас не настроен брандмауэр. Вам нужно активировать внешний и исходящий трафик для FTP, то есть включить такие правила внутри настроек брандмауэра.

Настройка FTP

В первую очередь следует получить доступ от FTP-сервера, что можно сделать в настройках хостинга. На примере Timeweb в панели управления потребуется перейти во вкладку «Пользователи ПУ/FTP».

ftp.png

  • Не удается подключиться к прокси серверу — как локализовать и устранить ошибку

Нажимаем на «Добавить нового пользователя».

nastrojka_ftp.png

В появившемся окне следует заполнить:

  • Логин. Префикс логина выдается сразу, следует закончить его;
  • Пароль;
  • Комментарий. Позволяет написать кому выдан доступ;
  • Настройка прав. Здесь потребуется выбрать нужные права доступа.

kak_nastroit_ftp.png

Для того, чтобы подключить компьютер к удаленному управлению достаточно скачать FileZilla Server пройдя по ссылке https://filezilla-project.org/download.php?type=server.

Далее устанавливается ПО и уже осуществляются настройки:

  • Server Address. Сюда следует ввести IP-адрес нужного сервера;
  • Port. Как правило, выдается при создании доступа для удаленного управления.
  • Administration password. Пароль от данного ПК.
  • Галка на настройке «Always connect to this server». Позволяет сразу же подключаться к выбранному устройству сразу при запуске программы.

zapusk_programy.png

После этого можно получить полный доступ к управлению файлами.

Как подключиться к FTP-серверу

Как подключиться к FTP-серверу

FTP (File Transfer Protocol) представляет собой протокол удаленной передачи файлов. С его помощью можно загрузить на сервер и скачивать с него же данные любого типа и размера, создавать или удалять файлы и папки.

В Windows, Linux и macOS подключиться к FTP-серверу можно с помощью встроенных средств и сторонних программ разного назначения. Полноценная работа со всеми средствами возможна только через специальные приложения, называемые FTP-клиентами. Теперь подробнее расскажем обо всех этих способах.

Данные для доступа к FTP-серверу

При подключении к FTP-серверу очень важно вводить правильные данные. Возьмем в качестве примера Timeweb. После регистрации на почту приходят два письма. Письмо с данными выглядит вот так:

Данные для FTP в электронном письме

Теперь о том, какие данные необходимо иметь под рукой:

  • логин,
  • пароль,
  • ссылка на FTP-сервер (указывается в том же письме),
  • порт (по умолчанию устанавливается значение 21).

Как подключится к FTP через Проводник Windows

Сначала рассмотрим, как подключиться к FTP-серверу через программу «Проводник» в Windows 10. Здесь ничего дополнительно устанавливать не надо, просто открываем системный файловый менеджер. В левой панели находим значок «Этот компьютер» и жмем по нему правой кнопкой мыши для вывода контекстного меню. В списке выбираем элемент «Добавить новый элемент в сетевое окружение».

Подключение к FTP-хосту через Проводник Windows

В результате откроется окно мастера добавления сетевого расположения. В начальном окне просто нажимаем «Далее».

Как добавить сетевое расположение через Проводник Windows

Следом надо выбрать его дальнейшее местоположение, но в этом окне нам доступен только один вариант. Для продолжения снова нажимаем на кнопку «Далее».

Выбор в меню типа сетевого расположения

В этом окне понадобится указать ссылку на сетевой ресурс, к которому планируется провести подсоединение. Важно соблюдать предписанный формат (чуть ниже есть несколько примеров). В поле вводим адрес/ссылку и вновь идем дальше.  

Набор сетевого адреса или ссылки на FTP-ресурс

Теперь понадобится ввести в поле имя пользователя. Пароль заранее вводить не нужно, он будет запрашиваться только при подключении. Если на вашем хосте есть такая возможность, вход можно осуществить анонимно, отметив соответствующую галочку.

Ввод данных для входа в интерфейс FTP сервера 

В самом конце даем название новому сетевому окружению.

Ввод наименования для создаваемого ярлыка

На этом настройка завершена. При необходимости можно поставить галочку, чтобы сразу после нажатия на кнопку «Готово» открыть указанный сервер и приступить к работе.

Подтверждение данных и завершение настройки соединения с FTP 

Новое подключение теперь находится в «Сетевых расположениях» в разделе «Этот компьютер».

Новое сетевое расположение для соединения с FTP-хостом

Теперь подключаемся – открываем только что созданное соединение. Открывается маленькое окошко, где мы вводим пароль, затем жмем на кнопку «Вход».

Ввод имени пользователя и пароля для подключения

Если все данные введены успешно, откроется папка сервера. Можно приступать к работе.

Удачное подключение к FTP-серверу

FTP-подключение через любой браузер

Подключиться к FTP-серверу можно и через браузер на любых операционных системах. В таком случае будет доступна лишь часть функций. Необходимо ввести в адресной строке IP-адрес хоста, только с добавлением приставки «ftp://». Нажимаем на клавишу Enter. Дальше потребуется ввести имя пользователя и пароль, а потом нажать на кнопку «Вход».

Ввод логина и пароля для доступа к FTP-ресурсу через браузер

Подключение через командную строку Windows

Теперь расскажу, как подключиться к FTP-серверу в Windows с помощью командной строки. Этот способ многим может показаться не очень удобным, потому что вручную придется вбивать команды на загрузку документов, открытие папок и их скачивание. А для входа следуем указанной ниже последовательности.

  1.     Вводим команду ftp и жмем на клавишу Enter для подтверждения.
  2.     Задаем команду open наименование_ftp_хоста.
  3.     Вводим логин пользователя. Можно осуществить анонимный вход, просто введя Anonymous.
  4.     Вбиваем пароль. В случае с анонимом оставляем это поле пустым и жмем снова Enter.

Как подключиться к FTP-серверу с помощью командной строки Windows
Теперь подробнее по командам:

  •       dir – просмотр содержимого сервера.
  •       cd «имя_папки» – открытие указанной папки.
  •       put «путь_к_файлу» – загрузка этого документа с компьютера на сервер.
  •       get «наименование_файла.формат» – скачивание с хоста на компьютер.
  •       quit – отключение от FTP-сервера.

Подключение к FTP через FileZilla

Для того, чтобы подключиться к FTP потребуется скачать программное обеспечение FileZilla, после чего установить и открыть его.

В открывшемся окне в заполняем следующие поля:

  • Хост. Как правило IP адрес сервера или же имеет вид u123456;
  • Имя пользователя;
  • Пароль;
  • Порт (если есть).

После кликаем на «Быстрое соединение».

Каталог открыт и можно скачивать или передавать файлы.

Через Total Commander

В случае с Total Commander понадобиться скачать и открыть его. После чего открыть вкладку «Сеть»-«Соединение с FTP-сервером».

Нажимаем на «Добавить».

Далее вводим:

  • Имя;
  • Сервер;
  • Учетная запись;
  • Пароль.

Теперь необходимо подключиться к созданному соединению.

Подключение с помощью терминала в Linux-системах

Подключиться к FTP-серверу в ОС семейства Linux можно несколькими способами: поставить Midnight Commander и работать через него, смонтировать FTP-каталог и работать в ней, как в обычной папке и т. п.

Но мы рассмотрим самый простой способ, не требующий никаких дополнительных телодвижений, – используем стандартный клиент FTP, который встроен в обычный терминал Linux. Чтобы запустить его, достаточно ввести команду «ftp», а на следующей строке – «open» и адрес хоста, к которому мы подключаемся.

Далее терминал запросит логин и пароль – вводим их. После этого мы подключены к FTP и можно работать. Конечно же, здесь все делается командами в терминале, например:

  • get – скачать файл с FTP;
  • put – закачать файл на FTP;
  • delete – удалить файл;
  • rmdir – удалить папку;
  • mcdir – создать новую папку;

  • binary – установить двоичный режим передачи файлов (необходим в некоторых случаях, чтобы файлы не повреждались при передаче);

  • bye – завершение соединения по 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

Работа с файлами по FTP

Как попасть на FTP-сервер, описано в инструкции выше. Теперь расскажем, как начать работу в FTP-клиенте FileZilla после подключения.

При подключении вы увидите разделённое пополам окно: слева — папка вашего локального ПК, справа — домашняя папка хостинга.Чтобы управлять папкой или файлом, кликните по нему правой кнопкой мыши:

Как закачать файлы на сервер

Чтобы загрузить сайт на хостинг через FTP, все файлы сайта необходимо размещать в каталог сайта. Определить нужный каталог вам поможет инструкция: В какой каталог нужно загружать файлы моего сайта.

В строке «Удаленный сайт» укажите путь до корневой папки сайта. В окне слева кликните правой кнопкой по нужной папке на локальном ПК и выберите Закачать на сервер:


Как залить сайт на хостинг через FileZilla

Как изменить права доступа к файлу или папке

Чтобы изменить права доступа, кликните правой кнопкой по нужной папке/файлу на хостинге (окно справа) и выберите Права доступа к файлу:

В открывшемся окне назначьте права: установите галочки напротив нужных пунктов и укажите числовое значение. Чтобы рекурсивно изменить права, выберите опцию Перенаправить во вложенные каталоги — Применить только к каталогам:

Как переименовать файл на хостинге

Кликните правой кнопкой по файлу на хостинге (окно справа) и выберите Переименовать:

Готово, вы подключились по FTP и загрузили файлы сайта на хостинг.

Если вам нужно добавить дополнительного пользователя или сменить пароль, обратитесь к инструкции: Работа по FTP: аккаунты и пароли. Если при работе по FTP у вас возникнут сложности, поможет статья: Ошибки при работе с FTP.

Настройки шифрования

Включить шифрование данных в vsFTPd не сложно. Просто:

  • Открываем конфигурационный файл командой sudoedit /etc/vsftpd/.
  • Ищем внутри директиву ssl_enable=NO_.
  • Заменяем NO на YES.

Сложность заключается в том, что нужно сгенерировать SSL-ключи и сертификаты для конкретного сервера и разместить их в директориях, которые указаны в параметрах vsFTPd (либо указать путь к другим сертификатам и ключу). Речь идет о строках:

rsa_cert_file=/etc/ssl/certs/ rsa_private_key_file=/etc/ssl/private/

Настройка Firewall

В некоторых дистрибутивах (в частности, серверных) работает Firewall. Это механизм защиты от несанкционированных входящих и исходящих подключений. Он обычно блокирует некоторые порты, по которым программы подключаются к удаленному ресурсу, чтобы избежать утечки данных.

В Ubuntu, к примеру, используется Firewall ufw, который по умолчанию блокирует подключение к портам 21 и 20. А без них FTP-сервер запустить не получится. Так что придется их сначала разрешить. Для этого:

  • Открываем терминал.
  • Вводим в него команду sudo ufw disable, чтобы выключить Firewall.
  • Затем снова включаем его командой sudo ufw enable.

Перезагрузимся перед настройкой

  • Потом добавляем в список исключений подключение по порту 20. Для этого введем в командную строку sudo ufw allow 20/tcp.

Добавили первый…

  • И то же самое проделываем с портом 21. Команда sudo ufw allow 21/tcp.

…и второй

Потом снова перезагружаем Firewall и FTP-сервер.

Уязвимости и надёжность

Сам по себе FTP-протокол надё­жен и гаран­ти­ро­ван­но достав­ля­ет поль­зо­ва­те­лю нуж­ные фай­лы, если с соеди­не­ни­ем всё в порядке.

Про­бле­ма в том, что про­то­кол изна­чаль­но был неза­щи­щён­ный, и пред­по­ла­га­лось, что канал пере­да­чи дан­ных все­гда надё­жен. Поэто­му в FTP всё пере­да­ёт­ся в откры­том виде: фай­лы, паро­ли, име­на поль­зо­ва­те­лей и любые данные.

Сей­час по умол­ча­нию пред­по­ла­га­ет­ся, что каж­дый канал — нена­дёж­ный, и что дан­ные нуж­но допол­ни­тель­но шиф­ро­вать. FTP это­го не под­дер­жи­ва­ет. Если кто-то будет пере­хва­ты­вать ваш Wi-Fi-трафик или под­клю­чит­ся к вашей локаль­ной сети, то он смо­жет пере­хва­тить все эти дан­ные и ска­чать их себе, парал­лель­но с вами.

Ещё есть вопрос без­опас­но­сти вхо­да: по умол­ча­нию у FTP-протокола нет защи­ты от под­бо­ра паро­ля и попы­ток вхо­да, поэто­му кто-то может про­сто пере­брать доступ­ные паро­ли, что­бы полу­чить доступ к пап­кам. Если вы виде­ли в филь­мах про хаке­ров, как они там пере­би­ра­ют паро­ли при вхо­де — это вполне веро­ят­ная ситу­а­ция для FTP.

С точ­ки зре­ния совре­мен­ной без­опас­но­сти пра­виль­ным реше­ни­ем будет исполь­зо­вать одну из реа­ли­за­ций шиф­ро­ван­но­го FTP (FTPS, SFTP) или поль­зо­вать­ся FTP через VPN.

Заключение

Протокол FTP используется для передачи файлов. Многие хостинговые компании используют протокол FTP для загрузки файлов на веб-сервер, которые потом передаются по протоколу HTTP. 

Протокол FTP использует два соединения управляющее соединение и соединение для передачи данных. Использование отдельного соединения для передачи данных, приводят к проблемам в работе FTP с межсетевыми экранами и устройствами NAT. Для решения этой проблемы был придуман пассивный режим FTP при котором соединение для передачи данных устанавливается со стороны клиента. Еще одна проблема низкая безопасность. 

Сейчас все чаще вместо FTP используются протоколы на основе SSH.

[spoiler title=»Источники»]

  • https://eurobyte.ru/articles/chto-takoe-ftp/
  • https://help-wifi.ru/tekh-podderzhka/ftp-server-nastrojka/
  • https://wiki.rookee.ru/ftp/
  • https://goldbusinessnet.com/kompyuter-i-internet/chto-takoe-ftp-sftp-ftps-protokol-soedinenie-klient-server/
  • https://thecode.media/ftp/
  • https://semantica.in/blog/chto-takoe-ftp-server.html
  • https://ServerGate.ru/articles/chto-takoe-ftp-server-i-kak-ego-nastroit/
  • https://wordpresslib.ru/ftp/ftp-server-ot-a-do-ya.html
  • https://besporovod.ru/kak-podklyuchitsya-k-ftp-osnovnye-sposoby-i-instruktsii
  • https://timeweb.com/ru/community/articles/kak-podklyuchitsya-k-ftp-serveru
  • https://zen.yandex.ru/media/seopulses/kak-podkliuchitsia-k-ftp-osnovnye-sposoby-i-instrukcii-5d691efcec575b00aea43bbf
  • https://hoster.ru/articles/kak-podklyuchit-sya-k-ftp-serveru-sposoby-podklyucheniya
  • https://prooneplus.ru/windows/ftp-server-nastroyka-podklyuchenie-i-peredacha-faylov
  • https://www.REG.ru/support/hosting-i-servery/nachalo-raboty-i-dostupy/kak-podklyuchitsya-poftp
  • https://ZvonDoZvon.ru/tehnologii/protokoli/ftp

[/spoiler]