Ftp протокол какого уровня
Перейти к содержимому

Ftp протокол какого уровня

  • автор:

Протоколы Интернета и электронной почты

После обсуждения базовых протоколов мы можем подняться на более высокий уровень. Протоколы HTTP и FTP охватывают уровни 5—7 модели OSI.

FTP — File Transfer Protocol

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

Модель приложения с FTP-сервером и клиентом проиллюстрирована на следующем рисунке. Приложение-клиент представляет пользовательский интерфейс и создает FTP-запрос в соответствии с запросом пользователя и спецификацией FTP. FTP-команда посылается приложению-серверу через TCP/IP, и интерпретатор на сервере соответственно интерпретирует FTP-команду. В зависимости от FTP-команды в FTP-ответе клиенту возвращается с сервера список файлов или конкретный файл:

Модель клиент-серверного FTP-приложения

Протокол FTP имеет следующие характеристики:

  • Надежная передача данных через TCP
  • Анонимный доступ или аутентификация пользователя по имени и паролю
  • Файлы отправляются в ASCII-коде в форме, поддерживаемой целевой платформой, или как неизмененные двоичные данные.

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

Команды контроля доступа

В FTP-командах контроля доступа указывается имя пользователя (USER) и пароль (PASS), установки могут изменяться (REIN), и соединение может быть закончено (QUIT).

Команды параметров передачи

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

Команды FTP-сервиса

Копирование файлов с сервера (RETR), копирование файлов на сервер (STOR), удаление файлов (DELE), переименование файлов (RNTO), создание каталогов (MKD) и запрос списка файлов (LIST) — вот некоторые команды FTP-сервиса.

Протокол FTP определен в RFC 959.

FTP-клиенты

Чтобы понять суть протокола FTP, лучше всего поработать из командной строки с утилитой ftp, как показано на следующем рисунке. Программа ftp работает через приглашение ftp, позволяющее вводить команды. Эти команды отличаются от команд протокола FTP — вы можете увидеть их все, если введете команду ?. При введении команды open ftp.microsoft.com создается соединение с хостом ftp.microsoft.com.

Установка имени пользователя anonymous означает пользователя-гостя. Ответ 230 от сервера указывает, что соединение установлено и можно командой dir получить список файлов на сервере. Получив команду dir, программа ftp отправляет на сервер команду FTP LIST. Команда cd может применяться для смены директории на сервере, а команда get копирует файл клиенту, отправляя команду FTP RETR. Для закрытия соединения утилита ftp использует команду bye:

Команды утилиты ftp

HTTP — Hypertext Transfer Protocol

HTTP — основной протокол, используемый Web-приложениями. Как и FTP, HTTP является надежным протоколом, и надежность его достигается благодаря использованию TCP. Как и FTP, HTTP также используется для передачи файлов через сеть. Но он в отличие от FTP обладает такими средствами, как кэширование, идентификация приложения-клиента, поддержка разных дополнений в формате MIME и т. д. Эти средства устанавливаются в заголовке HTTP.

Для демонстрации работы, выполняемой браузером Интернета, когда он запрашивает файлы из Web-сервера, мы можем имитировать браузер приложением telnet. Для запуска этого приложения введите telnet в диалоговом окне Run меню Start, и вы увидите приглашение Microsoft Telnet. Введите set local_echo (set localecho для Windows XP), чтобы введенные программы отображались локально. Если не устанавливать эту опцию, команды, которые мы отправляем на сервер, не будут отображаться приложением telnet.

Теперь можно соединиться с Web-cepвeром командой open. Команда open msdn.microsoft.com 80 создает TCP-соединение с портом 80 сервера на msdn.microsoft.com. Приложение telnet использует по умолчанию порт 23, следовательно, надо указать порт для HTTP-запроса. По умолчанию HTTP-сервисы предоставляются портом 80 Web-сервера.

telnet

Как только соединение инициировано, можно послать на Web-cepвep HTTP-запрос. Простой запрос состоит из строки запроса, которую нужно завершить двумя нажатиями на клавишу Enter (две последовательности CR-LF). Такая строка запроса может выглядеть, как: GET /default.asp HTTP/1.0. Сервер возвращает HTTP-ответ, содержащий информацию о статусе.

Как видно, элементарный HTTP-запрос состоит лишь из одной строки. Однако полный HTTP-запрос будет состоять из строки запроса с дополнительными заголовками и данными.

