>
 
Активный и пассивный режим FTP. Что такое FTP?
12-09-2012, 03:41 Категория: Полезно знать / Просмотров: 4 300

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

Что такое FTP?

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

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

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

Активный и пассивный режим FTP

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

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

Во время активного режима, на клиенте создается непривилегированный временный порт N>1023 – для управляющего соединения и N+1 порт для передачи данных.

  1. Клиент с временного порта X  посылает SYN запрос на 21 порт сервера
  2. Сервер с 21 порта отвечает SYN ACK на временный порт X клиента
  3. Клиент подтверждает создание соединения отправкой ACK флага.
  4. Клиент отправляет команду PORT, для перехода в активный режим, указывает IP адрес клиента для передачи (чаще всего свой) и клиентский портY, с которым собственно и будет создано соединение для передачи данных.
  5. Режим подтверждается со стороны сервера.
  6. Передача команд для работы с FTP, таких как список каталогов,  инициации передачи или приема информации, удаления файла и остальные. (ниже приведен список FTP команд)
  7. Для создания соединения для передачи данных, сервер с 20 порта отправляет SYN запрос клиенту на временный порт Y, который был указан, вместе с командой PORT.
  8. Клиент отвечает SYN ACK.
  9. Сервер подтверждает создания соединения – передачей флага ACK.
  10. Происходит передача данных.

Если надо закрыть соединение, то после 10 шага, клиент отправляет флаг FIN (ниже приведен список флагов), сервер его подтверждает и соединение закрывается.

Активный и пассивный режим FTP. Что такое FTP?

Пассивный режим FTP.

В пассивном режиме первые три шага такие же, как и в активном.

  1. Клиент с временного порта X посылает SYN запрос на 21 порт сервера
  2. Сервер с 21 порта отвечает SYN ACK на временный порт 1024 клиента
  3. Клиент подтверждает создание соединения отправкой ACK флага.
  4. Клиент отправляет команду PASV, для перехода в пассивный режим.
  5. Сервер подтверждает переход в пассивный режим, отправляет PASV ACK, свой IP адрес и временный порт Z, для передачи данных.
  6. Клиент с порта Y отправляет SYN запрос на создание соединения на серверный порт Z, который был указан, вместе с подтверждением PASV ACK.
  7. Сервер подтверждает создание соединения SYN ACK.
  8. Клиент создает соединение и отправляет флаг ACK.
  9. Передача команд для работы с FTP, таких как список каталогов, инициация передачи или приема данных и остальные. (ниже приведен список FTP команд).
  10. Происходит передача данных.

Активный и пассивный режим FTP. Что такое FTP?

Список FTP команд.

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

Флаги TCP(управляющие биты)

URG — Поле «Указатель важности» задействовано (англ. Urgent pointer field is significant)
ACK — Поле «Номер подтверждения» задействовано (англ. Acknowledgement field is significant)
PSH — (англ. Push function) инструктирует получателя протолкнуть данные, накопившиеся в приемном буфере, в приложение пользователя
RST — Оборвать соединения, сбросить буфер (очистка буфера) (англ. Reset the connection)
SYN — Синхронизация номеров последовательности (англ. Synchronize sequence numbers)
FIN (англ. final, бит) — флаг, будучи установлен, указывает на завершение соединения (англ. FIN bit used for connection termination).

Надеюсь, внес ясность в принципы работы FTP-протокола.  bully

источник

 

Добавить коммент
КОММЕНТАРИИ
  • smilelaughing
    wink
    angry

Вопрос:

_ + 3 = 34 ( допишите недостающие число )

Ответ: