Особенности работы протокола FTP. Смотреть что такое "FTP" в других словарях Ftp служит

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

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

FTP-клиентом может служить интернет-браузер (MS Internet Explorer, Netscape Navigator), программа управления файлами FAR, специализированная программа CuteFTP и другие. FTP-клиент встроен также в некоторые HTML-редакторы, такие как HomeSite, Dreamweaver или FrontPage.

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

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

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

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

2.Выбор каталога.

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

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

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

FTP довольно необычная процедура, так как поддерживает две логические связи между ЭВМ (Рис. 1). Одна связь служит для удаленного доступа и использует протокол Telnet. Другая связь предназначена для обмена данными. Сервер производит операцию passive open для порта 21 и ждет соединения с клиентом. Клиент осуществляет операцию active open для порта 21. Канал остается активным до завершения процедуры FTP. TOS (тип IP-сервиса) соответствует минимуму задержки, так как этот канал используется для ручного ввода команд. Канал для передачи данных (TCP) формируется каждый раз для пересылки файлов. Канал открывается перед началом пересылки и закрывается по коду end_of_file (конец файла). IP-тип сервиса (TOS) в этом случае ориентирован на максимальную пропускную способность.

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

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

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

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

Возможна и другая схема взаимодействия, когда по инициативе клиента осуществляется файловый обмен между двумя ЭВМ, ни одна из которых не является машиной клиента (рис. 2).

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

На фазе задания режима обмена предоставляются следующие возможности:

1. Команда Block сохраняет структуру логических записей файла. 2. Команда Stream устанавливает режим, при котором не производится пересылки контрольной информации для блоков. Это наиболее быстрый режим обмена, он работает по умолчанию. 3. Команда TYPE может задать режимы обмена IMAGE, ASCII или EBCDIC. Из них ASCII - используется по умолчанию. Режим EBCDIC применяется для обменов между ЭВМ, работающими с набором символов EBCDIC. Режим IMAGE предполагает обмен 8-битными байтами, используется для передачи двоичной (а не текстовой) информации. Более подробный список команд помещен ниже. Структурно информация может передаваться в виде файлов (структура по умолчанию), в виде последовательности записей (применимо для текстовых файлов ASCII или EBCDIC) или постранично (последняя структура не относится к числу рекомендуемых). 4. Для копирования файла из удаленного сервера используется команда GET, для копирования группы файлов - MGET, в последнем случае применяются символы заменители, например, MGET *.txt (или RFC-18*.txt, при этом скопируются файлы с RFC-1800.txt до RFC-1899.txt, если таковые существуют в текущем каталоге). Аналогом команды GET в какой-то степени является команда DIR (ls), только она переносит содержимое каталога, что для некоторых операционных систем эквивалентно. При использовании модификации mget проявляйте осторожность - вы можете заблокировать телекоммуникационный канал длительным копированием. Для записи файла в удаленный сервер применяется команда PUT. При операциях обмена обычно используется текущий каталог локальной ЭВМ. В вашем распоряжении всегда имеется возможность поменять местный каталог с помощью команды LCD или ее аналога.

Любая команда обмена выполняется в несколько этапов:

  • Формирование канала под управлением клиента, так как именно клиент выдал команду get, dir, put и т.д.
  • Клиент выбирает произвольный номер порта на своей ЭВМ и осуществляет процедуру passive open для этого порта.
  • Клиент посылает номер порта серверу по каналу управления (порт 21), используя команду PORT. Можно обойтись и без команды PORT (используется тот же порт, что и в командном канале), но это увеличивает задержки и по этой причине не рекомендуется.
  • Сервер получает номер порта по каналу управления и выдает команду active open в указанный порт ЭВМ-клиента. Сервер для канала данных всегда использует порт с номером 20.