В строке запроса можно указывать такие HTTP-команды, как GET, HEAD и POST. И GET, и POST запрашивают данные от сервера. Команда GET включает параметры запроса в URL, а в команде POST параметры находятся в блоке данных. Команда HEAD означает, что мы просто хотим узнать, когда был изменен запрашиваемый файл, чтобы проверить, находится ли в кэше новейшая его версия.

За строкой запроса могут следовать общие заголовки, заголовки запроса и заголовок сущности. Информация, помещаемая в заголовки, позволяет клиенту сообщать серверу об используемом браузере и предпочтительных языках, отправлять файл cookie или запрашивать только изменившиеся файлы. В примере с telnet мы уже видели некоторую информацию из заголовков, возвращенную сервером: дату, версию сервера, длину содержания, тип содержания и признаки управления кэшем.

HTTPS — HTTP поверх SSL (Secure Socket Layer)

Когда требуется обменяться с Web-сервером конфиденциальной информацией, можно воспользоваться протоколом HTTPS. HTTPS — это расширение протокола HTTP, и поэтому к нему применимы все принципы, которые обсуждались в предыдущем разделе. Однако в его основе лежит другой механизм, поскольку HTTPS использует SSL, первоначально разработанный компанией Netscape. SSL располагается поверх TCP и защищает сетевой обмен, используя принцип открытого/секретного ключа для обмена секретными симметричными ключами и симметричный ключ для шифрования сообщений.

Для поддержки HTTPS Web-сервер должен установить сертификат, чтобы его можно было идентифицировать. По умолчанию для HTTPS-запросов используется порт 443.

SMTP — Simple Mail Transfer Protocol

SMTP — это протокол, предназначенный для отправки и получения сообщений электронной почты. Он может использоваться для пересылки электронной почты между клиентом и сервером, использующими один и тот же транспортный протокол, или для пересылки сообщений между серверами, использующими разные транспортные протоколы. SMTP имеет возможность пересылать сообщения через среду транспортной службы. Однако SMTP не позволяет читать сообщения с почтового сервера, для этого используются протоколы POP3 и IMAP.

Служба SMTP составляет часть установки Internet Information Server в Windows 2000 и Windows XP.

Стандарт протокола SMTP определен в RFC 821; формат сообщений SMTP определен в RFC 822.

POP3 — Post Office Protocol

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

Windows .NET Server включает сервер POP3. Протокол POP3 определен в RFC 1081.

IMAP — Internet Message Access Protocol

Как и РОРЗ, протокол IMAP предназначен для доступа к почте на почтовом сервере. Аналогично клиентам POP3 клиент IMAP может работать в автономном режиме, в котором почта обрабатывается на локальной машине. По сравнению с клиентами POP3 клиенты IMAP обладают более широкими возможностями в оперативном режиме, например, они могут извлекать только заголовки или только основные части указанных почтовых сообщений, искать конкретные сообщения на сервере и устанавливать флаги, например флаг «ответ отправлен». По существу, IMAP позволяет клиенту обрабатывать удаленный почтовый ящик, как если бы он был локальным.

Протокол IMAP определен в RFC 1730.

NNTP — Network News Transfer Protocol

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

Протокол NNTP определен в RFC 850, 977 и 1036.

Что такое FTP: как подключиться, программы для доступа

Как просто скопировать на компьютере файл из папки в папку! А если нужно скопировать файл… на ваш сайт? Как это сделать?

На помощь приходит протокол передачи файлов, который уже полсотни лет исправно служит всем, кому нужно получить или передать данные на удаленные сервера.

Что такое FTP

FTP (File Transfer Protocol) — это протокол доступа, предназначенный для удаленной передачи файлов. Простыми словами, FTP позволяет посмотреть содержимое папок на удаленном сервере, через интернет. Протокол до сих пор повсеместно используется для передачи файлов и доступа к хостам.

Читайте также:
Гайд по технической оптимизации сайта

Разница между доступом по FTP и HTML

Почему же не передают файлы по протоколу HTML, ведь мы мы делаем это через социальные сети и мессенджеры чуть ли не каждый день?

