sonyps4.ru

Что такое FTP-сервер. Протоколы передачи файлов (FTP и TFTP)

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

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

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

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

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

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

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

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 - это протокол передачи данных 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 (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 является разновидностью протокола для передачи данных, который используется с целью копирования и перемещения файлов в интернете и внутри 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-го порта для реализации управляющей сессии, а также указания и проброса диапазона динамических адресов, используемых с целью передачи данных в интернете.



Загрузка...