Для каких целей используется ftp служба кратко

Обновлено: 07.07.2024

FTP-сервер — это сервер, работающий по протоколу File Transfer Protocol и предназначенный для обмена файлами через Интернет или локальную компьютерную сеть.

Что такое FTP-сервер простыми словами

Для чего нужен FTP-сервер

Как работает FTP-протокол

Как подключиться к FTP-серверу

Что такое FTP-сервер простыми словами

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

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

Серверам FTP свойственны определённые особенности, отличающие их, к примеру, от web-серверов:

использование для каждого соединения отдельного канала;

поддержка бинарного (двоичного) и текстового режимов передачи информации;

необходимость аутентификации пользователя;

возможность определения типов файлов, подлежащих передаче.

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

Для чего нужен FTP-сервер

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

Чаще всего FTP-сервер используется для:

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

обмена корпоративными данными — например, между филиалами одной компании;

передачи контента веб-сайта на сервер хостинговой компании.

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

Как работает FTP-протокол

ftp server

Такое название имеет протокол, ориентированный на пересылку данных в виде файлов в Интернете и локальных компьютерных сетях. Его особенность — множественное соединение. Один канал играет роль управляющего, через него сервер принимает команды и возвращает ответы (как правило, через 21-й порт). Прочие каналы применяются собственно для передачи файлов (чаще всего через 20-й порт).

Есть два режима, в которых может работать протокол:

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

ftp server

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

поточном. Информация перемещается между клиентом и сервером сплошным потоком, протокол её никак не обрабатывает;

блочном. Протокол делит поток информации на блоки (заголовок, объём, собственно данные);

режиме сжатия. Информация перед передачей сжимается тем или иным алгоритмом.

Установка FTP-сервера

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

Установка FTP-сервера

Обратите внимание: компания Microsoft в своей ОС Windows начиная с её 7-й версии реализовала инструмент IIS — Internet Information Services. Он предназначен для того, чтобы открыть к определённой папке общий доступ из сети. Наличие IIS позволяет создать на базе Windows простейший FTP-сервер, не используя для этого стороннее программное обеспечение.

Рассмотрим порядок действий, которые нужно выполнить, чтобы создать сервер FTP в Windows 10, не применяя стороннее ПО.

Настройка FTP-сервера

настройка FTP-сервера

Просто создать сервер FTP недостаточно — чтобы начать им полноценно пользоваться, его нужно настроить. Далее мы рассмотрим порядок действий, которые понадобятся для такой настройки в Windows 10.

Как подключиться к FTP-серверу

подключение к FTP-серверу

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

имя пользователя и пароль;

тип соединения (здесь SSL — возможность анонимного подключения, TLS — безопасное подключение по защищённому протоколу FTPS).

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

Обратите внимание: если вы оставите поле для ввода пароля пустым, Total Commander будет запрашивать пароль всякий раз, когда вы пытаетесь подключиться к серверу. Это не очень удобно, но гораздо лучше с точки зрения безопасности. Если вы зададите пароль при начальной настройке соединения, приложение сохранит его на локальном жёстком диске в незашифрованном виде, что создаст определённые риски.

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

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

Основные требования были такие: простота работы и надёжность при отправке и получении. Таким инструментом стал FTP-протокол.

Принцип работы

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

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

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

Клиент и сервер

Для работы по FTP нужны двое: FTP-сервер и FTP-клиент. Что делает сервер:

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

Так как FTP пришёл к нам из времён UNIX-систем, то любое соединение требует логина и пароля. Если у пользователя его нет, сервер его не пропустит. Но чтобы сделать файлы доступными для всех, используют анонимный режим. В нём логином будет слово anonymous, а паролем — любой адрес электронной почты. Современные браузеры умеют сами заходить на анонимные FTP-серверы и подставлять почту. Со стороны это выглядит так, как будто никакого логина и пароля нет, но они есть.

Чтобы подключиться к серверу, нужна специальная программа, их ещё называют FTP-клиентами. Для каждой операционной системы есть много своих клиентов, например, FileZilla или CuteFTP. Те, кто работает в Linux-подобных системах, часто используют командную строку.


Интерфейс CuteFTP для MacOS.



Работа с FTP в командной строке.

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

В чем смысл вообще

