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

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

Информация в FTP-архивах разделена, в основном, на три категории:

  • Защищенная информация, режим доступа к которой определяется ее владельцами и разрешается по специальному соглашению с потребителем. К этому виду ресурсов относятся коммерческие архивы (к примеру, коммерческие версии программ в архивах ftp.microsoft.com ), закрытые национальные и международные некоммерческие ресурсы (например, работы по международным проектам CES или IAEA), частная некоммерческая информация со специальными режимами доступа (например,частные благотворительные фонды).
  • Информационные ресурсы ограниченного использования, к которым относятся, например, программы класса shareware. В данный класс могут входить ресурсы ограниченного времени использования или ограниченного времени действия.
  • Свободно распространяемые информационные ресурсы или freeware, если речь идет о программном обеспечении. К этим ресурсам относится все, что можно свободно получить по сети без специальной регистрации. Это может быть документация, программы или что-либо еще. Следует отметить,что свободно распространяемое программное обеспечение не имеет сертификата качества, но его разработчики открыты для обмена опытом.

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

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

FTP-протокол.

FTP (File Transfer Protocol, или "Протокол передачи данных") - один из старейших протоколов в Internet и входит в его стандарты. Первые спецификации FTP относятся к 1971 году. С тех пор FTP претерпел множество модификаций и значительно расширил свои возможности. FTP может использоваться как в программах пользователей, так и в виде специальной утилиты операционной системы.

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

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

Модели работы FTP.

Простейшая модель работы протокола FTP представлена на рисунке 1. В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора протокола пользователя средствами.

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

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

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

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

  1. Сервер FTP использует в качестве управляющего соединение на TCP порт 21, который всегда находится в состоянии ожидания соединения со стороны пользователя FTP.
  2. После того как устанавливается управляющее соединение модуля "Интерпретатор протокола пользователя" с модулем сервера - "Интерпретатор протокола сервера", пользователь (клиент) может отправлять на сервер команды. FTP-команды определяют параметры соединения передачи данных: роль участников соединения (активный или пассивный), порт соединения (как для модуля "Программа передачи данных пользователя", так и для модуля "Программа передачи данных сервера"), тип передачи, тип передаваемых данных, структуру данных и управляющие директивы, обозначающие действия, которые пользователь хочет совершить (например, сохранить, считать, добавить или удалить данные или файл и другие).
  3. После того как согласованы все параметры канала передачи данных, один из участников соединения, который является пассивным (например, "Программа передачи данных пользователя"), становится в режим ожидания открытия соединения на заданный для передачи данных порт. После этого активный модуль (например, "Программа передачи данных сервера") открывает соединение и начинает передачу данных.
  4. После окончания передачи данных, соединение между "Программой передачи данных сервера" и "Программой передачи данных пользователя" закрывается, но управляющее соединение "Интерпретатора протокола сервера" и "Интерпретатора протокола пользователя" остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.

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

Алгоритм работы при соединение двух FTP-серверов, ни один из которых не расположен на локальном хосте пользователя:

  1. Модуль "Интерпретатор протокола пользователя" указал модулю сервера "Интерпретатор протокола сервера 1" работать в пассивном режиме, после чего модуль "Интерпретатор протокола сервера 1" отправил пользователю адрес и номер порта (N) , который он будет слушать.
  2. Модуль "Интерпретатор протокола пользователя" назначил модуль сервера 2 "Интерпретатор протокола сервера 2" в качестве активного участника соединения и указал ему передавать данные на хост "Интерпретатор протокола сервера 1" на порт (N).
  3. "Интерпретатор протокола пользователя" подал "Интерпретатору протокола сервера 1" команду "сохранить поступившие данные в таком-то файле", а "Интерпретатор протокола сервера 2" - "передать содержимое такого-то файла".
  4. Между модулями "Интерпретатор протокола сервера 1" и "Интерпретатор протокола сервера 2" образуется поток данных, который управляется клиентским хостом.