Список команд FTP:
  • open имя_сервера - открыть соединение. Открывает соединение с сервером. Это имя можно указать сразу при вводе команды, загружающей клиента: ftp ftp.karelia.ru.
  • cd имя_директории - сменить каталог. Осуществляет переход в другой рабочий каталог на FTP-сервере.
  • dir [имя_файла] - выдать список файлов. Выдает список файлов в текущей директории. Если Вам интересен формат списка каталога, нажмите здесь. Не забывайте, что можно использовать шаблоны групповых операций.
  • get имя_файла [имя_локального_файла] - переписать файл. Переписывает файл с удаленного компьютера на локальный. Если указано имя локального файла, то записывает его под этим именем, иначе - в каталог по умолчанию.
  • mget [имя_файла] - переписать группу файлов. То же самое, что и get, но разрешается использовать шаблоны. Перед копированием каждого файла будет запрашиваться подтверждение. Для отмены подтверждений введите prompt.
  • prompt - отменяет подтверждение в командах mget и mput.
  • put имя_файла [имя_удаленного_файла] - записать файл на сервер. Переписывает файл с локального компьютера на удаленный под именем имя_удаленного_файла. Если оно не указано, то файл записывается в текущий каталог с именем локального файла. Команда запрещена для анонимных пользователей
  • mput [имя_файла] - записать группу файлов. То же самое, что и put, но разрешается использовать шаблоны. Перед записью каждого файла будет запрашиваться подтверждение. Для отмены подтверждений введите prompt.
  • ascii - устанавливает ascii-способ передачи файлов. Используется для пересылки файлов-текстов на английском языке. Однако для надежности лучше использовать binary.
  • binary - устанавливает двоичный способ пересылки файлов. При этом файл при передаче не перекодируется и записывается в неизмененном виде. Это наиболее надежный способ передачи файлов.
  • close - закрывает соединение с данным сервером и производит возврат в командный режим. Эта команда автоматически выполняется при выходе из FTP-клиента.
  • quit - выход из FTP-клиента.
  • user - регистрирует на текущем сервере с новым именем. Используйте эту команду, если Вы первый раз по ошибке неправильно ввели имя анонимного пользователя и не хотите снова перенабирать команду open.
  • lcd [имя_директории] - осуществляет переход на локальном компьютере в указанный каталог.
  • pwd - выводит на экран текущий каталог на удаленном компьютере.
  • system - выводит на экран тип операционной системы на удаленном компьютере.
  • help - помощь. Выдает краткую информацию о командах FTP-клиента или о конкретной указанной команде.

FTP (File Transfer Protocol — протокол передачи файлов) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям, построенный на архитектуре «клиент-сервер» и использующий разные сетевые соединения для передачи команд и данных между клиентом и сервером.

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

Протокол достаточно простой, для его работы используются различные TCP соединения для команд и для передаваемых данных. Обычно это 21 порт для управляющих команд и 20 для передачи данных (в прочем это может быть и по другому). После установки TCP соединения на 21 порт общение FTP клиента с сервером происходит по средствам достаточно простых текстовых команд .

В соответствии с RFC 959 Сервер по потоку управления (21 порт) отвечает трехзначными ASCII-кодами состояния с необязательным текстовым сообщением.

Существует 2 режима работы протокола FTP: активный и пассивный.

В активном режиме клиент создаёт управляющее TCP-соединение с сервером на 21 порту и отправляет серверу свой IP-адрес и произвольный номер клиентского порта, после чего ждёт, пока сервер не запустит TCP-соединение с этим адресом и номером порта.

В пассивном режиме клиент использует поток управления (TCP порт 21), чтобы послать серверу команду PASV, и затем получает от сервера его IP-адрес и номер порта, которые затем используются клиентом для открытия потока данных с произвольного клиентского порта к полученному адресу и порту.

Знание режимов работы FTP помогает, если вам нужно подключаться к FTP серверу или поднимать его в сети, которая спрятана за NAT и\или защищена брендмауэром, что как можно догадаться не редкость. Если клиент не может принимать входящие соединения на произвольный порт, то необходимо настроить сервер в пассивном режиме, тогда входящие соединения к клиенту не потребуются, но сервер же должен быть готов принять входящее соединение на заранее установленные порты. Активный режим подойдет серверу, администратор которого не готов принимать входящие соединения на порты кроме 21, но в этом случае клиент сможет подключится только если сам примет входящие соединение. Так что в любом случае придется кому то открыть дополнительные порты.

При передачи могут быть использованы четыре представления данных:

    ASCII — используется для текста.

    Режим изображения (бинарный) — устройство-отправитель посылает каждый файл байт за байтом, а получатель сохраняет поток байтов при получении.

    EBCDIC — используется для передачи обычного текста между хостами в кодировке EBCDIC.

    Локальный режим — позволяет двум компьютерам с идентичными установками посылать данные в собственном формате без конвертации в ASCII.