А разница вот в чем:

Уязвимости и надёжность

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

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

Сейчас по умолчанию предполагается, что каждый канал — ненадёжный, и что данные нужно дополнительно шифровать. FTP этого не поддерживает. Если кто-то будет перехватывать ваш Wi-Fi-трафик или подключится к вашей локальной сети, то он сможет перехватить все эти данные и скачать их себе, параллельно с вами.

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

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

Но, большинство пользователей интернета не используют FTP.

Для чего нужен FTP

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

FTP – это один из наиболее простых и первых протоколов передачи данных, разработанных для быстрого копирования файлов с одного устройства на другое. Он разработан в 1971 году, когда первая версия была создана и опубликована Абхаем Бхушаном. В 1980-х годах протокол FTP обновился до версии TCP/IP.

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

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

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

Для чего сегодня используется FTP

Два основных способа использования FTP сегодня:

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

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

Как выглядит FTP

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

Вы сможете зайти на общедоступный FTP-сервер, чтобы получить представление о внешнем виде. Например, компания Adobe предлагает загрузить своё программное обеспечение через FTP для пользователей, владеющих такими программами, как Photoshop, с актуальным ключом продукта, но не имеющими под рукой установочного диска.

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

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

Безопасен ли FTP

Если кратко, то нет, так как FTP-передачи по 21 порту не шифруются, а потому перехватить ваши данные сравнительно легко.

В связи с этим многие используют протоколы FTPS или SFTP. В принципе, они функционируют так же, как и FTP, но шифруют все данные. То есть посторонние не смогут просмотреть ваши файлы, даже если им удастся их перехватить.

Сегодня многие серверы отказываются предоставлять незашифрованный доступ и взамен предлагают FTPS или SFTP. Например, SFTP – это наиболее продвинутый вариант, использующий протоколы и пакеты SSH и, несмотря на аббревиатуру, имеет немного общего с FTP.

Какие FTP-клиенты лучше

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

Могу ли я создать свой FTP

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

Ради получения доступа к данным домашней сети извне, требуется настроить перенаправление портов на маршрутизаторе. Если вы собираетесь сделать свой FTP-сервер общедоступным через Интернет, лучше защитить с помощью шифрования.

Будущее FTP

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

Google Chrome задал тенденцию, отказавшись от FTP ещё весной 2020 года. Функцию можно было активировать с помощью командной строки, но после выхода 82-версии, возможность была упразднена. Браузер Firefox также полностью отказался от FTP начиная с версии 88.0. Safari пока может отображать данные по FTP, но по умолчанию для всех каталогов используется Finder.

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

Хотя это был хороший способ обмена файлами, даже ярым поклонникам FTP придётся искать приемлемую альтернативу.

Служба FTP (от протокола - File Transfer Protocol) - предназначена для обмена файлами.

FTP служба построена по хорошо известной схеме "клиент-сервер".

Клиент (браузер,Windows Commander, NetVampir . ) посылает запросы серверу и принимает файлы.

Сервер FTP (vsftpd, IIS . ) обрабатывает запросы клиента на получение файла.

Взаимодействие клиент и сервера по протоколу FTP.

Служба FTP базируется на двух стандартах:

URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети ;

FTP (File Transfer Protocol) - протокол передачи файлов.

5.2 Протокол FTP

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

Первый стандарт - RFC114 (File Transfer Protocol A.K. Bhushan Apr-10-1971).

Последняя версия - RFC959 (File Transfer Protocol J. Postel, J.K. Reynolds Oct-01-1985).

FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла.

Соединение данных - соединение для передачи файлов.

Схема двух каналов соединения по протоколу FTP

В старых версиях для передачи данных использовался только 20-й порт (активный режим), в современных версиях FTP-серверов порт для канала данных может назначаться сервером из нестандартных (N > 1024) портов (пассивный режим).

Протокол FTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером.

Работа FTP на пользовательском уровне содержит несколько этапов:

Идентификация (ввод имени и пароля).

Определение режима обмена (поблочный, поточный, ascii или двоичный).

Выполнение команд обмена (get, mget, dir, mdel, mput или put).

Завершение процедуры (quit или close).

5.2.1 Различие работы пассивного режима и активного.

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

Действия сервера и клиента:

Клиент устанавливает связь и посылает запрос на 21 порт сервера с порта N (N>1024)

Сервер посылает ответ на порт N (N>1024) клиента

Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1

5.2.1.2 Пассивный режим:

Действия сервера и клиента:

Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с порта N (N>1024)

Сервер посылает ответ и сообщает номер порта для канала данных P (P>1024) на порт N (N>1024) клиента

Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P (P>1024)

Активный FTP выгоден для FTP-сервера, но вреден для стороны клиента. FTP сервер пытается соединиться со случайными высокими (по номеру) портами на клиенте, такое соединение наверняка будет блокировано брандмауэром на стороне клиента.

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

Ниже приведены примеры запроса клиента и ответа сервера:

5.2.1.3.1 Пример запроса на чтение каталога


сервер: 220 megillah.demos.su FTP server (Version wu-2.4) ready. - // код ошибки, имя хоста, протокол, версия сервера, только для чтения
клиент: USER anonymous - // имя пользователя
сервер: 331 Guest login ok, send your complete e-mail address as password.- //код ошибки, имя пользователя корректно, нужен пароль
клиент: PASS ****** - // пароль клиента
сервер: 230 Guest login ok, access restrictions apply. - //код ошибки, пользователь идентифицирован, продолжайте
клиент: CWD / - // переход к корневой директории
сервер: 250 CWD command successful. - // команда выполнена успешно
клиент: TYPE A - // передавать информацию в текстовом виде
сервер: 200 Type set to A. - // текстовый тип установлен
клиент: PASV - // сервер должен определить нестандартный порт данных, начать его слушать
сервер: 227 Entering Passive Mode (194,87,5,52,9,75) - // сервер возвращает ip-адрес (194.87.5.52) и номер порта (2383)
клиент: LIST - // передать по соединению данных список имен файлов в директории
сервер: Data connection established - // установлено соединение данных
клиент: 150 Opening ASCII mode data connection for /bin/ls. - // татус файла правилен, подготавливается открытие канала

5.2.1.3.2 Пример запроса файла

5.2.1.4 Некоторые команды

управления доступом
USER - имя пользователя
PASS - пароль
CWD - имя новой рабочей директории
CDUP - перейти на один уровень директории вверх
QUIT - выход

действия
RETR - имя файла (взять файл)
STOR - имя файла (передать файл)
REST - маркер (для докачки уже частично скаченного файла - обычно указывается смещение в байтах)
DELE - имя удаляемого файла
RMD - имя удаляемой директории
MKD - имя создаваемой директории
PWD - в ответе указать имя текущей директории
LIST [имя директории или файла] - передать по соединению данных список имен файлов в директории или информацию о файле
SYST - ответ должен содержать тип ОС сервера и др. полезную информацию
STAT - ответ содержать информацию о текущем состоянии сервера; если команда выдана в процессе передачи файла и предварена посылкой сигналов telnet-а IP и Synch, то ответ д. содержать информацию о состоянии пересылки
STAT имя файла - ответ должен содержать информацию о файле

прочее
HELP [имя команды] - описание работы данной команды
NOOP - пустая команда

5.2.1.5 Некоторые типы данных:

ASCII (TYPE A ) - передача текстовой информации

IMAGE (TYPE I ) - передача бинарных файлов

5.2.1.6 Коды возврата

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

Первая цифра:
1yz - предварительный положительный ответ: команда принята, но не завершена
2yz - действие успешно завершено
3yz - команда принята, сервер ждет дополнительную информацию
4yz - временная неудача, повторить через некоторое время
5yz - фатальная ошибка

Вторая цифра:
x0z - синтаксис
x1z - ответ на запрос информации
x2z - ответ относится к состоянию управляющего соединения или соединения данных
x3z - аутентификация и учет
x4z - смысл не определен
x5z - состояние файловой системы сервера

5.2.1.6 Некоторые коды возврата

120 Функция будет реализована через nnn минут

125 Канал открыт, обмен данными начат

150 Статус файла правилен, подготавливается открытие канала

200 Команда корректна

211 Системный статус или отклик на справочный запрос

212 Состояние каталога

213 Состояние файла

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

221 Благополучное завершение по команде quit

225 Канал сформирован, но информационный обмен отсутствует