Ниже приведена схема организации передачи данных между двумя серверами FTP, соответствующая рисунку 2. Здесь использованы следующие обозначения: User PI - интерпретатор протокола пользователя; Server1(2) интерпретатор протокола сервера1 (сервера2).
User PI (U) Ы Server1 (S1) User PI (U) Ы Server2 (S2)
U Ю S1: Connect

U Ю S1: PASV

U Ь S1: 227 Entering Passive Mode.

A1, A2, A3, A4, a1, a2

U Ю S2 Connect

U Ю S2: PORT A1, A2, A3, A4, a1, a2

U Ь S2: 200 Okay
U Ю S1: STOR ... U Ю S2: RETR ...

S1 Ю S2: Connect ...

Основу передачи данных FTP составляет механизм установления соединения между соответствующими портами и выбора параметров передачи. Каждый участник FTP-соединения должен поддерживать порт передачи данных по умолчанию. По умолчанию "Программа передачи данных пользователя" использует тот же порт, что и для передачи команд (обозначим его "U"), а "Программа передачи данных сервера" использует порт L-1, где "L"- управляющий порт. Однако, участниками соединения используются порты передачи данных, выбранные для них "Интерпретатором протокола пользователя", поскольку из управляющих процессов участвующих в соединении, только "Интерпретатор протокола пользователя" может изменить порты передачи данных как у "Программы передачи данных пользователя", так и у "Программы передачи данных сервера".

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

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

Как правило, сервер FTP ответственен за открытие и закрытие канала передачи данных. Сервер FTP должен самостоятельно закрыть канал передачи данных в следующих случаях:

  1. Сервер закончил передачу данных в формате, который требует закрытия соединения.
  2. Сервер получил от пользователя команду "прервать соединение".
  3. Пользователь изменил параметры порта передачи данных.
  4. Было закрыто управляющее соединение.
  5. Возникли ошибки, при которых невозможно возобновить передачу данных.

Команды протокола .

Команды управления контролем передачи данных, которыми обмениваются "Интерпретатор протокола сервера" и "Интерпретатор протокола пользователя", можно разделить на три большие группы:

  • Команды управления доступом к системе.
  • Команды управления потоком данных.
  • Команды FTP-сервиса.

Рассмотрим несколько наиболее характерных команд из каждой группы. Среди команд управления доступом к системе следует отметить следующие:

USER. Как правило, эта команда открывает сессию FTP между клиентом и сервером. Аргументом команды является имя (идентификатор) пользователя для работы с файловой системой. Эта команда может подаваться не только в начале, но и в середине сессии, если, например, пользователь желает изменить идентификатор, от имени которого будут проводиться действия. При этом все переменные, относящиеся к старому идентификатору, освобождаются. Если во время изменения идентификатора происходит обмен данными, обмен завершается со старым идентификатором пользователя.

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

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

REIN. Команда реинициализации. Эта команда очищает все переменные текущего пользователя, сбрасывает параметры соединения. Если в момент подачи команды происходит передача данных, передача продолжается и завершается с прежними параметрами.

QUIT. Команда закрывает управляющий канал. Если в момент подачи команды происходит передача данных, канал закрывается после окончания передачи данных.

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

PORT. Команда назначает адрес и порт хоста, который будет использоваться как активный участник соединения по каналу передачи данных. Аргументами команды являются 32-битный IP адрес и 16-битный номер порта соединения. Эти значения разбиты на шесть 8-битных полей и представлены в десятичном виде: h1, h2, h3, h4, p1, p2, где hN - байты адреса (от старшего к младшему), а pN - байты порта (от старшего к младшему).

PASV. Эта команда отправляется модулю, который будет играть пассивную роль в передаче данных ("слушать" соединение). Ответом на данную команду должна быть строка, содержащая адрес и порт хоста, находящиеся в режиме ожидания соединения в формате команды PORT - "h1, h2, h3, h4, p1, p2".

Команды TYPE, STRU, MODE определяют, соответственно, тип передаваемых данных (ASCII, Image и другие), структуру или формат передачи данных (File, Record, Page), способ передачи (Stream, Block и другие). Использование этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодействующих хостов.

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