Хотя и тут интерфейс похож на «Проводник» Windows

  1. Для FTP не нужен web-интерфейс. То есть не нужно развертывать среду (например, CMS) и настраивать в ней шаблоны отображения папок и файлов. По FTP пользователь получает доступ к удаленной папке и выглядит она так, как будто бы расположена на локальном компьютере. Пользователь видит файлы и может совершать с ними манипуляции (копировать, вырезать, редактировать и удалять). В интернете же (возьмем для примера Яндекс. Диск) у каждой системы своя собственная структура папок и функционал для получения ссылок на файлы.
  2. FTP имеет системы делегирования прав и авторизации «из коробки». В вебе все это нужно будет создавать: например, в WordPress подключать плагины доступа и дорабатывать их настройки. Или пойти еще дальше и самостоятельно конфигурировать папки.
  3. FTP предоставляет разграничение прав доступа, чтобы одни пользователи могли выгружать файлы на сервер, а другим это было запрещено. В вебе же загрузка файлов может быть сложной и многоступенчатой процедурой.

Читайте также:
Подробный гайд по оптимизации сайта на WordPress

Программы для FTP-соединения

Far Manager

Год создания: 1996

Актуальная версия: 3.0.5888

Внешний вид Far Manager

Что собой представляет

Один из старейших файловых менеджеров с DOS-интерфейсом, тем не менее прекрасно работающий под Windows. Поддерживает двухоконный режим работы и управляется через ряд клавиатурных команд. В рамках FTP-доступа поддерживается доступ к разным прокси, множественный поиск и замена файлов. Главное преимущество программы — она бесплатная.

Как соединиться по FTP через Far Manager
  1. Запустите программу и определите панель (правую или левую), с которой будет сделан вход по FTP. Наберите клавиатурное сочетание Alt+F2 и выберите FTP-строку.
  2. Далее нажмите Shift+F4, после которого выйдет окно для ввода параметров соединения.
  3. Заполните соответствующие поля: в Description надо поименовать соединение и поставить крестик в параметр Passive Mode.
  4. После ввода всех параметров нажмите кнопку Save.
  5. На избранной в п. 1 панели после этого появится строка с выбранным именем FTP-соединения. На этой же строке нужно нажать Enter.
  6. В итоге произойдет соединение с удаленным сервером: можно начать передавать файлы в режиме двух панелей.

Присоединяйтесь к нашему Telegram-каналу!

  • Теперь Вы можете читать последние новости из мира интернет-маркетинга в мессенджере Telegram на своём мобильном телефоне.
  • Для этого вам необходимо подписаться на наш канал.

Total Commander

Год создания: 1993

Актуальная версия: 10.0

Внешний вид Total Commander

Что собой представляет

Файловый менеджер, имеющий в функционале FTP-клиент для операций с папками и файлами:

  • Копирование.
  • Вырезание.
  • Создание.
  • Переименование.
  • Просмотр.
  • Редактирование.
  • Удаление.

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

Как соединиться по FTP через Total Commander
  1. Запустите Total Commander. В меню выберите пункт «Сеть» и в выпадающем меню команду «Соединиться с FTP-сервером».
  2. В появившемся окне нажмите кнопку «Добавить» для инициации соединения.
  3. Здесь укажите параметры подключения:
    • Имя соединения. Впишите произвольное название, но такое, чтобы по нему было понятно, к чему вы присоединяетесь.
    • Сервер [:Порт]: адрес удаленного сервера или порт для доступа к нему.
    • Учетная запись. Введите пользовательский логин.
    • Пароль. Введите пользовательский пароль.

Не забудьте установить флажок «Пассивный режим обмена (Как Web-браузер)». После проведения всех настроек нажмите OK.

Читайте также:
Как создать карту сайта (sitemap.xml)

FileZilla

Год создания: 2001

Актуальная версия: 3.56.0

Внешний вид FileZilla

Что собой представляет

Самый известный FTP-клиент, максимально заточенный на работу с соответствующими соединениями. Является мультиплатформенным, потому что имеет версии в Linux, Mac OS и Windows.

ПО поддерживает FTP через протокол SSL, IPv6 и IDN. Умеет присоединиться к кириллическим доменам, передавать файлы с размером более 4 гигабайт и кастомизировать скорость передачи и скачивания файлов.

Поддерживается технология Drag-and-drop, удаленные просмотр и редактирование файлов, работа в нескольких вкладках и контроль очереди загрузки.