Передача данных может осуществляться в любом из трёх режимов:

    Поточный режим — данные посылаются в виде непрерывного потока, освобождая FTP от выполнения какой бы то ни было обработки.

    Блочный режим — FTP разбивает данные на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаёт их TCP.

    Режим сжатия — данные сжимаются единым алгоритмом.

FTP использует для аутентификации логин и пароль для предоставления доступа. Имя пользователя посылается серверу командой USER, а пароль — командой PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начинается сессия. Логин и пароль передаются открытым текстом, так что безопасным этот способ назвать нельзя. Так же FTP сервер может предоставлять анонимный доступ к данным, то есть для всех желающих, не спрашивая логин и пароль.
Существуют расширения и способы для безопасной передачи данных и аутентификации, например: FTPS SFTP FTP через SSH.

Приведу пример FTP сессии со своими комментариями. Тут показан вывод команд (только в управляющем канале, естественно) которые FTP клиент передавал серверу и ответы сервера без сокращений (звездочками заменю некоторые параметры, например пароль из соображений безопасности):

Status: - это сообщение FTP клиента, при обмене командами с FTP "вручную" вы этих сообщений не увидите. Response: - это ответы FTP сервера Command: - это те команды которые клиент отправляет серверу (в ручном режиме вы будете вводить их с клавиатуры).

S tatus: Connecting to 37.140.*.* ...
Status: Connected with 37.140.*.*. Waiting for welcome message...
Response: 220 (vsFTPd 2.2.2) - итак, стучимся на 21 порт 37.140.*.* и нам говорят что там трудится vsFTPd
Command: USER ********* - посылаем имя пользователя
Response: 331 Please specify the password. - имя пользователя принято
Command: PASS ******** - посылаем пароль
Response: 230 Login successful. -пароль принят
Command: SYST - "и какая у вас ОС?" спросим мы
Response: 215 UNIX Type: L8 - "а вот такая" ответит сервер
Command: FEAT - что ты можешь, сервер?
Response: 211-Features: - а вот что:)
Response: EPRT

Response: UTF8
Response: 211 End - сервер закончил перечислять функции
Command: OPTS UTF8 ON - говори с нами в кодировке UTF-8
Response: 200 Always in UTF8 mode. - да не вопрос
Status: Connected - Это мы оживляем соединение
Command: PWD - покажи нам рабочий каталог
Response: 257 "/" - на! это название рабочего каталога (у нас /)
Command: TYPE A - но сначала зададим режим представления данных
- ок
Command: PASV - и попросимся в пассивный режим
Response: 227 Entering Passive Mode (37,140,192,202,249,140). - получили список портов
Command: LIST - отдай список содержимого каталога

- в этом месте мы получили оглавление по каналу данных
Command: TYPE A
Response: 200 Switching to ASCII mode.
Status: Retrieving directory listing...
Command: CWD www - меняем рабочий каталог на www
Response: 250 Directory successfully changed. -ответ "ок"
Command: PWD - снова запрашиваем рабочий каталог
Response: 257 "/www" - теперь он /www
Command: TYPE A - и выбрав режим представления данных
Response: 200 Switching to ASCII mode.
Command: PASV - опять в пассивном режиме
Response: 227 Entering Passive Mode (37,140,192,202,252,174).
Command: LIST - запрашиваем оглавление каталога
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Status: Directory listing successful -оглавление мы получили и теперь
Status: Starting download of /www/google8f2c0456e362dfaa.html - хотим скачать файл
Command: TYPE A - для этого опять выберем тип
Response: 200 Switching to ASCII mode.
Command: PASV - и режим передачи данных
Response: 227 Entering Passive Mode (37,140,192,202,254,190).
Command: RETR google8f2c0456e362dfaa.html - и скажем: "Отдай на файл"
Response: 150 Opening BINARY mode data connection for google8f2c0456e362dfaa.html (53 bytes).
Response: 226 Transfer complete. - и вот файл был получен по каналу данных
Status: Download successful
Status: Retrieving directory listing...

Command: MKD fff - а вот тут мы создали папку
Response: 257 "/www/moop-nz.ru/02-uslugi/fff" created
Command: RNFR /www/moop-nz.ru/02-uslugi/fff - и хотим переименовать папку fff
Response: 350 Ready for RNTO.
Command: RNTO /www/moop-nz.ru/02-uslugi/eee - в папку eee
Response: 250 Rename successful. - операция прошла успешно