RETR. Эта команда указывает модулю "Программа передачи данных сервера" передать копию файла, заданного параметром этой команды, модулю передачи данных на другом конце соединения.

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

Команды RNFR и RNTO должны следовать одна за другой. Первая команда содержит в качестве аргумента старое имя файла, вторая - новое. Последовательное применение этих команд переименовывает файл.

ABOR. Команда предписывает серверу прервать выполнение предшествующей сервисной команды (например, передачу файла) и закрыть канал передачи данных.

Команда DELE удаляет указанный файл.

Команды MKD и RMD, соответственно, создают и удаляют указанный в аргументе каталог.

При помощи команд LIST и NLST можно получить список файлов в указанном каталоге.

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

Обработчик команд возвращает код обработки каждой команды, состоящий из трех цифр. Коды обработки составляют определенную иерархическую структуру и, как правило, определенная команда может возвратить только определенный набор кодов. За кодом обработки команды следует символ пробела - , затем следует текст пояснения. Например, строка успешного завершения операции выглядит следующим образом: "200 Command okay".

Ниже приведен пример работы с FTP-протокола. Обозначения: S - сервер, U - пользователь.

S: 220 Service ready for new user
U: USER Gluk
> S: 331 User name okay, need password
U: PASS murmur
S: 230 User logged in, proceed
U: RETR test.txt
S: 150 File status okay; about to open data connection

<Идет передача файла...>

S: 226 Closing data connection, file transfer successful
U: TYPE I
S: 200 Command okay
U: STOR /home/images/first.my
S: 550 Access denied
U: QUIT

Протоколы TFTP и SFTP.

FTP-протокол имеет двух "младших братьев": SFTP - Simple FTP и TFTP - Trivial FTP.

TFTP-протокол - это простейший протокол передачи файлов. Он работает поверх транспортного протокола UDP и обеспечивает выполнение только самых элементарных операций передачи файлов, а именно, записи и чтения файлов. TFTP был разработан как простой и легкий в применении протокол. Он не позволяет вызвать список каталога и не имеет никаких средств аутентификации, но может передавать 8-битную информацию в соответствии со всеми стандартами Internet.

Поскольку передача данных осуществляется поверх UDP, протокол TFTP реализует собственные методы надежной доставки данных - пакеты подтверждения, нумерация блоков данных и пакетов подтверждения и т.п. Все очень похоже на упрощенный вариант эмуляции протокола TCP.

TFTP работает лишь пятью командами:

  1. Read request (RRQ) - запрос на чтение.
  2. Write request (WRQ) - запрос на запись.
  3. Data (DATA) - пакет данных.
  4. Acknowledgment (ACK) - подтверждение.
  5. Error (ERROR) - ошибка.

Процесс передачи данных начинается с поступления от клиента TFTP на сервер запроса на чтение или запись файла. Соединение устанавливается после получения подтверждения готовности на один из запросов, либо на запись, либо на чтение.

При открытии соединения, каждая из сторон выбирает (случайным образом) уникальный идентификатор - TID, который используется и UDP как порт соединения. Каждый пересылаемый пакет ассоциирован с двумя TID, соответствующими каждой стороне соединения. Первоначальный запрос отправляется инициатором TF TP-соединения на UDP-порт 69 (порт инициализации), в котором указывается порт соединения. Дальнейший обмен уже происходит через порты, выбранные участниками передачи данных.

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

Если длина пакета менее 512 байт - это служит сигналом для закрытия канала связи. В случае потери пакета при передаче, через некоторый промежуток времени сервер отправит этот пакет данных повторно.

Три типа ситуаций порождают отправку ошибочных пакетов:

  1. Не подтвержденный запрос, например, не был найден файл, нет прав доступа и др.
  2. Неправильный формат пакета, например, произошла ошибка коммутации.
  3. Потеря доступа к требуемому ресурсу.

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

Схема TFTP-транзакции следующая:

  1. Хост A отправляет запрос WRQ хосту B. Порт источника - TIDA, порт назначения - 69. Пакет содержит имя файла, тип передачи.
  2. Хост B отправляет ACK (номер блока - 0) хосту A. Порт источника - TIDB, порт назначения - TIDA.
  3. Хост A отправляет (по соединению TIDA - TIDB) команду DATA и блок данных. Пакет также содержит номер блока.

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

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

Команды SFTP отправляются поочередно, после получения ответа обработки предшествующей команды. Все команды состоят из четырех ASCII-символов и символа пробела, который отделяет команду от аргументов. Ответ сервера состоит из кода ответа и текстового сообщения. Каждая команда и ответ должны заканчиваться символом ("\0"- то же, что и завершение строки в C). SFTP для управления передачей данных использует всего 11 основных команд и только 4 кода ответа (символы: "+" - успешно, "-" - ошибки, "!" - внимание, " " - другое).

Команда SFTP имеют почти тот же синтаксис и предназначение, что и аналогичные команды FTP.

В представленном далее сценарии работы SFTP, сервер SFTP - "MIT-XX" находится в состоянии ожидания соединения. Пользователь "MKL" (пароль "foo") подсоединился к SFTP-серверу, запросил список файлов стандартного формата из каталога "PS" - командой "LIST F PS:", затем запросил список файлов в расширенном формате из того же каталога командой "LIST V PS:". Далее пользователь построил запрос на файл с именем "Small.File" - команда "RETR SMALL.FILE". В ответ сервер вернул его размер - 69 и подготовил к отправке. После этого командой SEND пользователь считал файл. По команде DONE соединение закрылось.

Обозначения: S - сервер SFTP, U - пользователь SFTP.

S: +MIT-XX SFTP Service
U: USER MKL
S: +MKL ok, send password
U: PASS foo
S: ! MKL logged in
U: LIST F PS:
S: +PS:
Small.File
U: LIST V PS:
S: +PS:
Small.File 1 69 (7) P775240 2-Aug-94 20:08 MKL
U: RETR SMALL.FILE
S: 69
U: SEND
S: This is a small file, the file is sent without a terminating null.
U: DONE
S: +MIT-XX closing connection

Как видно из представленного сценария работы, SFTP - простой протокол, построенный по тривиальной схеме "запрос-ответ" с минимальным набором команд, который позволяет выполнять все необходимые операции управления передачей и размещения данных на диске.

SFTP вполне удовлетворяет работе с одним пользователем и одним сервером, кроме того, его легко использовать и программировать.

Утилита FTP.

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

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

По сути, FTP-утилита представляет собой интерпретатор команд оболочки в команды (и их последовательности) FTP-протокола. Отправка команд FTP-соединения, анализ ответов сервера FTP, открытие канала передачи данных, процесс передачи данных - все это происходит внутри FTP-модуля. Обо всех событиях передачи команд и данных пользователь информируется в соответствии с интерпретацией этих событий FTP-утилитой.

В качестве примера приведен сценарий передачи с FTP-сервера текстового файла на локальный хост.

C:\>ftp
ftp> open ftp.sun.com
220-Welcome to Sun Microsystems Corporate FTP Server.
220-
220- ftp FTP server (ftpd Wed Oct 30 23:31:06 PST 1996) ready.
User (ftp.sun.com: (none)): ftp
331 Guest login ok, send your complete e-mail address as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 34
dr-xr-xr-x 8 root 0 512 Feb 14 1997 .
d--x--x--x 3 root users 512 Oct 31 1996 etc
drwxrwx-wt 3 root 42 5120 Nov 21 10:37 incoming
drwxrwxr-x 12 root 42 4096 Nov 19 23:26 pub
dr-xr-xr-x 4 root users 512 Jun 7 1996 usr
-rw-r--r-- 1 root users 49 Sep 27 1996 welcome.msg
226 Transfer complete.
624 bytes received in 19,66 seconds (0,03 Kbytes/sec)
ftp> get welcome.msg primer.txt
200 PORT command successful.
150 Opening ASCII mode data connection for welcome.msg (49 bytes).
226 Transfer complete.
50 bytes received in 2,73 seconds (0,02 Kbytes/sec)
ftp> quit
221 Goodbye.

Синтаксис команды:

ftp [-v] [-d] [-n]

  • v - подавляет ответы серверы и статистику передачи данных;
  • n - управляет режимом идентификации пользователя. Если указан этот ключ, то сначала проверяется файл.netrc;
  • i - выключает подтверждения передачи файла при массовом копировании файлов;
  • d - включает режим отладки;
  • g - отключает прозрачность передачи имен.

Важными командами являются команды приема/передачи данных get, put, mget, mput и bin. Команды get и put предназначены соответственно для приема и передачи одного файла. Команды mget и mput выполняют те же действия, что и предыдущие, но для группы файлов. Команда bin позволяет передавать данные в двоичном режиме, что важно для передачи программ и архивов, кроме того, этот режим бывает полезен для символьных данных с произвольной длиной строки (ASCII ограничивает длину строки 254 символами). Другой полезной командой является команда hash. Строка: "ftp> hash #" при работе с медленными линиями или передаче больших файлов позволяет видеть процесс передачи данных (знак # выдается после передачи каждого блока, вместо # можно поставить и другой символ).

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

Что такое FTP?

Как вы, наверное, знаете, существуют различные протоколы для передачи данных через интернет и другие сети. Каждый раз, когда вы набираете адрес сайта в адресной строке браузера, к нему автоматически добавляется спереди «http://». Это обозначение протокола HTTP (HyperText Transfer Protocol – протокол передачи гипертекста). Этот протокол используется для передачи пользователю от сервера HTML-страниц и связанных с ними элементов (графики, флэш-роликов, скриптов и т.д. и т.п.). По нему же часто передаются и файлы, которые пользователь скачивает на свой компьютер.

Но сейчас речь не о нём, а о другом протоколе – он, как вы можете увидеть из заголовка, называется FTP. Расшифровывается эта аббревиатура как File Transfer Protocol – протокол передачи файлов. Возникает вполне логичный вопрос: если мы только что говорили, что с помощью HTTP пользователь может скачать файл с сервера себе на компьютер, зачем понадобился ещё один протокол для передачи файлов?

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

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

Во-первых, FileZilla поддерживает защищённое соединение через безопасные шифруемые протоколы SSL и SFTP, что весьма немаловажно в наше время. При этом имеется поддержка скачки и закачки файлов, имеющих размер более 4 Гб, а также встроенный менеджер сайтов. Программа умеет работать под разными операционными системами и имеет специальную портативную версию, которую можно носить с собой на «флэшке» и запускать без установки. Дополняет картину многоязычный интерфейс программы , причём среди языков есть и русский.

Итого

Что ж, как видите, в работе с протоколом FTP никаких особых сложностей не наблюдается. Большинство пользователей вполне могут обойтись «Проводником» Windows или своим любимым браузером, ну а те, кто хочет чего-то большего, смогут не тратить деньги на дорогие специализированные программы и не заниматься их взломом, а воспользоваться бесплатными решениями, ничем не уступающим в качестве коммерческим. Успехов вам в «общении» с FTP-серверами!

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

Что из себя представляет порт и зачем он нужен

Если разобраться, то все предельно просто. У операционной системы компьютера есть определенное ограниченное число портов. Они нужны для того, чтобы программы могли к ним подключаться через сеть. Это сделано для того, чтобы приложения не конфликтовали между собой во время попытки подсоединиться к сети. Порт — это лишь цифра транспортного протокола. Его можно сравнить с трассой. Если все программы запускать по одной и той же «трассе», то на ней быстро образуется пробка. Потому для каждого приложения должен быть выделен свой уникальный порт — то есть еще не занятое другими программами число.

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

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

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

Что такое активный и пассивный режим, и как они связаны с портами

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

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

Но дело в том, что в протоколе FTP есть два типа соединения:

  1. Управляющее.
  2. Соединение для передачи данных.

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

Как настроить порты по умолчанию, чтобы FTP-сервер заработал

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

По умолчанию в FTP настроены 20 и 21 порты. Наибольшее значение имеет 21 порт, который необходим для того, чтобы вы могли открыть сервер и передавать ему команды — то есть он нужен для управляющего соединения. А вот 20 порт нужен в основном для активного режима. В любом случае вам необходимо освоить навык проброса портов, чтобы обойти стандартные блокировки системы и роутера.

Проблема в том, что далеко не все пользователи Windows решаются на затею создать у себя на компьютере FTP-сервер. Потому операционная система блокирует доступ инородных тел (удаленных компьютеров) на ПК через основные каналы транспортных протоколов. И, как правило, 21 и 20 порты также входят в список заблокированных для удаленных клиентов. А блокируют их со стороны компьютера — брандмауэр, и устройство-посредник для доступа к Интернету — роутер. Вам нужно научиться обходить эту двойную защиту, чтобы вы могли открывать не только 21 порт, но и другие, когда потребуется.

Настройка проброса портов 21 и 20 начинается с изменения конфигураций брандмауэра. Вам необходимо открыть «Панель управления» через «Пуск». Далее отыщите вкладку «Система и безопасность» и внутри нее найдите раздел «Брандмауэр Windows». Далее вам необходимо добраться к «Дополнительным параметрам брандмауэра» в левом боковом меню настроек. Брандмауэр работает посредством правил, потому вам нужно лишь создать новые стандарты для этой службы, чтобы она не мешала работе FTP-сервера. Для этого нажмите «Правила для входящих подключений» и кнопку «Создать правило». Ничего прописывать не придется — это не написание программы, так как в Windows все работает через интуитивно понятный интерфейс. Вам нужно будет указать тип правила «Для порта». Потом выбрать «Протокол TCP» и указать в форме «Определенные локальные порты» число 21. Далее разрешаете подключение через порт 21, определяете уровень доступа для клиентов, прописываете название правила и сохраняете введенные настройки.

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

Куда сложнее обстоят дела с роутерами. Дело в том, что их сейчас большое множество. Потому открыть порты 21 и 20 через роутер каким-то универсальным способом не получится — у каждой марки и модели свои нюансы, в которых нужно разбираться. Если вы вообще никогда не влазили в настройки роутера, то лучше не спешите с этим. Почитайте на форумах, разберитесь в меню и функциях, и только затем пробуйте пробросить порт в роутере.

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

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

Обязательно ли использовать 21 порт

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

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

Протокол FTP входит в стандарты Интернета и служит для передачи больших объемов информации. Первые спецификации, в которых был этот протокол появились в 1971 году. С того времени возможности FTP значительно расширились и сложно себе представить, как бы пользователи смогли бы без него обходиться, если им нужно было бы скачать или закачать в онлайн-хранилище несколько гигабайт нужных файлов. А сколько времени пришлось бы затратить, чтобы перенести сайт с локальный машины на сервер, или наоборот? Конечно, можно воспользоваться архиватором, но что если сервер не поддерживает эту функцию? Страшно даже представить. Так что FTP - это довольно полезный инструмент.

Понятие «протокол» означает согласованный формат обмена информацией между двумя устройствами. А сама как «file transfer protocol», что можно перевести как «протокол для передачи файлов». Для протокол FTP использует TCP-канал. Обмен построен по принципу «клиент-сервер». Передавать по этому протоколу нельзя, так как в нем нет защиты данных и на сервер передается открытый текст. Конечно, обычно для подключения к FTP-серверу нужно проходить аутентификацию, но на это не стоит слишком надеяться, поскольку идентификатор и пароль пользователя передается открытым текстом.

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

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

Как использовать протокол FTP , если ваша ОС не Windows

Если вы предпочитаете Linux, то можно ознакомиться с документацией по доступным операциям, набрав команду $ man ftp. А для того, чтобы подключиться к FTP-серверу, нужно набрать $ ftp yoursite.at.domain. Чаще всего используются такие команды:

  • binary - изменение режима на передачу двоичных (нетекстовых) файлов, к примеру, картинок;
  • ascii - переключение на передачу текстовой информации;
  • cd foldername - смена текущего каталога на удаленном компьютере на входящую в него папку с именем foldername;
  • dir - просмотр всех файлов в текущем каталоге удаленного компьютера;
  • help - помощь по использованию команд;
  • mget - одновременное скачивание нескольких файлов;
  • put filename - служит для загрузки на удаленный ресурс локального файла filename;
  • mput - загрузка на удаленный ресурс нескольких файлов;
  • exit - завершение работы с FTP и выход в ОС.

Можно также воспользоваться такими программами, как gFTP, FOFF и FileZilla.

Как использовать протокол FTP , если вы предпочитаете Windows

В этом случае все гораздо проще, и вам подойдет любой FTP-клиент, который легко найти в сети. Из бесплатных наибольшей популярностью пользуются такие приложения, как FileZilla, FTPInfo, WinSCP. Соединение с помощью протокола FTP могут поддерживать и такие популярные файловые менеджеры, как Total Commander и FAR manager. Так что, если вы не так часто используете этот протокол, то ими вполне можно обойтись.

Ну а если просто разово понадобилось что-то скачать, то можно набрать в браузере вместо URL примерно такую команду:

ftp://user:[email protected]:port, в которой

site.at.domain - имя сервера,

port - номер порта для подключения (обычно это 21, и его можно пропустить).

Если нужно подключиться к анонимному FTP, то используется сокращенная запись команды:

ftp://host.at.domain:port

Бывает так, что при подключении по протоколу FTP возникают какие-либо проблемы. В этом случае есть смысл проверить настройки FireWall и антивируса.

Описание протокола

Отличие от HTTP

Соединение и передача данных

Поддержка веб-браузерами

Синтаксис

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

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

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

FTP не разрабатывался как защищённый (особенно по нынешним меркам) протокол и имеет многочисленные уязвимости в защите. В мае 1999 авторы RFC 2577 свели уязвимости в следующий список проблем:

  • Скрытые атаки (bounce attacks)
  • Спуф-атаки (spoof attacks)
  • Атаки методом грубой силы (brute force attacks)
  • Перехват пакетов, сниффинг (packet capture, sniffing)
  • Защита имени пользователя
  • Захват портов (port stealing)

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

Безопасный FTP

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

FTPS

Явный FTPS - расширение стандарта FTP, позволяющее клиентам требовать того, чтобы FTP-сессия была зашифрована. Это реализуется отправкой команды "AUTH TLS". Сервер обладает возможностью позволить или отклонить соединения, которые не запрашивают TLS. Это расширение протокола определено в спецификации RFC 4217 . Неявный FTPS - устаревший стандарт для FTP, требующий использования SSL- или TLS-соединения. Этот стандарт должен был использовать отличные от обычного FTP порты.

SFTP

SFTP, или "SSH File Transfer Protocol", не связан с FTP, за исключением того, что он тоже передаёт файлы и имеет аналогичный набор команд для пользователей. SFTP, или безопасный FTP, - это программа, использующая SSH (Secure Shell) для передачи файлов. В отличие от стандартного FTP он шифрует и команды, и данные, предохраняя пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот.

FTP через SSH (не SFTP)

FTP через SSH (не SFTP) относится к практике туннелирования обычной FTP-сессии через SSH-соединение. Поскольку FTP использует несколько TCP-соединений, туннелирование через SSH особенно затруднительно. Когда много SSH-клиентов пытаются установить туннель для канала управления (изначальное "клиент-сервер" соединение по порту 21), защищён будет только этот канал; при передаче данных программное обеспечение FTP на любом конце установит новые TCP-соединения (каналы данных), которые обойдут SSH-соединение и, таким образом, лишатся целостной защиты .

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

  • Tectia ConnectSecure (Win/Linux/Unix)
  • Tectia Server for IBM z/OS из пакета SSH Communications Security
  • (под лицензией GPL)

FTP через SSH иногда относят к безопасным FTP; но не стоит путать его с другими методами, такими как SSL/TLS (FTPS). Другие методы передачи файлов с помощью SSH и не связанные с FTP - SFTP и SCP ; в каждом из них и учётные и файловые данные всегда защищены протоколом SSH.

История

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

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

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

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

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

  • 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 - Имя пользователя для входа на сервер

Коды ответов FTP

Ниже представлено краткое описание кодов ответа, которые могут быть возвращены FTP-сервером . Эти коды были стандартизированы IETF в RFC 959 . Как было сказано ранее, код ответа - трёхзначное число. Первая цифра отвечает за один из трёх исходов: успех, отказ или указание на ошибку либо неполный ответ.

  • 2xx – Успешный ответ
  • 4xx/5xx – Команда не может быть выполнена
  • 1xx/3xx – Ошибка или неполный ответ

Вторая цифра определяет тип ошибки:

  • x0z – Синтаксическая.
  • x1z – Информация. Соответствует информационному сообщению.
  • x2z – Соединения. Сообщение относится к управляющему соединению либо к соединению данных.
  • x3z – Соответствует сообщениям об аутентификации пользователя и его правах.
  • x4z – Не определено.
  • x5z – Файловая система. Соответствует сообщению о состоянии файловой системы.

Третья цифра окончательно специфицирует ошибку.

Пример

220 FTP server ready. USER ftp //Анонимус 230 Login successful. PASV 227 Entering Passive Mode (192,168,254,253,233,92)//Клиент должен открыть соединение на переданный IP LIST 150 Here comes the directory listing. //Сервер передает список файлов в директории 226 Directory send OK. CWD incoming 250 Directory successfully changed. PASV 227 Entering Passive Mode (192,168,254,253,207,56) STOR gyuyfotry.avi 150 Ok to send data. //Клиент передает содержимое файла 226 File receive OK. QUIT 221 Goodbye.

Аргумент 192,168,254,253,207,56 означает, что соединение к серверу ожидается на узле с IP-адресом 192.168.254.253 на порту 207 << 8 + 56 = 53048 (где << - операция побитового сдвига, 207 записывается в младший разряд, а потом сдвигается в старший, чтобы в младший записать 56 или 207*256+56=53048).

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

FXP

FXP (англ. File eXchange Protocol - протокол обмена файлами) - способ передачи файлов между двумя FTP-серверами напрямую, не закачивая их на свой компьютер . При FXP-сессии клиент открывает два FTP-соединения к двум разным серверам, запрашивая файл на первом сервере, указывая в команде PORT IP-адрес второго сервера.

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

FXP стал использоваться злоумышленникам для атак на другие серверы: в команде PORT указывается IP-адрес и порт атакуемого сервиса на компьютере жертвы, и командами RETR/STOR производится обращение на этот порт от лица FTP-сервера, а не атакующей машины, что позволяло устраивать масштабные DDoS -атаки с использованием сразу многих FTP-серверов, либо обходить систему безопасности компьютера жертвы, если он полагается только на проверку IP клиента и используемый для атаки FTP-сервер находится в доверенной сети или на шлюзе. В результате сейчас практически все серверы проверяют соответствие IP-адреса, указанного в команде PORT, IP-адресу FTP-клиента и по умолчанию запрещают использование там IP-адресов третьих сторон. Таким образом, использование FXP невозможно при работе с публичными FTP-серверами.

См. также

  • Список FTP серверов (англ.)
  • Команды и коды ошибок FTP сервера

Ссылки

  • Первоначальная спецификация FTP RFC 959
  • Расширения безопасности RFC 2228
  • Интернационализация FTP RFC 2640
  • Расширение NAT-PT для поддержки FTP RFC 2766
  • Шифрование KEA и SKIPJACK RFC 2773
  • Расширение команд FTP RFC 3659