226 Закрытие канала, обмен завершен успешно

230 Пользователь идентифицирован, продолжайте

250 Запрос прошел успешно

331 Имя пользователя корректно, нужен пароль

332 Для входа в систему необходима аутентификация

421 Процедура не возможна, канал закрывается

425 Открытие информационного канала не возможно

426 Канал закрыт, обмен прерван

450 Запрошенная функция не реализована, файл не доступен, например, занят

451 Локальная ошибка, операция прервана

452 Ошибка при записи файла (не достаточно места)

500 Синтаксическая ошибка, команда не может быть интерпретирована (возможно, она слишком длинна)

501 Синтаксическая ошибка (неверный параметр или аргумент)

502 Команда не используется (нелегальный тип MODE)

503 Неудачная последовательность команд

504 Команда не применима для такого параметра

530 Система не загружена (not logged in)

532 Необходима аутентификация для запоминания файла

550 Запрошенная функция не реализована, файл не доступен, например, не найден

552 Запрошенная операция прервана, недостаточно выделено памяти

5.2.1.7 Соединение к FTP с помощью Telnet

Подсоединимся к командному порту FTP (21):

5.3 Протокол TFTP

TFTP - тоже протокол FTP, но поверх протокола UDP (т.е. протокол без гарантированной доставки). Может использоваться в локальной сети, где скорость передачи важнее. На практике используется редко.

5.4 Программы клиенты

FTP - программа запускается с командной строки.

Windows Comander - может работать как FTP-клиент. Позволяет работать с удаленными каталогами также как с локальными.

NetVampire - Специализированный FTP-клиент, который позволяет качать большие файлы и качать по плохим каналам.

FTP (File Transfer Protocol) — протокол передачи файлов. FTP придумали в 1971 году, еще до того, как появились протоколы TCP/IP . Сначала FTP работал поверх протокола NCP. Версия на основе TCP/IP появилась в 1980 году. А в 1985 году была принята спецификация FTP, которой пользуются до сих пор, позже в неё были добавлены полезные расширения, такие как, пассивный режим и поддержка IPv6.

p, blockquote 1,0,0,0,0 -->


p, blockquote 2,0,0,0,0 -->

Место протокола FTP в стеке TCP/IP

p, blockquote 3,0,0,0,0 -->

FTP в стеке TCP

p, blockquote 4,0,0,0,0 -->

Принцип работы протокола FTP

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

p, blockquote 5,0,0,0,0 -->

Принцип работы протокола FTP

p, blockquote 6,0,0,0,0 -->

p, blockquote 7,0,0,0,0 -->

URL состоит из 3-х частей:

В отличии от других протоколов прикладного уровня, протокол FTP использует два отдельных соединения. Первое соединение управляющее, второе соединение для передачи данных.

p, blockquote 9,0,1,0,0 -->

оединение управляющее, второе соединение для передачи данных в ftp

p, blockquote 10,0,0,0,0 -->

Взаимодействие с транспортным уровнем

FTP использует протокол транспортного уровня TCP, а для управляющего соединения на сервере используется порт 21. Соединение для данных может быть установлено в двух режимах: в активном и пассивном, при этом используются разные номера портов.

p, blockquote 11,0,0,0,0 -->

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

p, blockquote 12,0,0,0,0 -->

В активном режиме FTP

p, blockquote 13,0,0,0,0 -->

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

p, blockquote 14,0,0,0,0 -->

Аутентификация в FTP

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

p, blockquote 15,0,0,0,0 -->

Специальный тип пользователя FTP — анонимный пользователь. Для анонимного пользователя в качестве логина используется ftp, или anonymus, а в качестве пароля может использоваться все, что угодно, но рекомендуется использовать свой email. Как правило анонимный пользователь имеет ограниченные права, обычно он может только скачивать файлы и записывать файлы в один определенный каталог.

p, blockquote 16,0,0,0,0 -->

Команды протокола FTP

Протокол FTP, как и многие протоколы прикладного уровня работает в текстовом режиме. Команды FTP похожи на команды протокола POP3 . Большинство из них состоит из 4-х символов, команды:

p, blockquote 17,0,0,0,0 -->