Command: RMD /www/moop-nz.ru/02-uslugi/eee/ - удаляем ранее созданную папку
Response: 250 Remove directory operation successful. - всё получилось
Status: Connected
Status: Starting upload of C:\12345\12345 001.jpg - начинаем загружать файл на сервер

Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (37,140,192,202,243,234).
Command: STOR 12345 001.jpg - на этот раз отправляем файл на сервер
Response: 150 Ok to send data.
Response: 226 Transfer complete.
Status: Upload successful
Status: Retrieving directory listing...
Command: TYPE A
Response: 200 Switching to ASCII mode.
Command: PASV
Response: 227 Entering Passive Mode (37,140,192,202,251,25).
Command: LIST
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Status: Directory listing successful
Command: DELE /www/moop-nz.ru/02-uslugi/12345 001.jpg - и удаляем его напоследок
Response: 250 Delete operation successful.

Много создали люди FTP серверов и клиентов (как никак с 1971 живет протокол).

Есть специальные программы работающие в качестве FTP клиента, такие как: FileZilla, gFTP, cURL, lftp и многие другие, но сейчас в качестве FTP клиента может работать почти любой браузер (Mozilla Firefox, Konqueror, Opera, Яндекс.Браузер, Google Chrome, Internet Explorer и т.д.) или файловый менеджер (Midnight Commander, Krusader, GNOME Commander, Konqueror, Nautilus, Dolphin, FAR Manager, Total Commander, Проводник Windows и т. д.), так что в использовании специальных программ нет необходимости (хотя я пользуюсь иногда gFTP).

Для того чтобы поднять свой FTP сервер с преферансом и аутентификацией понадобится специальная программа, которая будет исполнять роль сервера. Таких программ тоже много, в том числе: vsftpd, ProFTPD, Pure-FTPd, glFTPd, oftpd, Serv-U File Server и многие другие.

Кажется в общих чертах понятно, что такое FTP и для чего оно нужно.

  • Назад
  • Вперёд
Добавить комментарий


  • Телеметрия в Windows 10. Отключай, не отключай, всё равно получишь лучшее решение
  • Го. Компьютер смог обыграть чемпиона трехкратного чемпиона Европы по игре го
  • Новые "подарки" от Microsoft - "стабильность" и "приватность"

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

Для обмена информации между компьютерами были разработаны стандарты передачи и обработки информации, которые назвали сетевыми протоколами. Наиболее распространены протоколы IP, ICMP, TCP, UDP, SMTP, POP/POP3, IMAP, HTTP/HTTPS и FTP, но существуют и другие, менее известные, такие как SSH, TELNET и другие.

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

IP, ICMP, TCP и UDP

IP (Internet Protocol – интернет протокол) и TCP (Transmission Control Protocol – протокол управления передачей) - это два совершенно различных протокола, которые обычно связывают друг с другом. Часто употребляются комбинации сразу нескольких протоколов, так как функции различных протоколов могут быть совмещены таким образом, чтобы получить решение поставленной задачи. В комбинации каждый протокол выполняет операции на своем уровне.

При передачи информации по интернету, её разбивают на мелкие части – интернет пакеты, которые передаются независимо друг от друга. Это существенно ускоряет передачу информации за счет того, что различные части могут передаваться по разным маршрутам, после чего вновь собираются на месте получения в единое целое. Это также мера предотвращения потери информации в процессе передачи. Протокол TCP отвечает за создание интернет пакетов и из обратную сборку в нужном порядке в месте получения, а также проверяет целостность информации. Если часть пакетов утеряна в процессе передачи, они передаются повторно.

Интернет протокол (IP) используется для доставки информации по нужному адресу. Каждый компьютер, который имеет подключение к интернету имеет свой уникальный адрес – . Каждый отправленный пакет содержит адрес доставки. Интернет пакет может пройти через много маршрутизаторов прежде, чем достигнет своего места назначения. Интернет протокол отвечает за маршрутизацию пакета к указанному компьютеру. IP не создает физических подключений между компьютерами. Он может быть использован совместно с другими протоколами, которые создают подключения.

Для передачи малых кусков информации можно использовать протокол UDP (User Datagram Protocol – протокол пользовательских дейтаграмм). Он также используется совместно с интернет протоколом, но намного проще чем TCP. В отличии от TCP, UDP не гарантирует доставку пакетов в нужной последовательности и не дублирует передачу утерянных пакетов, соответственно он потребляет меньше системных ресурсов, а скорость передачи существенно выше. Он применяется в приложениях которым, требуется большая пропускная способность линий связи, либо малое время доставки данных, например для аудио или видео связи.

