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

Степан Ильин 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
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001