Файловый протокол

Степан Ильин aka Step

Хакер, номер #076, стр. 076-020-1

(faq@real.xakep.ru)

Протокол FTP и тест-драйв популярных FTP-серверов

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

С чего все начиналось

Протокол FTP (File Transfer Protocol), каким мы его знаем сейчас, появился отнюдь не сразу. Первые разработки протокола для передачи файлов датируются еще 1971 годом. С тех пор его несколько раз обновляли и вносили в стандарт коррективы, а однажды и вовсе практически полностью переработали. Окончательный вариант FTP был полностью описан в RFC-959.

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

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

Иначе говоря, по управляющему (информационному) каналу, работающему в стандарте протокола Telnet, передают только команды. Но они (к примеру, команда на получение файла STOR) в свою очередь могут инициализировать создание канала данных, по которому будут передаваться непосредственно данные (продолжая пример – затребованный файл). Само собой разумеется, что все TCP-соединения и работа с ними скрыты от глаз пользователя. Любой FTP-клиент имеет в своем арсенале набор интерактивных команд (читай врезку), которые понятны для пользователя. Клиент принимает их, преобразовывает в команды протокола и в таком виде передает серверу.

Как происходит соединение?

Рассмотрим процесс установки соединения более подробно. Получив от пользователя команду на коннект с сервером, FTP-клиент в первую очередь налаживает управляющий канал, т.е. устанавливает TCP-соединение с 21-ым портом удаленного компьютера. Сервер в ответ посылает одну или несколько строк с приветствием, в котором обычно содержится описание сервера и информация об его владельце. Для продолжения работы пользователю необходимо произвести авторизацию, т.е. передать имя и пароль от учетной записи. Логин указывается через пробел после команды USER. Аналогичным образом с помощью PASS передается и пароль. Причем в случае анонимного доступа к серверу, в качестве имени юзера необходимо использовать специальное ключевое слово anonymous, а вместо пароля — любой e-mail. Последнее требование, впрочем, уже давно устарело, и сейчас в большинстве случаев в качестве пароля для анонимного пользователя можно указать все, что угодно.

Содержание  Вперед на стр. 076-020-2
Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114