Контакты

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

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


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


FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, в 1971 году. До начала 90-х годов на долю FTP приходилось около половины трафика в сети Интернет. Он и сегодня широко используется для распространения ПО и доступа к удалённым хостам.


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


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


Процесс авторизации FTP Процесс нешифрованной авторизации проходит в несколько этапов (символы \r\n означают перевод строки): 1. Установка TCP-соединения с сервером (обычно на 21 порт) 2. Посылка команды USER логин\r\n 3. Посылка команды PASS пароль\r\n После успешной авторизации можно посылать на сервер другие команды.


Анонимный вход на FTP Если к серверу разрешён анонимный доступ (как правило, лишь для загрузки данных с сервера), то в качестве логина используется ключевое слово «anonymous» или «ftp», а в качестве пароля адрес электронной почты: 1. USER anonymous\r\n 2. PASS


Основные команды протокола ABOR Прервать передачу файла CDUP Сменить директорию на вышестоящую. CWD Сменить директорию. DELE Удалить файл (DELE filename). EPSV - Войти в расширенный пассивный режим. Применяется вместо PASV. HELP Выводит список команд принимаемых сервером.


Основные команды протокола LIST Возвращает список файлов директории. Список передается через соединение данных (20 порт). MDTM Возвращает время модификации файла. MKD Создать директорию. NLST Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт). NOOP Пустая операция


Основные команды протокола PASV Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении следующих команд RETR, LIST и тд. PORT Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту. PWD Возвращает текущую директорию. QUIT Отключиться








Пример работы FTP 220 FTP server ready. USER ftp //Анонимус 230 Login successful. PASV 227 Entering Passive Mode (192,168,254,253,233,92)//Клиент должен открыть соединение на переданный IP LIST 150 Here comes the directory listing. //Сервер передает список файлов в директории 226 Directory send OK. CWD incoming 250 Directory successfully changed. PASV 227 Entering Passive Mode (192,168,254,253,207,56) STOR gyuyfotry.avi 150 Ok to send data. //Клиент передает содержимое файла 226 File receive OK. QUIT 221 Goodbye.


Аргумент 192,168,254,253,207,56 означает, что соединение от сервера ожидается на узле с IP-адресом на порту 207*256+56= На многих FTP-серверах существует каталог (под названием incoming, upload и т. п.), открытый на запись и предназначенный для закачки файлов на сервер. Это позволяет пользователям наполнять сервер свежими данными.


PASSIVE MODE Изначально протокол предполагал встречное TCP- соединение от сервера к клиенту для передачи файла или содержимого каталога. Это делало невозможным общение с сервером, если клиент находится за IP NAT, кроме того, часто запрос соединения к клиенту блокируется файерволом. Чтобы этого избежать, было разработано расширение протокола FTP passive mode, когда соединение для передачи данных тоже происходит от клиента к серверу. Важным моментом является то, что клиент устанавливает соединение с адресом и портом, указанным сервером. Порт сервер выбирает случайным образом из определённого диапазона (). Поэтому при нахождении ftp-сервера за NAT, следует явно указать в настройках сервера его адрес.


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


FXP FXP (англ. File eXchange Protocol протокол обмена файлами) способ передачи файлов между двумя FTP-серверами напрямую, не закачивая их на свой компьютер. При FXP- сессии клиент открывает два FTP-соединения к двум разным серверам, запрашивая файл на первом сервере, указывая в команде PORT IP-адрес второго сервера. Несомненным преимуществом поддержки стандарта FXP является то, что на конечных пользователей, желающих скопировать файлы с одного FTP-сервера на другой, уже не действует ограничение пропускной способности их собственного интернет-соединения. Нет необходимости скачивать себе файл, чтобы потом положить его на другой FTP- сервер. Таким образом, время передачи файлов будет зависеть только от скорости соединения между двумя удаленными FTP- серверами, которая в большинстве случаев заведомо больше «пользовательской».


FXP К сожалению, FXP стал использоваться злоумышленникам для атак на другие серверы: в команде PORT указывается IP-адрес и порт атакуемого сервиса на компьютере жертвы, и командами RETR/STOR производится обращение на этот порт от лица FTP-сервера, а не атакующей машины, что позволяло устраивать масштабные DDoS-атаки с использованием сразу многих FTP-серверов, либо обходить систему безопасности компьютера жертвы, если он полагается только на проверку IP клиента и используемый для атаки FTP-сервер находится в доверенной сети или на шлюзе. В результате сейчас практически все серверы проверяют соответствие IP-адреса, указанного в команде PORT, IP-адресу FTP-клиента и по умолчанию запрещают использование там IP-адресов третьих сторон. Таким образом, использование FXP невозможно при работе с публичными FTP-серверами.


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


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


FTP-клиент Примерами таких программ могут служить: Интернет-браузеры (часто работают в режиме «только чтение», то есть не позволяют добавлять файлы на сервер) Многие файловые менеджеры, например: Windows Explorer (Проводник), Total Commander, FAR, Midnight Commander, Krusader Специализированные программы, например: FileZilla


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


Для авторизации FTP-сервер, при подключении к нему FTP-клиента, запрашивает у последнего имя пользователя и пароль. Большинство FTP-клиентов в свою очередь запрашивают эти данные у пользователя в интерактивном режиме. Есть также и другой способ указать эти данные, включив их в URL FTP-сервера. Так, например, в строке ftp:// указание того, что мы используем протокол FTP vasya имя пользователя: разделитель имени пользователя и пароля key разделитель аутентификационной информации и адреса сервера ftp.example.com адрес FTP-сервера


Коды ответов FTP Первая позиция Единица означает, что команда принята к выполнению но ещё не завершена Двойка означает, что выполнение команды успешно завершено Тройка говорит о том, что команда принята и ожидается какая-либо дополнительная команда Четверка говорит о том, что в данный момент команда выполнена быть не может Пятерка означает принципиальную невозможность выполнения команды


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




ИНФОРМАТИКА

Реферат на тему:

«FTP-протокол. Общие сведения и особенности».

Факультет: юридический

Выполнил: ANTONiO.

Ст. билет: 13Ю02444

В данном окне настройки программы настраиваются общие функции. Такие как:

· название FTP-сервера;

· максимальное количество пользователей сервера, которые могут находится на сервере в одно время;

· загрузочные опции сервера, которые активируется вместе с запуском ОС;

· назначение порта, на котором будет прослушиваться фтп.



2.3. Опциональные настройки программы

В данных настройках настраиваются опциональ­ные возможности про­граммы. Такие важные настройки как:

· возможность ограничения доступа к директории и поддиректориям, где расположен FTP-сервер;

· шифрование паролей эккаунтов пользователей;

· ограничение проверки эккаунта пользователя и его пароля до n-раз, затем автоматическая установка его в бан либо просто выкидывание с сервера;

· настройка ограничения доступа с IP-адресов.

2.4. Дополнительные настройки программ

В данном окне настраива­ются технические возможности программы, оптимизирующие быстродействие её и системы в целом. Это такие настройки как:

· настройка принимающего буфера (в байтах), полезно для медленных или загруженных сетевых решений;

· основное предназначение сервера (закачива­ние/скачивание, только скачивание, только закачивание);

· приоритет FTP-сервера в общем списке процессов ОС;

· блокирование передачи с сервера на сервер;

· анти-хаммеринг система (слишком частые попытки зайти на сервер без каких-либо на то причин).

2.5. Настройки кэширования программы

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

2.7. Генератор статистики

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

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

2.7. Планировщик и настройка динамических IP адресов

В данных настройках настраиваются такие функции как:

· старт/остановка FTP-сервера по расписанию;

· выполнение стандартных системных функций ОС по расписанию;

· слежение за динамическим изменением определённых IP-адресов.

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

2.8. Настройка MULTIIP-адресов и визуализация программы

Данные опции позволяют настроить мульти IP-адреса (пользователи могут иметь одинаковые логины и пароли на разных «виртуальных» FTP-серверах), а также визуализацию программы (отображение иконки активности сервера в systemtray, отображение статуса передачи файла, автоматическая проверка обновлений программы, удаление файлов в корзину ОС или непосредственно в DEV\NULL (физическое удаление)).

2.9. Настройка ведения лог-файлов (отчётов.

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

2.10. Настройка реакций программы на события

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

2.11. Настройка прав и полномочий пользователей

Данные настройки можно произвести через закладку USERACCOUNTS. Здесь можно прописать следующие полномочия:

· задать определённый список пользователей и прописать для каждого из них свои полномочия;

· задать список директорий, к которым пользователь может получить доступ, а также атрибуты доступа для каждой из них;

· настройка дополнительных настроек;

· настройка квотирования и ограничения скорости;

· возможность задать список разрешённых/запрещённых IP-адресов;

· подробный общий статус за весь период работы сервера.



3.0. Некоторые проблемы FTP-серверов

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

Проблема этих вспомогательных соединений в том, что существующая спецификация FTP протокола не предусматривает какого-либо метода проверки того, что клиент или сервер, который установил соединение это именно тот, кто запросил это соединение в управляющем сеансе. Это, в сочетании с фактом того, что многие операционные системы назначают TCP порты последовательно в возрастающем порядке, означает, что в результате в FTP протоколе создаются условия позволяющие атакующей стороне перехватить данные, которые передает кто-либо другой, либо подменить данные. Эти атаки слегка отличаются в активном и пассивном режиме. Когда передача данных осуществляется в активном режиме, атакующая сторона угадывает номер TCP порта, на котором конечный клиент ожидает соединения. Затем атакующий непрерывно посылает FTP серверу, к которому подключен клиент, команды PORT ip,of,client,machine,port,port RETR filename или STOR filename. Используя RETR, если надо подменить данные, передаваемые клиенту или STOR, если надо перехватить данные от клиента к серверу. Или, атакующий может использовать атаки, основанные на знании TCP sequence number и подменить сеанс связи от сервера к клиенту. Правда, используя этот тип атак невозможно перехватить данные, можно только подменить их своими.

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

Команды управления контролем передачи данных, которыми обмениваются «Интерпретатор протокола сервера» и «Интерпретатор протокола пользователя», можно разделить на три большие группы:

1. Команды управления доступом к системе.

2. Команды управления потоком данных.

3. Команды FTP-сервиса.

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

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

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

CWD. Команда позволяет пользователям работать с различными каталогами удаленной файловой системы. Аргументом команды является строка, указывающая путь каталога удаленной файловой системы, в котором желает работать пользователь.

REIN. Команда реинициализации. Эта команда очищает все переменные текущего пользователя, сбрасывает параметры соединения. Если в момент подачи команды происходит передача данных, передача продолжается и завершается с прежними параметрами.

QUIT. Команда закрывает управляющий канал. Если в момент подачи команды происходит передача данных, канал закрывается после окончания передачи данных.

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

PORT. Команда назначает адрес и порт хоста, который будет использоваться как активный участник соединения по каналу передачи данных. Аргументами команды являются 32-битный IP адрес и 16-битный номер порта соединения. Эти значения разбиты на шесть 8-битных полей и представлены в десятичном виде: h1, h2, h3, h4, p1, p2, где hN - байты адреса (от старшего к младшему), а pN - байты порта (от старшего к младшему).

PASV. Эта команда отправляется модулю, который будет играть пассивную роль, в передаче данных («слушать» соединение). Ответом на данную команду должна быть строка, содержащая адрес и порт хоста, находящиеся в режиме ожидания соединения в формате команды PORT – «h1, h2, h3, h4, p1, p2».

Команды TYPE, STRU, MODE определяют, соответственно, тип передаваемых данных (ASCII, Image и другие), структуру или формат передачи данных (File, Record, Page), способ передачи (Stream, Block и другие). Использование этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодействующих хостов.

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

RETR. Эта команда указывает модулю «Программа передачи данных сервера» передать копию файла, заданного параметром этой команды, модулю передачи данных на другом конце соединения.

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

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

ABOR. Команда предписывает серверу прервать выполнение предшествующей сервисной команды (например, передачу файла) и закрыть канал передачи данных.

Команда DELE удаляет указанный файл.

Команды MKD и RMD , соответственно, создают и удаляют указанный в аргументе каталог.

При помощи команд LIST и NLST можно получить список файлов в указанном каталоге.

Все команды FTP-протокола отправляются «Интерпретатором протокола пользователя» в текстовом виде - по одной команде в строке. Каждая строка команды - идентификатор и аргументы - заканчиваются символами . Имя команды отделяется от аргумента символом пробела - .

Обработчик команд возвращает код обработки каждой команды, состоящий из трех цифр. Коды обработки составляют определенную иерархическую структуру и, как правило, определенная команда может возвратить только определенный набор кодов. За кодом обработки команды следует символ пробела - , затем следует текст пояснения. Например, строка успешного завершения операции выглядит следующим образом: «200 Command okay».

Ниже приведен пример работы с FTP-протокола. Обозначения: S - сервер, U - пользователь.

S: 220 Service ready for new user

> S: 331 User name okay, need password

S: 230 User logged in, proceed

U: RETR test.txt

S: 150 File status okay; about to open data connection

<Идетпередачафайла...>

S: 226 Closing data connection, file transfer successful

S: 200 Command okay

Сетевая файловая служба на основе протокола 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

FTP (File Transfer Protocol, или “Протокол передачи данных”) - один из старейших протоколов в Internet и входит в его стандарты. Первые спецификации FTP относятся к 1971 году. С тех пор FTP претерпел множество модификаций и значительно расширил свои возможности. FTP может использоваться как в программах пользователей, так и в виде специальной утилиты операционной системы.

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

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

    Протокол FTP - один из протоколов передачи информации по Интернету.

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

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

    В настоящее время практически все функции FTP доступны и через HTTP, однако FTP все еще используется как основной протокол для доступа к крупным архивам файлов в сети.

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

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

Существует очень большое разнообразие протоколов прикладного уровня. Приведем в качестве примеров хотя бы несколько наиболее распространенных реализаций файловых сервисов: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

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

БЕЗОПАСНОСТЬ.

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

Можно использовать защищенный режим работы протокола передачи файлов FTP. Для обеспечения дополнительного уровня безопасности, рекомендуется использование "безопасного" FTP - secure FTP. Эта возможность реализуется путем имитации передачи FTP-трафика через туннель с использованием SSH2-сервера. Для конечного пользователя это значит, что используя свой любимый FTP-клиент (программу для работы с сайтом по протоколу FTP - CuteFTP, например) Вы, произведя несложные дополнительные настройки, обеспечите себе уверенность в том, что проблема безопасности при передаче файлов решена.

Поддержку режима "SFTP over SSH2" обеспечивают некоторые современные FTP-программы, к которым можно отнести CuteFTP Pro и SecureFX , например.

При использовании FAR, степень безопасности работы с FTP тоже можно повысить. Правда, не совсем так, как описано выше, но тоже очень качественно. К FAR нужно установить дополнительный модуль FarScp , после чего можно передавать файлы не по FTP, как обычно, а с помощью scp (secure copy) клиента, который работает как по SSH, так и по SSH2.

Как работает FTP . Для передачи файла с помощью протокола FTP нужны две программы: FTP-клиент и FTP-сервер.

Рис. 1. Схема работы протокола FTP

FTP-клиент .

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

Пример FTP-клиента - программы CuteFTP, Go!Zilla, ReGet и т.д. Называются они менеджерами загрузки . У них удобный интерфейс и позволяют пользователям удобно осуществлять загрузку-выгрузку файлов.

FTP-сервер .

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

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

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

    Для каждого файла и каталога FTP сервера можно определить права доступа пользователя путём установки атрибутов:

Только для чтения и т.д.

Что такое FTP соединение .

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


Рис. 2. Организация информационного обмена между двумя удаленными машинами

Контрольные вопросы

1. Когда в первые появились FTP протоколы?

- В 1971 году;*

- В 1099 году;

- В 1989 году.

2.Что такое протокол FTP ?

- это протокол трансляции файлов;

- это протокол передачи файлов;*

- это протокол приёма файлов.

3. Что такое FTP-клиент?

- это программа, которая содержит общедоступные файлы;*

- это программа, с помощью которой можно произвести соединение с FTP сервером;

- это пользователь (группа пользователей).

4. Что такое FTP-сервер ?

- это компьютер, который содержит общедоступные файлы;*

- это локальный компьютер;

- это компьютер хостинг-провайдера.

5. Что такое л окальный веб-узел?

- это исходный веб-узел;*

- это конечный веб-узел;

- это изменённый веб-узел.

6. Что такое хостинг?

- это процесс обработки файлов;

- это создание нового веб – узла;

- это размещение сайта на компьютере хостинг-провайдера для обеспечения доступа к сайту всем пользователям Интернет.*

7.Что такое удаленный веб-узел?

- это конечный узел (сервер), на котором производится публикация сайта;*

- это исходный веб-узел;

- это компьютер в Интернете.

(downloading) ?

- это копирование файлов из компьютера в Интернет на ваш компьютер;*

- это копирование файлов с вашего компьютера на удалённый компьютер;

- это копирование файлов с вашего компьютера в Интернет.

9. Что такое

- это копирование файлов с вашего компьютера на компьютер в Интернете;*

- это копирование файлов из компьютера в Интернет на ваш компьютер;

- это копирование файлов с вашего компьютера на удалённый компьютер.

10. Что такое сообщение (message) ?

- этоединица данных, которой оперирует прикладной уровень;*

- это файл;

- это текстовый документ.

Понравилась статья? Поделитесь ей