команды протокола FTP

  • Команды USER и PASS используются для аутентификации;
  • LIST позволяет посмотреть содержимое текущего каталога;
  • CWD поменять текущий каталог;
  • RETR позволяет загрузить файл с сервера на клиент;
  • STOR позволяет сохранить файл на сервере;
  • Протокол FTP может передавать данные в двух режимах, текстовом и бинарном. В текстовом режиме возможна отправка управляющих символов, которые будут обработаны специальным образом. В бинарном режиме, обработка специальных символов не производится. Для выбора режима, который будет использоваться для передачи файлов, служит команда TYPE;
  • DELE позволяет удалить файлы;
  • Команды MKD и RMD используются для создания и удаления каталога;
  • По умолчанию FTP сервер работает в активном режиме, т.е. соединение для передачи данных устанавливает сервер. Команда PASV служит для перехода в пассивный режим;
  • Команда QUIT используется для корректного закрытия соединения FTP после того, как все необходимые операции с файлами и каталогами были завершены.

Пример сеанса FTP

Мы подключились к серверу на порт 21, создали управляющее соединение, сервер нам выдал ответ.

p, blockquote 19,0,0,0,0 -->

p, blockquote 20,0,0,0,0 -->

Сначала необходимо пройти аутентификацию. Для этого используется команда USER anonymous и мы хотим подключиться, как анонимный пользователь.

p, blockquote 21,0,0,0,0 -->

p, blockquote 22,0,0,0,0 -->

331 Guest login ok, send your complete e-mail address as password . В данном случае сервер говорит, что он принимает гостевой логин, т.е. идентификатор анонимного пользователя и просит прислать ваш e-mail в качестве пароля.

p, blockquote 23,0,0,0,0 -->

p, blockquote 24,0,0,0,0 -->

Сервер никак не анализирует e-mail, который ему передали, говорит, что аутентификация прошла успешно, но права доступа ограничены 230 Guest login ok, access restrictions apply .

p, blockquote 25,0,0,0,0 -->

Устанавливаем бинарный режим передачи файлов с помощью команды TYPE 1 . Сервер отвечает, что тип передачи данных успешно установлен в 1. 200 Type set to 1 .

p, blockquote 26,0,0,0,0 -->

Мы хотим загрузить сервера в файл, показан путь /pud/tex/latex/llncs2e.zip , но перед тем как загрузить, мы хотим узнать его размер, для этого выдаем команду SIZE /pud/tex/latex/llncs2e.zip . Сервер в ответ выдает размер файла в байтах 213 230229 .

p, blockquote 27,0,0,1,0 -->

Переходим в пассивный режим с помощью команды PASV .

p, blockquote 28,0,0,0,0 -->

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

p, blockquote 29,0,0,0,0 -->

В ответ сервер говорит, что он перешел в пассивный режим 227 Entering Passive Mod (213, 71, 6, 142, 35, 141) и передает нам 6 чисел, которые нужно использовать для установки соединения для передачи данных. Первые 4 числа это IP-адрес , вторые два числа используются, чтобы узнать порт на который нужно установить соединение. Первое число 35 нужно умножить на 256 и прибавить второе число 141, так мы узнаем порт.

p, blockquote 30,0,0,0,0 -->

Для того, чтобы загрузить нужный нам файл используем команду RETR /pud/tex/latex/llncs2e.zip . После того, как мы выдали эту команду сервер ждет, что мы установим соединение с IP-адресом и портом, которые он нам указал.

p, blockquote 31,0,0,0,0 -->

После того, как соединение для передачи данных установлено, сервер сообщает нам об этом в управляющем соединении. 150 Opening BINARY mode data connection for /pud/tex/latex/llncs2e.zip (230229 bytes). Также сервер говорит, что передача данных ведется в бинарном режиме.

p, blockquote 32,0,0,0,0 -->

После того, как передача файла закончена, сервер сообщает нам об этом 226 Transfer complete . Клиент выдает команду QUIT чтобы разорвать соединение. Сервер сообщает нам некоторую статистику, сколько было передано байт и файлов. 221 You have transferred 239229 bytes in 1 file . И говорит до свидания 221 Goodbye. На этом сеанс работы по протоколу FTP завершен.

p, blockquote 33,0,0,0,0 -->

Заключение

p, blockquote 34,0,0,0,0 -->

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

Читайте также: