Протокол ftp позволяет. Протокол FTP — что это такое, для чего используют. Активный и пассивный FTP

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

.jpg

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

Ftp://login:password@сайт:35/images/file-1.jpg

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


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

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

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


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

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

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

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

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

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

Ftp://сайт/images/file-1.jpg

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

Безопасный ФТП (SFTP, FTPS и с использованием SSH)

Этот протокол изначально не задумывался как защищенный, так ка разрабатывался в далеком 1971 году и использовался поначалу лишь в научно-исследовательской сети APRANET, доступ в которую имели только несколько военных объектов и университетов.

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

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

По этой причине были разработаны несколько методов, позволяющих зашифровать передаваемую посредством ФТП информацию. Вкупе все эти способы получили обобщающее и емкое название «Безопасный FTP» . Вот какие разновидности протокола соответствуют этому термину:

1. FTPS (FTP + SSL) — фактически это расширение стандартного протокола передачи файлов, которое обеспечено криптографическим протоколом SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день более передовым его аналогом является TLS (Transport Layer Security — защита транспортного уровня). При этом есть два метода предоставления безопасности:

1.1. Неявный является устаревшим и использует стандартный протокол, требующий применения SSL или TLS, которые могут обеспечить шифрование информации. При таком методе обязательно нужно использовать порты, отличные от обычных, что создает неудобства, поскольку нарушается совместимость клиентов и серверов, не поддерживающих FTPS.

1.2. Явный — намного более удобный, так как применяет команды стандартного протокола FTP, но при отправке ответа зашифровывает информацию, что позволяет сохранить совместимость, поскольку в этом случае применяются одни и те же порты как для FTPS, так и для FTP. При этом для шифрования данных клиентом отправляется команда «AUTH TLS» или «AUTH SSL».

2. SFTP (SSH FTP) — протокол прикладного уровня для передачи файлов, который работает поверх безопасного канала, его не следует путать с «Simple File Transfer Protocol», имеющего такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ФТП протокол, который снабжен SSH (Secure Shell - безопасная оболочка).

Главное, в чем заключается его отличие от стандартного ФТП и ФТПС, это то, что СФТП шифрует абсолютно все команды, имена пользователей, пароли и другую конфиденциальную информацию. Так как это совершенно другая конфигурация, клиенты FTP (FTPS) не могут соединиться с SFTP-сервером.

3. FTP через SSH — производит обычную FTP-сессию через SSH-туннель, то есть этот вариант нельзя путать с SFTP, который является отдельным независимым протоколом. Этот метод нельзя назвать стопроцентно безопасным. Почему?

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

Надеюсь, вы не запутались во всех этих вариантах безопасных протоколов. Для того, чтобы как-то облегчить понимание, позволю себе сделать краткое резюме. Объективно обеспечивающим самую высокую степень защиты является SFTP. Немного уступает ему в надежности явный FTPS, однако он более удобен, поскольку дает возможность пользоваться обычными портами. Какой из них выбрать, зависит от вида задачи, которая перед вами стоит и, конечно, настроек сервера.

Сетевая файловая служба на основе протокола FTP (File Transfer Protocol) представляет собой одну из наиболее ранних служб, используемых для доступа к удаленным файлам. До появления службы WWW это была самая популярная служба доступа к удаленным данным в Интернете и корпоративных IP-сетях. Первые спецификации FTP относятся к 1971 году. Серверы и клиенты FTP имеются практически в каждой ОС семейства UNIX, а также во многих других сетевых ОС. Клиенты FTP встроены сегодня в программы просмотра (браузеры) Интернета, так как архивы файлов на основе протокола FTP по-прежнему популярны и для доступа к таким архивам браузером используется протокол FTP.

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

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

Протокол FTP выполнен по схеме клиент-сервер. Клиент FTP состоит из нескольких функциональных модулей:

User Interface -- пользовательский интерфейс, принимающий от пользователя символьные команды и отображающий состояние сеанса FTP на символьном экране.

User-Pi -- интерпретатор команд пользователя. Этот модуль взаимодействует с соответствующим модулем сервера FTP.

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

FTP-сервер включает следующие модули:

Server-Pi -- модуль, который принимает и интерпретирует команды, передаваемые по сети модулем User-PL

Server-DTP -- модуль, управляющий передачей данных файла по командам от модуля Server-PL Взаимодействует с локальной файловой системой сервера.

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

Общая схема взаимодействия клиента и сервера выглядит следующим образом:

1. Сервер FTP всегда открывает управляющий порт TCP 21 для прослушивания, ожидая приход запроса на установление управляющего сеанса FTP от удаленного клиента.

2. После установления управляющего соединения клиент отправляет на сервер команды, которые уточняют параметры соединения:

имя и пароль клиента;

роль участников соединения (активная или пассивная);

порт передачи данных;

тип передачи;

тип передаваемых данных (двоичные данные или ASCII-код);

3. После согласования параметров пассивный участник соединения переходит в режим ожидания открытия соединения на порт передачи данных. Активный участник инициирует это соединение и начинает передачу данных.

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

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

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

Эти команды делятся на три группы:

команды управления доступом к системе;

команды управления потоком данных;

команды службы FTP.

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

USER -- доставляет серверу имя клиента. Эта команда открывает управляющий сеанс и может также передаваться при открытом управляющем сеансе для смены имени пользователя.

PASS -- передает в открытом виде пароль пользователя.

CWD -- изменяет текущий каталог на сервере.

REIN -- повторно инициализирует управляющий сеанс.

QUIT -- завершает управляющий сеанс.

Команды управления потоком устанавливают параметры передачи данных:

PORT -- определяет адрес и порт хоста, который будет активным участником соединения при передаче данных. Например, команда PORT 194,85,135,126,7,205 назначает активным участником хост 194.85.135.126 и порт 1997 (вычисление номера порта не тривиально, но вполне однозначно).

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

TYPE -- задает тип передаваемых данных (ASCII-код или двоичные данные).

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

MODE -- задает режим передачи (потоком, блоками и т. п.).

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

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

RETR -- запрашивает передачу файла от сервера на клиентский хост. Параметрами команды является имя файла. Может быть задано также смещение от начала файла -- это позволяет начать передачу файла с определенного места при непредвиденном разрыве соединения (этот параметр Используется в команде reget пользовательского интерфейса).

STOR -- инициирует передачу файла от клиента на сервер. Параметры аналогичны команде RETR.

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

DELE, MKD, RMD, LIST -- эти команды соответственно удаляют файл, создают каталог, удаляют каталог и передают список файлов текущего каталога.

Каждая команда протокола FTP передается в текстовом виде по одной команде в строке. Строка заканчивается символами CR и LF ASCII-кода.

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

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

open имя_хоста -- открытие сеанса с удаленным сервером.

bye -- завершение сеанса с удаленным хостом и завершение работы утилиты ftp.

close -- завершение сеанса с удаленным хостом, утилита ftp продолжает работать.

ls (dir) -- печать содержимого текущего удаленного каталога.

get имя_файла -- копирование удаленного файла на локальный хост.

put имя_файла -- копирование удаленного файла на удаленный сервер.

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

Зачем нужен FTP

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

  • в первом отображается все, что загружено на сервер;
  • во втором - все, что находится на компьютере.

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

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


Уязвимости

FTP - это очень старый протокол. Он появился намного раньше HTTP и не разрабатывался как защищенный. Поэтому у него много проблем с защитой. Вот самые основные:

  • спуф-атаки;
  • перехват пользовательских данных;
  • сниффинг;
  • захват портов.

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

Безопасная передача данных

Существуют следующие методы отсылки данных, защищенные от хакерских атак: FTPS, SFTP, а также передача FTP через SSH. С FTPS можно защитить сессию. FTP-server получает команду AUTH TLS, после чего отклоняет соединения, которые не зашифрованы.


У SFTP похожий список команд, как у FTP. Здесь используется протокол SSH, который шифрует весь трафик. Этим способом кодируются команды и данные. Соответственно, все пароли и другая информация, не предназначенная третьим лицам, не передается в открытом виде.

Другой способ передачи через протокол SSH тунеллирует сессию через SSH-соединение.

Подключение и обмен данных