Существует и совершенно иной протокол низкого уровня – ICMP (Internet Control Message Protocol – протокол межсетевых управляющих сообщений). В основном он используется в диагностических или сервисных целях, таких как передача сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают.

Почтовые протоколы – SMTP, POP, IMAP

Для передачи и получения электронной почты требуются свои собственные протоколы. Почту обычно отправляют по протоколу SMTP (Simple Mail Transfer Protocol – простой протокол передачи почты). Его также используют для передачи почты между почтовыми серверами. При настройке почтовых клиентов (например, Outlook Express) требуется указывать адрес SMTP сервера. Для получения почты с сервера почтового ящика почтовые клиенты обычно используют протокол POP (Post Office Protocol – протокол почтового отделения). На текущий момент действует его третья редакция (версия), которая называется POP3 (Post Office Protocol Version 3 – протокол почтового отделения, версия 3). Для возможности получения почты при настройке в почтовом клиенте необходимо указать адрес POP3 сервера. Адреса SMTP и POP3 серверов могут совпадать, а могут и не совпадать, их следует уточнить у почтового провайдера. Протоколы SMTP и POP3 работают совместно с TCP протоколом для передачи и доставки почты через интернет.

Существует и более функциональный, но менее известный протокол для чтения электронной почты – IMAP (Internet Message Access Protocol – протокол доступа к электронной почте интернета). Данный протокол позволяет получить доступ к письмам хранящимся в почтовом ящике на сервере без необходимости загрузки её на локальный компьютер. Это очень удобно, когда требуется доступ к письмам почтового ящика с нескольких компьютеров. IMAP также работает совместно с протоколом TCP.

Протоколы HTTP и HTTPS

Веб страницы используют язык разметки гипертекста (HTML – HyperText Markup Language). HTML страницы передаются через интернет по стандарту, который называется протокол передачи гипертекста (HTTP – HyperText Transfer Protocol). Основой HTTP является технология «клиент-сервер», то есть пользователь инициирует соединение к серверу для запроса информации, а сервер ожидает соединения для получения запроса, обрабатывает запрос и возвращают обратно сообщение с результатом. HTTP работает совместно с протоколом TCP. Адреса использующие HTTP протокол начинаются с „http:”.

С протоколом HTTP связан протокол HTTPS (HTTP over TLS – HTTP по TLS). Он обеспечивает шифрование при передачи данных для защиты конфиденциальной информации. Адреса URL использующие HTTP протокол начинаются с „https:”.

Протокол передачи файлов – FTP

Протокол передачи файлов (FTP – File Transfer Protocol) предназначен для передачи файлов в компьютерных сетях с одного компьютера на другой. Он обеспечивает возможность простого управления файлами на удаленном компьютере. Это достаточно старый протокол, который был введен в эксплуатацию до всемирной паутины (WWW – World Wide Web). В настоящее время он используется в основном для загрузки файлов на веб сервера, однако существуют и файловые хранилища, работающие по протоколу FTP. Он работает совместно с протоколом TCP. Адреса URL использующие FTP протокол начинаются с „ftp:”.

Для одновременной работы серверов по протоколам SMTP , POP , IMAP , HTTP , HTTPS , FTP и др. вовсе не требуются отдельные компьютеры или ip-адреса. Все эти сервера можно установить на один компьютер с одним ip-адресом. Это достигается за счет то, что каждый из протоколов использует свой .

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

Способ первый: Internet Explorer 8

Любому пользователю Интернета знакомы HTTP-адреса для доступа к веб-сайтам, которые вводятся в адресной строке браузера - например, . Адреса для доступа к FTP-серверам строятся по такому же принципу: .

Введите в адресной строке адрес общедоступного FTP-хранилища, например, Microsoft (рис. A) и нажмите . В случае успешного подключения вы увидите корневой каталог. Для доступа к подкаталогам и файлам нажмите на основном каталоге. Чтобы загрузить файл, нажмите на нем правой кнопкой мыши и выберите опцию «Сохранить объект как» (Save Target As).

Как видите, на сервере хранятся все статьи базы данных, исправления, обновления, утилиты и документация Microsoft, только представлены они в виде списка с датами. Подробные сведения о FTP-хранилище содержатся в файлах «readme.txt».

Рисунок A. FTP-сервер Microsoft - вид из Internet Explorer 8.