Как соединиться по FTP через FileZilla
  1. Запустите программу и в меню выберите пункт «Файл», а далее — «Менеджер сайтов».
  2. В появившемся окне щелкните по кнопке «Новый сайт».
  3. Укажите следующие параметры подключения:
    • Хост. Вводим адрес сервера.
    • Тип сервера. Указываем FTP (File Transfer Protocol).
    • Тип входа. Устанавливаем режим «Нормальный».
    • Пользователь. Вводим имя пользователя.
    • Пароль. Вводим корректный пароль пользователя.
    • Шифрование (Encryption). Ставим значение Use plain FTP.
  4. Теперь перейдите к вкладке «Настройки передачи», где надо выбрать пассивный режим передачи файлов и установить флажок «Ограничение одновременных подключений», а значение поля «Максимальное количество подключений» установить на 2. Нажмите кнопку «Соединиться».
  5. Если все было сделано правильно, далее произойдет соединение с сервером и можно будет работать в стандартном двухпанельном режиме передачи данных.

Спустя столько лет FTP по-прежнему остается более чем востребованным у владельцев веб-мастеров, которым, например, нужно добавить на сайт XML-карту, файл robots.txt и провести весь тот набор операций, о которых мы написали в статье.

Технический аудит сайта

  • Наличие дублей страниц, безопасность, корректность всех технических параметров: переадресаций, robots.txt, sitemap.xml скорость загрузки и др.
  • Техническая оптимизация — один из основных этапов в продвижении.

Ftp протокол какого уровня

FTP (File Transfer Protocol — протокол передачи файлов) — протокол, с помощью которого осуществляется передача файлов по TCP-сети. FTP-протокол зачастую применяется для загрузки сетевых страниц и прочих документов с какого-либо устройства. Протокол имеет архитектуру «клиент-сервер», в нем применяются различные сетевые соединения для передачи данных между, соответственно, клиентом и сервером. Для захода на сервер пользователю необходимо пройти аутентификацию, посредством ввода логина и пароля. Однако, бывают также FTP-сервера и с анонимным доступом.

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

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

Хронология развития FTP

В 1971 году произошла первая реализация протокола FTP. Она предусматривала обмен между клиентом и сервером сообщениями, состоящими из заголовка длиной в 72 бита, и данных переменной длины. Заголовок включал в себя запрос к FTP-серверу или ответ от него, тип и длину передаваемых данных. В качестве данных передавались параметры запроса, информация от сервера и сами файлы. Так, команды и данные передавались по одному и тому же каналу.

В 1972 году протокол полностью изменили, он принял вид, близкий к современному. Команды с параметрами от клиента и ответы сервера стали передаваться по TELNET-соединению, для передачи данных создавалось отдельное соединение.

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

В 1980 году FTP-протокол стал применять TCP. Последняя редакция протокола была выпущена в 1985 году. В 1997 году появилось дополнение к протоколу, позволяющее шифровать и подписывать информацию в канале управления и канале данных. В 1999 году было выпущено дополнение, посвященное интернационализации протокола, которое рекомендует использовать кодировку UTF-8 для команд и ответов сервера и определяет новую команду LANG, устанавливающую язык ответов.

В чем отличие FTP от HTTP?

Работа FTP осуществляется на прикладном уровне модели OSI. FTP используется зачастую для передачи файлов при помощи TCP/IP. Для этого необходимо запустить FTP-сервер, с ожиданием входящих запросов. Связь компьютера клиента с сервером осуществляется по порту 21. Данное соединение остается открытым на время сессии. Можно открыть и второе соединение — причем, как сервером из порта 20 к порту клиента, так и клиентом из любого порта к порту сервера. Благодаря такой двупортовой структуре, FTP считается внешнеполосным протоколом, а HTTP — внутриполосным.

Передача данных и соединение

Протокол FTP работает в активном и пассивном режимах. От режима зависит способ установки самого соединения. В активном режиме клиентом создается управляющее TCP-соединение с сервером, клиент отправляет серсеру свой IP-адрес и произвольный номер порта, после этого сервер запускает TCP-соединение с соответствующим адресом и портом. В пассивном режиме клиентом используется поток управления для посыла на сервер команды PASV, после которой от сервера получается IP-адрес и номер порта, которые в дальнейшем используются клиентом с целью открытия потока данных с произвольного клиентского порта. И тот, и другой режим были обновлены в 1998 году — для поддержки IPv6.

При передачи данных по сети может быть использовано 4 режима представления данных:

  • ASCII — применяется для текста. Если есть такая необходимость, данные до передачи конвертируются из символьного представления на хосте-отправителе в «восьмибитный ASCII», и в символьное представление принимающего хоста. Данный режим не подходит для файлов, содержащих что-то кроме обычного текста.
  • Режим изображения (бинарным режим) — устройство-отправитель посылает каждый файл байт за байтом, а получатель сохраняет поток байтов при получении. Поддержка этого режима рекомендована для всех реализаций FTP
  • EBCDIC — режим, который используется для передачи обычного текста между хостами в кодировке EBCDIC. Данный режим аналогичен ASCII.
  • Локальный режим — режим, позволяющий двум компьютерам с идентичными установками посылать данные в собственном формате, минуя конвертацию в ASCII.

Текстовые файлы имеют различные форматы управления и настройки структуры записи. Это было разработано для работы с файлами, содержащими Telnet или ASA-форматирование.

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

  • Поточный режим. В нем данные посылаются в виде непрерывного потока, освобождая FTP от выполнения какой-либо обработки. Вместо этого, вся обработка выполняется TCP. Индикатор конца файла не нужен, за исключением разделения данных на записи.
  • Блочный режим. В нем данные разбиваются на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаются TCP.
  • Режим сжатия. В данном режиме данные сжимаются единым алгоритмом.

Аутентификация

FTP-аутентификация, как правило, применяет обычную схему имя пользователя/пароль для предоставления доступа. Имя пользователя посылается серверу в виде команды USER, а пароль — в виде команды PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начнется сессия. Также, пользователи могут, если сервер позволяет, войти в систему без предоставления учетных данных, но сервером предоставляется лишь ограниченный доступ для таких сессий.

Анонимный FTP

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

NAT-PT

Расширение NAT было создано для работы FTP-протокола через межсетевые экраны. Это расширение, называемое NAT-PT (rfc2766), позволяет транслировать входящие соединения от сервера к клиенту через NAT. В процессе такого соединения NAT подменяет передаваемые данные от клиента, указывая серверу истинный адрес и порт, с которым сможет соединиться сервер, а потом транслирует соединение от сервера от этого адреса клиенту на его адрес. На практике функция NAT-PT часто отключается во всех роутерах и маршрутизаторах — для обеспечения дополнительной безопасности от вирусных угроз.

Веб-браузеры и FTP

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

Синтаксис

Синтаксис FTP URL описан в RFC1738, в форме: ftp://[[:]@][:]/(параметры в квадратных скобках необязательны).

Более детальная информация об указании имени пользователя и пароля отражена в документации браузеров. По умолчанию, большинство веб-браузеров используют пассивный (PASV) режим.

Безопасность

FTP имеет много уязвимых мест в защите, поскольку не разрабатывался как защищенный протокол.

В мае 1999 был составлен так называемый список проблем:

  • Скрытые атаки;
  • Спуф-атаки;
  • Атаки методом грубой силы;
  • Перехват пакетов, сниффинг;
  • Защита имени пользователя;
  • Захват портов.

FTP не имеет возможности шифровать свой трафик, все передачи — это открытый текст: имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Эта проблема характерна для многих спецификаций интернет-протокола (в их числе SMTP, Telnet, POP, IMAP), разработанных до создания таких механизмов шифрования, как TLS и SSL. Классическое решение такой проблемы — использование «безопасных», TLS-защищенных версий уязвимых протоколов (FTPS для FTP, TelnetS для Telnet и т.д.) или же другой, более защищенный протокол, вроде SFTP/SCP.

FTPS

FTPS — это расширение стандарта FTP, позволяющее клиентам требовать, чтобы FTP-сессия была зашифрована. Реализация производится посредством отправки команды «AUTH TLS». Сервер может позволить или отклонить соединения, которые не запрашивают TLS. Это расширение протокола определено в спецификации RFC 4217.

Основные команды

  • ABOR — Прервать передачу файла
  • CDUP — Сменить директорию на вышестоящую.
  • CWD — Сменить директорию.
  • DELE — Удалить файл (DELE filename).
  • EPSV — Войти в расширенный пассивный режим. Применяется вместо PASV.
  • HELP — Выводит список команд принимаемых сервером.
  • LIST — Возвращает список файлов директории. Список передается через соединение данных.
  • MDTM — Возвращает время модификации файла.
  • MKD — Создать директорию.
  • NLST — Возвращает список файлов директории в более кратком формате, чем LIST. Список передается через соединение данных.
  • NOOP — Пустая операция
  • PASV — Войти в пассивный режим. Сервер вернет адрес и порт, к которому нужно подключиться, чтобы забрать данные. Передача начнется при введении следующих команд: RETR, LIST и т.д.
  • PORT — Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
  • PWD — Возвращает текущую директорию.
  • QUIT — Отключиться
  • REIN — Реинициализировать подключение
  • RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.
  • RMD — Удалить директорию
  • RNFR и RNTO — Переименовать файл. RNFR — что переименовывать, RNTO — во что.
  • SIZE — Возвращает размер файла
  • STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.
  • SYST — Возвращает тип системы (UNIX, WIN, …)
  • TYPE — Установить тип передачи файла (бинарный, текстовый)
  • USER — Имя пользователя для входа на сервер

ООО «Альтербит», 197183, Санкт-Петербург, Комендантский проспект, 2 схема проезда
Телефон: (812) 309-2602 ← Звони если хочешь купить сервер, схд, компьютер

FTP-протокол: что это такое и для чего он служит

Рассказываем про FTP-протокол и работу с ним в разных операционных системах.

Эта инструкция — часть курса «Как работают сетевые протоколы».

Смотреть весь курс

Изображение записи

File Transfer Protocol, или протокол передачи файлов, — это протокол, относящийся к прикладному уровню и отвечающий за передачу данных между двумя системами. Как и протокол HTTP, он работает поверх протокола TCP. При передаче файлов FTP использует одновременно два TCP-канала: один из них отвечает за управление передачей данных, а второй — передает их.

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

Передача файлов FTP-протоколом между клиентом и сервером

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

При установлении FTP-соединения создаются два типа каналов связи, которые называются канал команд и канал данных.

Командный канал требуется для:

  • передачи сообщений о тех или иных действиях
  • ответов между клиентом и сервером (и наоборот).

Протокол FTP применяет тот же подход, что TELNET и SMTP, для связи посредством управляющего соединения. Для этого используется набор символов NVT ASCII. Общение осуществляется через порт 21.

Канал данных используется непосредственно для передачи информации и работает через порт 20.

FTP-клиент, применяя URL в качестве адреса (как и протоколы передачи гипертекста HTTP/S), посылает команду FTP и адрес клиента. После установки соединения пользователь выполняет авторизацию, вводя логин и пароль.

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

Как выглядит FTP в графическом интерфейсе ОС

Для взаимодействия с удаленным сервером можно использовать либо командную строку (терминал), либо специализированные приложения. В Windows интерфейс выглядит следующим образом:

Интерфейс в Windows

При работе через приложение взаимодействие с файлами становится гораздо проще благодаря понятности и удобства интерфейса. На скриншоте ниже — пример интерфейса приложения FileZilla:

Приложение FileZilla

Описание команд FTP для командной строки Windows и Linux

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

! Эта команда переключает вас между операционной системой и FTP. Вернувшись в операционную систему и набрав exit, вы вернетесь в командную строку FTP
? Открывает экран справки
append Добавляет текст в локальный файл
cd Изменяет удаленный рабочий каталог
delete Удаляет файл
disconnect Выход из FTP
get Получение файла с удаленного компьютера
mdelete Множественное удаление
mdir Перечисляет содержимое нескольких удаленных каталогов
mget Получение нескольких файлов
mkdir Создание каталога
mls Списки содержимого нескольких удаленных каталогов
mput Отправка нескольких файлов
open Открывает адрес
put Отправить один файл
pwd Печатает рабочий каталог
quit Выход из FTP
recv Получение файла

Больше — по ссылке. Те же команды актуальны для работы в ОС Linux.

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

  • FileZilla — это бесплатная FTP-утилита с открытым исходным кодом, которая дает пользователю возможность передавать файлы с локального компьютера на удаленный. FileZilla доступна в виде клиентской и серверной версий. Работает под ОС Windows, MacOS и Linux.
  • WinSCP — это бесплатный SFTP-, WebDAV-, S3-, SCP- и FTP-клиент для Windows с открытым исходным кодом. Работает только на ОС Windows.
  • Cyberduck — это FTP-клиент с бесплатными облачными возможностями и поддержкой систем Windows и Mac OS X. Cyberduck использует графический интерфейс пользователя (GUI) для предоставления доступа к файлам с серверов и для иного управления данными в различных местах, включая их редактирование и хранение.
  • Transmit — это приложение для MacOS, позволяющее работать с FTP, SFTP и множеством других протоколов. Отличается удобным дизайном и высокой скоростью работы.
  • CrossFTP — это приложение для ОС Windows, MacOS и Linux, поддерживающее множество протоколов, включая WebDav, SFTP, Amazon S3 и прочие.
  • Nautilus — это менеджер файлов для ОС Linux, работающих на основе окружения Gnome. Основным его плюсом является то, что он уже встроен в систему. Позволяет работать с протоколами FTP(S), SMB, NFS, SSH и прочими.
  • AndFTP — популярный FTP-клиент для ОС Android. Обладает несколько нагруженным интерфейсом, однако он дает пользователю те же функции, что и полноценные десктопные приложения.
  • X-plore File Manager — это FTP-клиент для ОС Android, аналог AndFTP.
  • FTP-manager — это FTP-клиент для iOS, позволяющий копировать, перемещать и удалять файлы между устройством и сервером. Плюсами данного приложения является возможность использовать многооконность на iPad, просматривать различные типы файлов на устройстве, а также вносить изменения в код через специальный редактор.

В чем назначение безопасного FTP-протокола

Изначально FTP не создавался с учетом требований безопасности. Считается, что это небезопасный протокол, поскольку для аутентификации он полагается на имя пользователя и пароль в открытом виде и не использует шифрование. А значит, отправляемые по FTP данные уязвимы для перехвата.

Однако существует несколько общих принципов, позволяющие обеспечить безопасное использование протокола, — FTPS и SFTP.

FTPS

FTPS, или FTP с использование Secure Socket Layer, — это метод, который позволяет выполнять шифрование соединения по требованию пользователя. FTPS был предложен в качестве альтернативы в RFC 2228.

FTPS был введен на серверах Windows, начиная с IIS 7.0. IIS, или Internet Information Services, — набор инструментов Windows, позволяющих развертывать web-сервер.

В IIS 7.0 FTPS-протокол был автономным дополнительным элементом и требовал отдельной загрузки. IIS 7.5 и каждая последующая версия имеют функциональность FTPS из «коробки». Следовательно, чтобы настроить безопасное FTP-соединение, необходимо установить только IIS Manager и/или FTP-сервис, который входит в пакет IIS.

Как работает FTPS

Как и FTP, FTPS работает по модели клиент-сервер, используя канал управления и канал передачи данных для обмена командами FTP и данными во время клиентского сеанса FTPS.

Сессия FTPS аутентифицируется при помощи логина, пароля и сертификата открытого ключа (аналогично тому, как работает HTTPS). Инструменты, такие как OpenSSL, позволяют запрашивать и создавать сертификат ключа. При соединении с сервером FTPS клиент сначала проверяет надежность сертификата сервера, после чего осуществляет подключение. Когда доверенный центр сертификации (CA) подписывает эти сертификаты, он гарантирует, что клиент подключен к надежному и безопасному серверу. Это помогает защититься от ряда атак, в том числе от атак посредника.

Сертификаты, не подписанные СА, которые известны как самозаверяющие сертификаты, могут побудить клиента FTPS создать уведомление о том, что сертификат не является подлинным. После этого пользователь может либо подтвердить действие и осуществить подключение или отклонить его.

FTPS (через SSL) использует сертификаты X.509 для аутентификации. Эти цифровые сертификаты содержат в себе открытый ключ шифрования и информацию о том, кто является его владельцем. Открытый ключ выполняет две основные функции: проверку подлинности и шифрование данных. Открытый ключ имеет связанный с ним закрытый ключ. Он находится отдельно от открытого ключа, и его главное предназначение — расшифровка сообщений, зашифрованных при помощи открытого ключа.

SFTP

Также для обеспечения безопасности соединения существует SFTP, или SSH (Secure Shell) FTP, — это протокол прикладного уровня модели OSI. Он является частью SSH и не относится к протоколу FTP напрямую. При его работе происходит шифрование данных при помощи SSH, установка соединения осуществляется через порт 22. Это отличает его от FTPS, который осуществляет открытие порта каждый раз при взаимодействии с файлом. Аутентификация может происходить как при помощи логина и пароля, так и при помощи SSH-ключа.

Как создать сетевой FTP-протокол для Windows

Шаг 1. Активация встроенного в ОС FTP-протокола