Предусмотрено два возможных вида работы:

  • активный;
  • пассивный.

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

В настройках FTP можно выбрать следующие режимы передачи:

  • поточный;
  • блочный;
  • сжатый.

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

Авторизация

Для идентификации пользователя и последующего назначения прав для управления файлами используется схема - имя пользователя/пароль. Отправка имени осуществляется командой USER, а пароля - PASS.


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

Отличие от http протокола

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


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

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

Как работать с файлами

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

  1. После появления главного окна в соответствующих полях нужно ввести имя хоста, имя пользователя, пароль, порт.
  2. После успешной авторизации появляется список всего, что загружено на сервер.
  3. Вам следует выбирать объект, который нужно закачать на сервер с компьютера или с сервера на компьютер.
  4. Отметив соответствующий файл, вызывайте контекстное меню при помощи ПКМ, выбирайте нужное действие: скачать, добавить в задание, отредактировать, удалить, переименовать, скопировать адрес, настроить права доступа. Эти функции могут меняться в зависимости от используемой программы.

Существует способ обмена между двумя серверами напрямую без закачки на компьютере. Запрашиваются два соединения к разным серверам. На одном из них выбирается файл для передачи и указывается IP-адрес второго сервера. Для этого используется FXP - протокол прямого обмена.

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

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

Соединение по FTP через браузер

Для соединения, как и при использовании специализированных программ, пользователю необходимо обладать логином, паролем, IP-адресом. Само подключение происходит при использовании командной строки. Для этого нужно ввести адрес такого формата: ftp://логин для входа: пароль сервера@ip адрес. Например, ftp://myname:[email protected]. Если соединение прошло успешно, появляется список всех документов. Как правило, файлы сайта хранятся в папке public_html или www, в зависимости от типа хостинга.

Чтобы скопировать документ, его достаточно просто перетащить. Этот способ не позволяет переносить документы с одного сервера на другой. В браузере легко менять права для чтения/записи. Для этого нужно правой кнопкой мыши выделить файл, который уже есть на сервере. Появится окно с настройками. В нем следует отметить необходимое разрешение.

FileZilla

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


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

Total Commander

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

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

Командная строка

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

  1. Подключение осуществляется командой Open. Использование должно выглядеть так: open ftp.server.com port.
  2. Параметр port можно не указывать, если предполагается использование стандартного 21.
  3. Вместо server.com указывается адрес сервера, на котором располагается сайт.

Для переименования используется rename, для смены текущего каталога стандартно используются cd, для выхода необходимо ввести close, а для удаления - delete или disconnect.

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

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

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

Активный режим

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

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

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

Протокол FTP является разновидностью протокола для передачи данных, который используется с целью копирования и перемещения файлов в интернете и внутри TCP-сетей. FTP достаточно часто применяется с целью загрузки страниц и документов различного типа на хостинговые компьютеры. Протокол FTP использует архитектуру «клиент-сервер» и различные соединения внутри сети для того, чтобы передавать команды и информацию от клиента к серверу и наоборот. Пользователям FTP разрешается проходить процедуру аутентификации при помощи логина и пароля, либо же, если такая форма разрешена на сервере, пользователи могут получать доступ в анонимном режиме.
Кроме обычного протокола, также применяется FTPS, представляющий собой особое расширение стандартного FTP, которое дает возможность клиентам получать доступ к серверу и использовать зашифрованные сессии передачи информации. Такой подход реализуется при помощи отправки команды аутентификации «auth tls», при этом серверу разрешается принимать либо отклонять соединения, не запрашивающие TLS-соединений.

SFTP

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

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

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

Особенности активного режима

Во время активного режима клиент инициирует управляющее соединение с серверным портом 21, передавая команду «port», при помощи которой указывается адрес и порт трансфера информации. После получения этой команды сервер запускает соединение собственного 20-го порта с указанным портом пользователя.
Основным недостатком данного метода является обязательное наличие у пользователя для работы выделенного IP-адреса в интернете. Кроме того, некоторые проблемы могут возникнуть, если клиент находится за брандмауэром либо NAT.

Особенности пассивного режима

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

Настройка в случае использования брандмауэра

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

Настройка в случае использования NAT

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