Обратите внимание: для успешного подключения к FTP-серверу с помощью IE должны быть включены опции «Разрешить просмотр FTP-папок (за пределами Internet Explorer)» (Enable FTP folder view (outside of Internet Explorer)) и «Использовать пассивный FTP-протокол (для совместимости с брандмауэрами и DLS-модемами)» (Use Passive FTP (for firewall and DSL modem compatibility)) в разделе «Обзор» (Browsing) на вкладке «Дополнительно» (Advanced) диалогового окна «Свойства обозревателя» (Internet Options). Вызвать его можно из меню «Сервис» (Tools).

Для доступа к частным FTP-серверам необходимо ввести имя пользователя и пароль (рис. B). Однако таким способом в IE 7 или IE 8 можно посмотреть лишь список файлов. Для загрузки придется воспользоваться Проводником (Windows Explorer). Подробнее см. на рис. C, D, E и F.


Рисунок B. Для доступа к частным FTP-серверам требуется имя пользователя и пароль.


Рисунок C. Выберите опцию «Страница | Открыть FTP-узел в Проводнике Windows» (Page | Open FTP Site in Windows Explorer) или «Вид | Открыть FTP-узел в Проводнике Windows» (View | Open FTP Site in Windows Explorer), чтобы запустить Проводник.



Рисунок D. В диалоговом окне с предупреждением безопасности Internet Explorer нажмите кнопку «Разрешить» (Allow).

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

.jpg

Или применить более сложный вариант, ежели используется порт, отличный от 21:

Ftp://login:password@сайт:35/images/file-1.jpg

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


Чтобы подключиться через уже настроенный клиент FileZilla к удаленному серверу, необходимо ввести название хоста, в качестве которого используется , соответствующий его домену ( и ), имя пользователя, пароль и порт.

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

Но продолжим. Схематически взаимодействие «клиент-сервер» при ФТП-соединении можно наглядно представить следующим образом:


Если расписать этот процесс по пунктам, то получится примерно следующее:

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

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

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

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

    Ftp://сайт/images/file-1.jpg

    На практике при анонимном ФТП обычно в качестве логина для доступа применяется известное в сети слово «anonymous», а в качестве пароля — адрес электронной почты, который, впрочем, в большинстве случаев не проверяется.

    Безопасный ФТП (SFTP, FTPS и с использованием SSH)

    Этот протокол изначально не задумывался как защищенный, так ка разрабатывался в далеком 1971 году и использовался поначалу лишь в научно-исследовательской сети APRANET, доступ в которую имели только несколько военных объектов и университетов.

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

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

    По этой причине были разработаны несколько методов, позволяющих зашифровать передаваемую посредством ФТП информацию. Вкупе все эти способы получили обобщающее и емкое название «Безопасный FTP» . Вот какие разновидности протокола соответствуют этому термину:

    1. FTPS (FTP + SSL) — фактически это расширение стандартного протокола передачи файлов, которое обеспечено криптографическим протоколом SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день более передовым его аналогом является TLS (Transport Layer Security — защита транспортного уровня). При этом есть два метода предоставления безопасности:

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

    1.2. Явный — намного более удобный, так как применяет команды стандартного протокола FTP, но при отправке ответа зашифровывает информацию, что позволяет сохранить совместимость, поскольку в этом случае применяются одни и те же порты как для FTPS, так и для FTP. При этом для шифрования данных клиентом отправляется команда «AUTH TLS» или «AUTH SSL».

    2. SFTP (SSH FTP) — протокол прикладного уровня для передачи файлов, который работает поверх безопасного канала, его не следует путать с «Simple File Transfer Protocol», имеющего такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ФТП протокол, который снабжен SSH (Secure Shell - безопасная оболочка).

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

    3. FTP через SSH — производит обычную FTP-сессию через SSH-туннель, то есть этот вариант нельзя путать с SFTP, который является отдельным независимым протоколом. Этот метод нельзя назвать стопроцентно безопасным. Почему?

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

    Надеюсь, вы не запутались во всех этих вариантах безопасных протоколов. Для того, чтобы как-то облегчить понимание, позволю себе сделать краткое резюме. Объективно обеспечивающим самую высокую степень защиты является SFTP. Немного уступает ему в надежности явный FTPS, однако он более удобен, поскольку дает возможность пользоваться обычными портами. Какой из них выбрать, зависит от вида задачи, которая перед вами стоит и, конечно, настроек сервера.