Для создания FTP-сервера на Windows потребуется выполнить несколько действий.

Мы сделаем это через Панель управления. Найдите ее в режиме поиска.

Панель управления в Windows

Далее перейти в пункт Программы → Программы и компоненты:

В открывшемся окне следует нажать на пункт Включение или отключение компонентов Windows:

Настройка FTP-сервера

Далее в списке найдите пункт Службы IIS и включите пункты FTP-сервер (Расширяемость FTP и Служба FTP), а также пункт Сценарии и средства управления IIS:

Выбор пунктов в списке

Шаг 2. Создание сервера

Для создания собственного сервера следует перейти на главную страницу Панель управления, выбрать раздел Система и безопасность, где выбрать пункт Администрирование:

Создание сервера

Далее требуется выбрать Диспетчер служб IIS ( если он не появляется, отметьте все поля в Службы IIS и перезагрузите компьютер):

Выберите диспетчер служб IIS

В левой части окна нажмите правой кнопкой мыши и выберите Добавить веб-сайт. У вас появится следующее окно:

Добавить веб-сайт

Далее нажмите правой кнопкой мыши по созданному сайту и выберите Добавить FTP-публикацию:

Добавить FTP-публикацию

После этого заполните поля в соответствии с вашими требованиями, указав порт 21:

Заполняем поля для добавления публикации

Сведения о проверке подлинности и авторизации

Как создать FTP-сервер на Linux

Для создания FTP-сервера на Linux (дистрибутив Ubuntu) следуйте данному алгоритму:

  1. Обновление ОС. Для выполнения этого шага введите следующую команду: sudo apt update.
  2. Установка vsftpd (FTP-сервера). Для выполнения введите следующую команду: sudo apt intall vsftpd.
  3. Проверка работоспособности сервера. Для этого введите следующую команду: sudo systemctl status vsftpd. В случае успешной установки в терминале будет выведено active (running).
  4. Добавление службы в автозагрузку. Для выполнения используйте следующую команду: sudo systemctl enable vsftpd.

Создайте FTP-сервер на мощностях Selectel

Более 100 фиксированных конфигураций с готовностью — 2 минуты.

А что с MacOS?

С компьютерами на MacOS ситуация обстоит несколько другим образом. Начиная с MacOS Sierra (вышла в 2016 г.) сервис FTP был полностью удален из ОС.

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

Разница работы с FTP и HTTP

Мы уже упоминали об этих двух протоколах в контексте статьи. Оба работают поверх TCP — самого известного транспортного протоколы. Тем не менее между ними много различий. Рассмотрим основные.

HTTP FTP
Это набор правил, по которым веб-страницы передаются на разные компьютеры через интернет Это набор правил, разрешающих загрузку и скачивание файлов на компьютер через интернет
Поддерживает только одно соединения — для передачи данных. Поддерживает соединение как для передачи данных, так и для управления (использует два соединения)
Использует протокол управления передачей и работает на TCP-порту 80 Использует протокол управления передачей и работает на TCP-портах 20 и 21
URL-адрес будет начинаться с HTTP URL-адрес будет начинаться с FTP
Не требует аутентификации Требует аутентификации, но позволяет подключаться анонимно
Эффективен при передаче небольших файлов. Эффективен при передаче больших файлов
Файлы, переданные на компьютер через интернет, не сохраняются в памяти (диск) Файлы, переданные на компьютер через интернет, сохраняются в памяти
HTTP используется для предоставления веб-страниц веб-браузеру с веб-сервера FTP используется для загрузки или скачивания файлов между клиентом и сервером
Request for Comments: 2616, 7230, 7231 Request for Comments: 959, 765, 1732
HTTP быстрее FTP медленнее по сравнению с HTTP

Нужен ли FTP-протокол в наши дни

В завершение описания FTP-протокола добавим, для чего используется протокол в наши дни. Хоть он и является удобным средством для обмена данными, возраст протокола и уязвимость в плане информационной безопасности берут свое. На данный момент он уступает более защищенным версиям FTP, таким как SFTP.

Доказательством этого становятся отказы от использования протокола. Как это сделали MacOS или браузер Chrome, разработчики которого удалили поддержку протокола в версии Chrome 95. Впрочем, FTP все еще остается востребованным для локальных целей, а также для доступа к различных старым интернет-архивам.

В чем разница протоколов HTTP и HTTPS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *