Протокол ftp это что: Протокол FTP (SFTP, FTPS) — что это такое, соединение между клиентом и сервером по ФТП
НОУ ИНТУИТ | Лекция | Протоколы передачи файлов (FTP и TFTP)
Аннотация: Рассматривается протокол передачи файлов (File Transfer Protocol – FTP) – это стандартный механизм для копирования файла от одного хоста другим
Протокол FTP
Протокол передачи файлов (File Transfer Protocol – FTP) – это стандартный механизм для копирования файла от одного хоста другим [19]. Передача файлов от одного компьютера к другому – это одна из большого числа общих задач, выполнение которой ожидается от организованной сети и взаимодействия между сетями.
Хотя передача файлов от одной системы к другой кажется простой и прямолинейной задачей, вначале должны быть решены некоторые проблемы. Например, две системы могут использовать различные соглашения об именах файлов. Две системы могут иметь различные пути для представления текстов и данных. Две системы могут иметь различные структуры директорий. Все эти проблемы решает FTP очень простым и элегантным методом.
FTP отличается от других приложений типа клиент-сервер тем, что он устанавливает два соединения между хостами. Одно соединение применяется для передачи данных, другое — для управления информацией (команды и отклики). Разделение команд и передачи управляющих данных делает FTP более эффективным. Управление соединением использует очень простые правила для связи. Нам нужна для передачи только линия команд или линия откликов. С другой стороны, соединение для данных нуждается в более сложных правилах из-за разнообразия типов данных.
FTP использует два заданных порта: порт 21 для управления и порт 20 для передачи данных.
Рисунок 13.1 показывает базовую модель FTP. Клиент имеет три компоненты: пользовательский интерфейс, процесс управления клиентом и процесс передачи клиентских данных. Соединение для передачи сигналов управления происходит между процессами управления. Соединение для передачи данных делается для процессов обмена данными.
Рис.
13.1.
FTP
Соединение передачи сигналов управления остается открытым в течение всей интерактивной сессии FTP. Соединение передачи данных каждый раз открывается командой, чтобы вызвать передаваемый файл, и затем закрывается, когда файл передан. Другими словами, когда пользователь начинает FTP-сессию, соединение для передачи сигналов управления открывается. Пока оно открывается, соединение для передачи данных может быть открыто и закрыто много раз, если передается несколько файлов.
Соединения
Два FTP-соединения – для передачи команд управления и передачи данных — используют различные стратегии и различные номера портов.
Соединение для передачи команд управления
Соединение для передачи команд управления создается тем же самым методом, что и другие соединения, рассмотренные далее. Имеется два шага:
- сервер пассивно открывается, подключается к заданному порту и ждет клиента;
- клиент использует временный порт, и сессия активно открывается.
Соединение для передачи команд управления остается открытым в течение всего процесса. Тип услуги, используемый в соответствии с IP-протоколом, – это минимизация задержки, потому что это диалоговая связь между пользователем (человеком) и сервером. Пользователи различного типа посылают команды и ожидают получение откликов без существенной задержки. Рис. 13.2 показывает начальное соединение между сервером и клиентом. Конечно, после начального соединения процесс сервера порождает «дочерние» процессы и назначает свободное обслуживание клиента «дочерним» процессом, использующим кратковременный порт.
Рис.
13.2.
Открытие управляющего соединения
Соединение для передачи данных
Соединение для передачи данных использует заданный порт 20. Однако создание соединения для передачи данных отличается от предыдущего. FTP создает соединение для передачи данных следующим образом:
- Клиент (не сервер) вызывает пассивное открытие кратковременного порта. Это может быть сделано клиентом, потому что клиент вызывает команды для передачи файлов.
- Клиент посылает номер этого порта серверу, используя команду PORT (ниже эта команда будет рассмотрена).
- Сервер получает номер порта, вызывает активное открытие заданного порта 20 и получает номер временного порта.
Шаги для создания начального соединения для передачи данных показаны на рис. 13.3. Позднее мы увидим, что эти шаги меняются, если используется команда PASV.
Рис.
13.3.
Создание соединения для передачи данных
Установление соединения
Процессы FTP клиента и сервера, которые выполняются на различных компьютерах, могут устанавливать соединение друг с другом. Эти два компьютера могут использовать различные операционные системы, различные наборы символов, различные структуры и различные форматы файлов. FTP должен сделать совместимой всю эту неоднородность.
FTP обладает двумя различными подходами для управления соединением: одним для соединения для передачи команд управления и одним для передачи данных. Рассмотрим отдельно каждый метод.
Связь по каналу (соединению) для передачи команд управления
FTP применяет те же самые методы, что TELNET или SMTP, для коммутации по установлению соединения для команд управления. Он использует набор символов NVT ASCII ( Рисунок 13.4). Связь устанавливается с помощью команд и откликов. Посылается одна команда (отклик) в один момент времени. Каждая команда или отклик – это только короткая строка, так что мы можем не беспокоиться о формате файла или структуре файла. Каждая строка заканчивается двумя символами, обозначающими конец строки (возврат каретки и перевод строки).
Рис.
13.4.
Использование соединения управления
Связь по каналу (соединению) передачи данных
Цель и реализация соединения для передачи данных отличается от соединения для сигналов управления. Мы хотим передать файлы по каналу для передачи данных. Клиент должен различать тип файла, который должен быть передан, структуру данных и режим передачи. Перед тем как передавать по каналу для передачи данных, мы подготавливаем передачу по каналу для сигналов управления. Проблема разнородности решается с помощью определения трех атрибутов: тип, структура данных и режим передачи ( рисунок 13.5).
Рис.
13.5.
Использование соединения для передачи данных
Тип файла
FTP может передавать через соединение для передачи данных следующие типы файлов:
- ASCII-файл. Это формат, используемый по умолчанию для трансляции текстовых файлов. Каждый символ закодирован с использованием NVT ASCII-символов. Передатчик преобразует файл из собственного представления в NVT ASCII, и приемник преобразует символы NVT ASCII в собственное представление.
- EBCDIC-файл. Если оба конца соединения используют кодирование EBCDIC, файл может быть передан с использованием EBCDIC-кодирования.
- Image-файл. Этот файл по умолчанию — формат для передачи двоичных файлов. Файл посылается как непрерывный поток бит без всякой интерпретации и кодирования. Он в большинстве случаев используется для передачи двоичных файлов, таких как компилированная программа.
Если файл закодирован в ASCII или EBCDIC, другие атрибуты должны дополняться, чтобы определить возможность печати файла:
- Запрещенный для печати. Это формат по умолчанию для передачи текстовых файлов. Файл не содержит «вертикальных» спецификаций для печати. Это означает, что файл не может быть напечатан без предварительной обработки, потому что он не содержит символов, интерпретируемых для вертикального передвижения печатающей головки. Этот формат используется для файлов, которые будут накоплены и обработаны позднее.
- TELNET. В этом формате файл содержит NVT ASCII вертикальные символы, такие, как CR (перевод каретки), LN (перевод строки), NL (новая строка) и VT (вертикальное табулирование). Эти файлы могут быть напечатаны после передачи
Структура данных
FTP может передавать файл по соединению для передачи данных, используя одну из следующих интерпретаций структуры данных:
- Файловая структура (по умолчанию). Этот файл не имеет структуры. Это непрерывный поток данных.
- Структура записи. Этот файл, разделенный внутри записи Он может быть использован только с текстовым файлом.
- Страничная структура. Это файл, разделенный на страницы, каждая страница имеет номер и заголовок страницы. Страницы могут быть накоплены или достигнуты с помощью произвольного или последовательного доступа.
Режимы передачи
FTP может передавать файл по соединению для передачи данных, используя один из трех следующих режимов передачи:
- Поточный режим. Это режим по умолчанию. Данные доставляются от FTP к TCP как непрерывный поток данных. TCP отвечает за разбиение данных на сегменты соответствующего размера. Если данные — просто поток байтов (файловая структура), то не нужно никакого признака окончания файла. Окончание файла в этом случае — это разъединение соединения данных отправителем. Если данные разделены на записи (структура по записи), каждая запись будет иметь однобайтный символ окончания записи (EOR — end of record).
- Блочный режим. Данные могут быть доставлены от FTP и TCP в блоках. В этом случае блоку предшествует трехбайтный заголовок. Первый байт называется дескриптор блока, следующие два байта определяют размер блока в байтах.
- Сжатый режим. Если файл большой, данные могут быть сжаты. Метод сжатия использует нормальное кодирование длины. В этом методе последовательное повторное появление блока данных заменяется одним вхождением и числом повторений. В тексте файла это обычно пробел (пустоты). В двоичном файле нулевые символы обычно сжимаются.
Команды обработки
FTP использует соединение управления для того, чтобы установить связь между процессом управления клиента. В течение этой связи команды посылаются от клиента к серверу, и отклики посылаются от сервера к клиенту ( рисунок 13.6).
Рис.
13.6.
Команды обработки
Что такое протокол FTP и зачем это нужно.
Краткое содержание видео:
Давайте я попробую простыми словами объяснить, что же такое FTP или протокол FTP.
Предположим, вы работаете на какому-то домашнем компьютере. На этом компьютере у вас есть какой-то определенный набор файлов, который лежит у вас в папках. Это могут быть совершенно любые файлы, веб-файлы, html-файлы, css-файлы, картинки, видео и.т.д. располагаются у вас на домашнем компьютере.
Перед вами, рано или поздно, может встать задача разместить или закачать часть из этих файлов на какой-то удаленный компьютер, который располагается в сети Интернет.
Это может быть какой-то хостинг провайдер, на котором располагается ваш сайт.
Это может быть какой-то виртуальный сервер, облачный сервер и.т.д.
Просто задача в том, чтобы в папке на этом удаленном компьютере разместились файлы, которые располагаются на вашем локальном компьютере.
Одним из способов, который позволяет решить эту задачу, является протокол FTP.
С помощью FTP вы можете передавать файлы с вашего домашнего компьютер и наоборот.
Т.е. FTP — это просто протокол (правила) передачи данных с одного компьютера к другому по сети Интернет.
Т.е. разработчики этого протокола сформировали какие-то определенные правила, придерживаясь которым, компьютеры могут договориться между собой и передать какой-либо файл.
Протокол FTP «заточен» именно на передачу файлов по сети Интернет. В отличии от того же протокола HTTP, которым мы с вами каждый день пользуемся с помощью нашего браузера, переходя на какие-либо сайты.
Для того, чтобы перейти на какой-либо сайт, мы пишем в адресную строку http://имя_сайта.ру.
Конечно, мы с вами можем передавать файлы от одного компьютера к другому и по протоколу HTTP. Но, дело в том, что этот протокол заточен на работу именно с гипертекстом. Т.е. текстом, который содержит ссылки.
Протокол HTTP, как правило, содержит довольно много лишней информации, которая не требуется для передачи простых файлов по сети Интернет.
Протокол FTP именно предназначен для передачи файлов, файлы там передаются в бинарном виде, т.е. с помощью нулей и единиц и не содержат никакой лишней служебной информации.
Мы с вами передаем только ту информацию, которая требуется для передачи какого-то определенного файла.
С помощью FTP мы можем передавать файлы быстро и надежно.
FTP – что это такое
FTP-сервер – это сервер, который функционирует по специальному протоколу передачи данных. Применяется в целях обмена файлами между пользователями. Протокол имеет свои плюсы и минусы, которые стоит учитывать при использовании сервера.
Зачем нужна технология FTP
FTP – это протокол. Технология является очень востребованной. Ею пользуются, когда скачивают программы, фильмы, электронные книги и курсы с удаленных серверов. Такие системы нашли свое применение и при разработке сайтов. Данные веб-ресурса хранятся на FTP-сервере. Если понадобится внести в сайт любые изменения, достаточно подключиться к хранилищу данных, скачать нужный файл, отредактировать его и загрузить обратно. После этого сайт заработает с учетом внесенных изменений.
По сути, FTP-сервер – это компьютер, подсоединенный к другим ПК через локальную сеть. Он может быть подключен и посредством Интернета. С помощью специальных программ, пользователь может найти данные, хранящиеся на искомом сервере. Подключение возможно и через браузер. В строку поиска достаточно вставить адрес сервера, перед этим написав «ftp://».
Чтобы понять тонкости использования протокола, стоит разобраться с понятием ftp – что это и как функционирует.
Особенности FTP-сервера
Основная задача протокола FTP – обеспечивать оперативную передачу данных. Кроме функций, позволяющих передавать и загружать файлы, такие серверы дают возможность выполнять другие команды, позволяющие управлять файловой системой:
- Требуется аутентификация.
- Возможность загружать и скачивать данные в виде текста или перевод данных в двоичный код.
- Наличие выделенного канала.
- Возможность создать множественное подключение. Один канал позволяет отсылать ответы на запрашиваемые команды управления. Другие обеспечивают передачу данных.
Поскольку подлинность источника пакета не проверяется, FTP уязвимы перед dDoS.
Как пользоваться
Чтобы разобраться, как использовать возможности FTP-сервера, необходимо понять его особенности. Одной из главных является необходимость ввести свои данные, чтобы подключиться. Вместо ввода имени и пароля можно воспользоваться анонимным соединением. Паролем в таком случае является anonymous, а логином служит электронная почта.
С точки зрения безопасного соединения FTP-протокол достаточно уязвим. Это объясняется тем, что его разрабатывали еще в те времена, когда многие виды атак не имели достаточной популярности. Вся информация, в том числе и личные данные, не шифруются. Чтобы отправлять и получать зашифрованные файлы, используют расширение протокола FTPS.
Как подключиться к FTP-серверу
Для соединения с хранилищем часто используют программу-клиент. Практически любой популярный браузер работает с FTP. Его контент представляется в виде веб-контента. При этом через браузер пользователь может только скачать данные, но изменить файловую систему у него не получится.
Для работы с хранилищами ftp многие пользуются программой Total Commander. Чтобы зайти на сервер, в пункте меню «Сеть» требуется найти соответствующий подпункт. Если нужно найти новый сервер, следует нажать кнопку «Добавить», затем ввести:
- имя соединения;
- адрес;
- тип соединения – SSL/TLS;
- данные учетной записи – логин и пароль.
Адрес можно узнать, связавшись с провайдером или владельцем сайта, к которому выполняется подключение.
Тип соединения определяет, выполняется ли анонимное подключение. Не каждый сервер предлагает эту возможность. К примеру, SSL означает, что доступно анонимное соединение. TLS показывает, что соединение зашифровано.
Для чего используют FTP
Файлы сайтов – наиболее частый вариант применения FTP-серверов. На них также можно хранить любые данные, занимающие много места на диске. К информации, находящейся на FTP-хранилищах, относятся фильмы, ПО, статьи. Обычно такие файлы доступны без необходимости подтверждения личных данных.
Технология FTP пользуется популярностью ввиду простой организации хранения файлов. Права доступа можно легко и быстро настроить. Сервер можно использовать в качестве запасного хранилища данных. При необходимости обеспечить безопасность подключения используют специальные расширения. Для большинства задач, связанных с обеспечением доступа к информации, этот протокол подходит идеально.
Зная основные сведения о ftp – что это такое и как его применять, можно облегчить некоторые задачи, касающиеся хранения файлов.
Теги термина
|
FTP — это… Что такое FTP?
У этого термина существуют и другие значения, см. FTP (значения).
Название: | File Transfer Protocol |
---|---|
Уровень (по модели OSI): | Прикладной |
Семейство: | TCP/IP |
Создан в: | 1971 г. |
Порт/ID: | 21/TCP для команд, 20/TCP для данных, 49152-65534/TCP динамически |
Назначение протокола: | Передача файлов |
Спецификация: | RFC 959 |
Основные реализации (клиенты): | Смотри Сравнение FTP-клиентов |
Основные реализации (серверы): | Сравнение FTP-серверов |
Расширяемость: | Доп. команды |
FTP (англ. File Transfer Protocol — протокол передачи файлов) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям (например, Интернет). FTP часто используется для загрузки сетевых страниц и других документов с частного устройства разработки на открытые сервера хостинга.
Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут пройти аутентификацию, передавая логин и пароль открытым текстом, или же, если это разрешено на сервере, они могут подключиться анонимно. Можно использовать протокол SSH для безопасной передачи, скрывающей (шифрующей) логин и пароль, а также шифрующей содержимое.
Первые клиентские FTP-приложения были интерактивными инструментами командной строки, реализующими стандартные команды и синтаксис. Графические пользовательские интерфейсы с тех пор были разработаны для многих используемых по сей день операционных систем. Среди этих интерфейсов как программы общего веб-дизайна вроде Microsoft Expression Web, так и специализированные FTP-клиенты (например, CuteFTP).
FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, в 1971 году. Он и сегодня широко используется для распространения ПО и доступа к удалённым хостам.
Описание протокола
Отличие от HTTP
FTP работает на прикладном уровне модели OSI и используется для передачи файлов с помощью TCP/IP. Для этого должен быть запущен FTP-сервер, ожидающий входящих запросов. Компьютер-клиент может связаться с сервером по порту 21. Это соединение (поток управления) остаётся открытым на время сессии. Второе соединение (поток данных), может быть открыт как сервером из порта 20 к порту соответствующего клиента (активный режим), или же клиентом из любого порта к порту соответствующего сервера (пассивный режим), что необходимо для передачи файла данных. Поток управления используется для работы с сессией — например, обмен между клиентом и сервером командами и паролями с помощью telnet-подобного протокола. Например, «RETR имя файла» передаст указанный файл от сервера клиенту. Вследствие этой двухпортовой структуры, FTP считается внешнеполосным протоколом, в отличие от внутриполосного HTTP.
Соединение и передача данных
Протокол определен в RFC 959. Сервер отвечает по потоку управления трехзначными ASCII-кодами состояния с необязательным текстовым сообщением. Например, «200» (или «200 ОК») означает, что последняя команда была успешно выполнена. Цифры представляют код ответа, а текст — разъяснение или запрос. Текущая передача по потоку данных может быть прервана с помощью прерывающего сообщения, посылаемого по потоку управления.
FTP может работать в активном или пассивном режиме, от выбора которого зависит способ установки соединения. В активном режиме клиент создаёт управляющее TCP-соединение с сервером и отправляет серверу свой IP-адрес и произвольный номер клиентского порта, после чего ждёт, пока сервер не запустит TCP-соединение с этим адресом и номером порта. В случае, если клиент находится за брандмауэром и не может принять входящее TCP-соединение, может быть использован пассивный режим. В этом режиме клиент использует поток управления, чтобы послать серверу команду PASV, и затем получает от сервера его IP-адрес и номер порта, которые затем используются клиентом для открытия потока данных с произвольного клиентского порта к полученному адресу и порту. Оба режима были обновлены в сентябре 1998 г. для поддержки IPv6. В это время были проведены дальнейшие изменения пассивного режима, обновившие его до расширенного пассивного режима.
При передаче данных по сети могут быть использованы четыре представления данных:
- ASCII — используется для текста. Данные, если необходимо, до передачи конвертируются из символьного представления на хосте-отправителе в «восьмибитный ASCII», и (опять же, если необходимо) в символьное представление принимающего хоста. Как следствие, этот режим не подходит для файлов, содержащих не только обычный текст.
- Режим изображения (обычно именуемый бинарным) — устройство-отправитель посылает каждый файл байт за байтом, а получатель сохраняет поток байтов при получении. Поддержка данного режима была рекомендована для всех реализаций FTP.
- EBCDIC — используется для передачи обычного текста между хостами в кодировке EBCDIC. В остальном, этот режим аналогичен ASCII-режиму.
- Локальный режим — позволяет двум компьютерам с идентичными установками посылать данные в собственном формате без конвертации в ASCII.
Для текстовых файлов предоставлены различные форматы управления и настройки структуры записи. Эти особенности были разработаны для работы с файлами, содержащими Telnet или ASA-форматирование.
Передача данных может осуществляться в любом из трёх режимов:
- Поточный режим — данные посылаются в виде непрерывного потока, освобождая FTP от выполнения какой бы то ни было обработки. Вместо этого, вся обработка выполняется TCP. Индикатор конца файла не нужен, за исключением разделения данных на записи.
- Блочный режим — FTP разбивает данные на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаёт их TCP.
- Режим сжатия — данные сжимаются единым алгоритмом (обыкновенно, кодированием длин серий).
Аутентификация
FTP-аутентификация использует обычную схему имя пользователя/пароль для предоставления доступа. Имя пользователя посылается серверу командой USER, а пароль — командой PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начинается сессия. Пользователи могут, если сервер поддерживает эту особенность, войти в систему без предоставления учётных данных, но сервер может предоставить только ограниченный доступ для таких сессий.
Анонимный FTP
Хост, обеспечивающий FTP-сервис, может предоставить анонимный доступ к FTP. Пользователи обычно входят в систему как «anonymous» (может быть регистрозависимым на некоторых FTP-серверах) в качестве имени пользователя. Хотя обычно пользователей просят прислать адрес их электронной почты вместо пароля, никакой проверки фактически не производится. Многие FTP-хосты, предоставляющие обновления программного обеспечения, поддерживают анонимный доступ.
NAT-PT
Специально для работы FTP-протокола через межсетевые экраны было сделано расширение NAT, называемое NAT-PT (rfc2766), позволяющее транслировать входящие соединения от сервера к клиенту через NAT. В процессе такого соединения NAT подменяет передаваемые данные от клиента, указывая серверу истинный адрес и порт, с которым сможет соединиться сервер, а потом транслирует соединение от сервера от этого адреса клиенту на его адрес. Несмотря на все меры и нововведения, принятые для поддержки FTP-протокола, на практике функция NAT-PT обычно отключается во всех роутерах и маршрутизаторах с целью обеспечения дополнительной безопасности от вирусных угроз.
NAT и обход брандмауэров
FTP обычно передает данные при наличии соединения сервера с клиентом, после того как клиент отправил команду PORT. Это создает проблему как для NAT, так и для брандмауэров, которые не разрешают соединения из интернета к внутренним хостам. Для NAT дополнительной проблемой является то, что представление IP-адресов и номера порта в команде PORT относится к IP-адресу и порту внутреннего хоста, вместо публичного IP-адреса и NAT-порта. Существует два подхода к этой проблеме. Первый заключается в том, что FTP-клиент и FTP-сервер используют команду PASV, которая вызывает соединение для передачи данных, установленное от клиента к серверу. Второй подход — изменение для NAT значений команды PORT с помощью шлюза на прикладном уровне.
Поддержка веб-браузерами
Большая часть обычных веб-браузеров может извлекать файлы, расположенные на FTP-серверах, хотя они могут не поддерживать расширения протоколов вроде FTPS. Когда указан FTP-адрес, а не HTTP-адрес, доступный контент на удалённом сервере представляется аналогично остальному веб-контенту. Полностью функциональный FTP-клиент может быть запущен в Firefox как расширение FireFTP.
Синтаксис
Синтаксис FTP URL описан в RFC1738, в форме: ftp://[<пользователь>[:<пароль>]@]<хост>[:<порт>]/<путь> (параметры в квадратных скобках необязательны). Например:
ftp://public.ftp-servers.example.com/mydirectory/myfile.txt
или:
ftp://user001:[email protected]/mydirectory/myfile.txt
Более детально об указании имени пользователя и пароля написано в документации браузеров. По умолчанию, большинство веб-браузеров используют пассивный (PASV) режим, который лучше обходит брандмауэры конечного пользователя.
Безопасность
FTP не разрабатывался как защищённый (особенно по нынешним меркам) протокол и имеет многочисленные уязвимости в защите. В мае 1999 авторы RFC 2577 свели уязвимости в следующий список проблем:
- Скрытые атаки (bounce attacks)
- Спуф-атаки (spoof attacks)
- Атаки методом грубой силы (brute force attacks)
- Перехват пакетов, сниффинг (packet capture, sniffing)
- Защита имени пользователя
- Захват портов (port stealing)
FTP не может зашифровать свой трафик, все передачи — открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Эта проблема характерна для многих спецификаций Интернет-протокола (в их числе SMTP, Telnet, POP, IMAP), разработанных до создания таких механизмов шифрования, как TLS и SSL. Обычное решение этой проблемы — использовать «безопасные», TLS-защищенные версии уязвимых протоколов (FTPS для FTP, TelnetS для Telnet и т.д.) или же другой, более защищённый протокол, вроде SFTP/SCP, предоставляемого с большинством реализаций протокола Secure Shell.
Безопасный FTP
Существует несколько методов безопасной передачи файлов, в одно или другое время называемых «Безопасным FTP».
FTPS
Явный FTPS — расширение стандарта FTP, позволяющее клиентам требовать того, чтобы FTP-сессия была зашифрована. Это реализуется отправкой команды «AUTH TLS». Сервер обладает возможностью позволить или отклонить соединения, которые не запрашивают TLS. Это расширение протокола определено в спецификации RFC 4217. Неявный FTPS — устаревший стандарт для FTP, требующий использования SSL- или TLS-соединения. Этот стандарт должен был использовать отличные от обычного FTP порты.
SFTP
SFTP, или «SSH File Transfer Protocol», не связан с FTP, за исключением того, что он тоже передаёт файлы и имеет аналогичный набор команд для пользователей. SFTP, или безопасный FTP, — это программа, использующая SSH (Secure Shell) для передачи файлов. В отличие от стандартного FTP он шифрует и команды, и данные, предохраняя пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот.
FTP через SSH (не SFTP)
FTP через SSH (не SFTP) относится к практике туннелирования обычной FTP-сессии через SSH-соединение. Поскольку FTP использует несколько TCP-соединений, туннелирование через SSH особенно затруднительно. Когда много SSH-клиентов пытаются установить туннель для канала управления (изначальное «клиент-сервер» соединение по порту 21), защищён будет только этот канал; при передаче данных программное обеспечение FTP на любом конце установит новые TCP-соединения (каналы данных), которые обойдут SSH-соединение и, таким образом, лишатся целостной защиты.
Иначе, для клиентского программного обеспечения SSH необходимо иметь определённые знания о FTP для отслеживания и перезаписи сообщений потока управления FTP и автономного открытия новых перенаправлений для потока данных FTP. Программные пакеты, поддерживающие этот режим:
FTP через SSH иногда относят к безопасным FTP; но не стоит путать его с другими методами, такими как SSL/TLS (FTPS). Другие методы передачи файлов с помощью SSH и не связанные с FTP — SFTP и SCP; в каждом из них и учётные и файловые данные всегда защищены протоколом SSH.
История
Первая реализация протокола (1971 г.) предусматривала обмен между клиентом и сервером сообщениями, состоящими из заголовка (72 бит) и данных переменной длины. Заголовок сообщения включал в себя запрос к FTP-серверу или ответ от него, тип и длину передаваемых данных. В качестве данных передавались параметры запроса (например, путь и имя файла), информация от сервера (например, список файлов в каталоге) и сами файлы. Таким образом, команды и данные передавались по одному и тому же каналу.
В 1972 г. протокол был полностью изменён, и принял вид, близкий к современному. Команды с параметрами от клиента и ответы сервера передаются по TELNET-соединению (канал управления), для передачи данных создаётся отдельное соединение (канал данных).
В последующих редакциях была добавлена возможность работы в пассивном режиме, передачи файлов между FTP-серверами, введены команды получения информации, смены текущего каталога, создания и удаления каталогов, сохранения файлов под уникальным именем. Некоторое время существовали команды для передачи электронной почты через FTP, однако впоследствии они были исключены из протокола.
В 1980 г. FTP-протокол стал использовать TCP. Последняя редакция протокола была выпущена в 1985 г. В 1997 г. появилось дополнение к протоколу, позволяющее шифровать и подписывать информацию в канале управления и канале данных. В 1999 г. выпущено дополнение, посвящённое интернационализации протокола, которое рекомендует использовать кодировку UTF-8 для команд и ответов сервера и определяет новую команду LANG, устанавливающую язык ответов.
Основные команды
- ABOR — Прервать передачу файла
- CDUP — Сменить директорию на вышестоящую.
- CWD — Сменить директорию.
- DELE — Удалить файл (DELE filename).
- EPSV — Войти в расширенный пассивный режим. Применяется вместо PASV.
- HELP — Выводит список команд принимаемых сервером.
- LIST — Возвращает список файлов директории. Список передаётся через соединение данных.
- MDTM — Возвращает время модификации файла.
- MKD — Создать директорию.
- NLST — Возвращает список файлов директории в более кратком формате, чем LIST. Список передаётся через соединение данных.
- NOOP — Пустая операция
- PASV — Войти в пассивный режим. Сервер вернёт адрес и порт, к которому нужно подключиться, чтобы забрать данные. Передача начнётся при введении следующих команд: RETR, LIST и т.д.
- PORT — Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
- PWD — Возвращает текущую директорию.
- QUIT — Отключиться
- REIN — Реинициализировать подключение
- RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.
- RMD — Удалить директорию
- RNFR и RNTO — Переименовать файл. RNFR — что переименовывать, RNTO — во что.
- SIZE — Возвращает размер файла
- STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.
- SYST — Возвращает тип системы (UNIX, WIN, …)
- TYPE — Установить тип передачи файла (бинарный, текстовый)
- USER — Имя пользователя для входа на сервер
Коды ответов FTP
Ниже представлено краткое описание кодов ответа, которые могут быть возвращены FTP-сервером. Эти коды были стандартизированы IETF в RFC 959. Как было сказано ранее, код ответа — трёхзначное число. Первая цифра отвечает за один из трёх исходов: успех, отказ или указание на ошибку либо неполный ответ.
- 2xx – Успешный ответ
- 4xx/5xx – Команда не может быть выполнена
- 1xx/3xx – Ошибка или неполный ответ
Вторая цифра определяет тип ошибки:
- x0z – Синтаксическая.
- x1z – Информация. Соответствует информационному сообщению.
- x2z – Соединения. Сообщение относится к управляющему соединению либо к соединению данных.
- x3z – Соответствует сообщениям об аутентификации пользователя и его правах.
- x4z – Не определено.
- x5z – Файловая система. Соответствует сообщению о состоянии файловой системы.
Третья цифра окончательно специфицирует ошибку.
Пример
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-адресом 192.168.254.253 на порту 207 << 8 + 56 = 53048 (где << — операция побитового сдвига, 207 записывается в младший разряд, а потом сдвигается в старший, чтобы в младший записать 56 или 207*256+56=53048).
На многих FTP-серверах существует каталог (под названием incoming, upload и т. п.), открытый на запись и предназначенный для закачки файлов на сервер. Это позволяет пользователям наполнять сервер свежими данными.
FXP
FXP (англ. File eXchange Protocol — протокол обмена файлами) — способ передачи файлов между двумя FTP-серверами напрямую, не закачивая их на свой компьютер. При FXP-сессии клиент открывает два FTP-соединения к двум разным серверам, запрашивая файл на первом сервере, указывая в команде PORT IP-адрес второго сервера.
Несомненным преимуществом поддержки стандарта FXP является то, что на конечных пользователей, желающих скопировать файлы с одного FTP-сервера на другой, уже не действует ограничение пропускной способности их собственного интернет-соединения. Нет необходимости скачивать себе файл, чтобы потом загрузить его на другой FTP-сервер. Таким образом, время передачи файлов будет зависеть только от скорости соединения между двумя удаленными FTP-серверами, которая в большинстве случаев заведомо больше «пользовательской».
FXP стал использоваться злоумышленникам для атак на другие серверы: в команде PORT указывается IP-адрес и порт атакуемого сервиса на компьютере жертвы, и командами RETR/STOR производится обращение на этот порт от лица FTP-сервера, а не атакующей машины, что позволяло устраивать масштабные DDoS-атаки с использованием сразу многих FTP-серверов, либо обходить систему безопасности компьютера жертвы, если он полагается только на проверку IP клиента и используемый для атаки FTP-сервер находится в доверенной сети или на шлюзе. В результате сейчас практически все серверы проверяют соответствие IP-адреса, указанного в команде PORT, IP-адресу FTP-клиента и по умолчанию запрещают использование там IP-адресов третьих сторон. Таким образом, использование FXP невозможно при работе с публичными FTP-серверами.
См. также
Ссылки
- Первоначальная спецификация FTP RFC 959
- Расширения безопасности RFC 2228
- Интернационализация FTP RFC 2640
- Расширение NAT-PT для поддержки FTP RFC 2766
- Шифрование KEA и SKIPJACK RFC 2773
- Расширение команд FTP RFC 3659
что это такое, как он работает, как к нему подключиться
Тематический трафик – альтернативный подход в продвижении бизнеса
Получи нашу книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Подпишись на рассылку и получи книгу в подарок!
Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA
Эта технология является одной из самых востребованных для скачивания и загрузки данных с/на удаленные серверы, рассредоточенные по всему миру.
Ftp-системы используют при создании веб-сайтов. Вся информация, касающаяся интернет-ресурса, хранится на фтп сервере. Когда разработчику требуется внести какие-то корректировки в сайт, он заходит на сервер, скачивает файл, который нужно поправить, потом заливает его обратно. И все, изменение вступило в силу. Это быстро и удобно.
Как выглядит FTP сервер
Визуальное представление зависит от системы, через которую выполняется вход. Есть специальные программы типа FileZilla, в ней данные выводятся в виде привычного всем Total Commander.
На многих хостингах есть своя система управления, выглядит это также в виде привычного набора папок и файлов.
Особенности FTP сервера
Более подробно рассмотрим технические аспекты и расскажем, что такое ftp сервер и как он работает.
Главная функция FTP — передача файлов.
Помимо заливки и выгрузки информации, доступны различные команды, с помощью которых можно управлять файлами и каталогами:
- Требуется аутентификация.
- Наличие выделенного канала для каждого соединения.
- Поддержка 2-х режимов передачи данных: текста и бинарного (в двоичной системе). Второй вариант сокращает время и трафик.
- Использование множественного подключения как минимум двуканального. Через один передаются команды управления и возвращаются обработанные ответы. С помощью других осуществляется файловая передача из расчета выделенный канал на каждую.
Как подключиться к FTP серверу
Для входа на сервер требуется заполнить форму авторизации, иначе говоря, пройти аутентификацию. После ввода логина (user) и пароля (pass) эта информация передается в систему. Если она принята, клиент получит приглашение и откроется рабочая сессия.
Бывают варианты входа без указания регистрационных данных. В этом случае доступные посетителю опции будут ограничены.
Есть еще один вариант, как зайти на FTP сервер — анонимный доступ. По умолчанию вход происходит при вводе логина «anonymous», написание может отличаться регистром букв. Однако самый распространенные способ, когда предлагают залогиниться с помощью электронного адреса. Такой вариант доступа используют многие FTP-хосты, рассылающие обновления ПО.
Для подключения можно использовать веб-браузер или файловые менеджеры типа Total Commander, FileZilla. Через браузер вы сможете просмотреть и скачать файлы, при этом внести изменения не сможете.
Удобнее работать через программу-клиент FileZilla (можно скачать в свободном доступе).
Создаем новое подключение следующим образом:
- В поле «Хост» вводим адрес ftp-сервера.
- Заполняем поля «Имя» пользователя, «Пароль» и, при необходимости, «Порт».
Где взять адрес? Если вы подключаетесь к серверу, размещенному на хосте, все доступы есть у владельца сайта, их предоставил провайдер.
Для чего еще используют FTP
Файлы веб-сайтов – это самый распространенный вариант использования, но это далеко не все, что располагается на FTP серверах.
Там можно хранить любую рабочую либо личную информацию больших объемов, как вариант, фотографии, видеофильмы.
Практически любая информация, которой ежедневно пользуются миллионы людей, размещена на фтп хранилищах. Это ПО, демоверсии программ, электронные книги, законодательные акты, статьи, фильмы, музыка – все, что можно оформить в файловом представлении. В интернете созданы каталоги, содержащие терабайты информации полезного либо развлекательного характера. Как правило, доступно в анонимном режиме и не требует оплаты.
Недостатки FTP-серверов
Слабая защиты от взлома и атак. Из-за технических особенностей повредить могут не только серверы, но и клиентов. Поэтому конфиденциальную информацию на них хранить не следует.
Проверка подлинности источника пакета передачи данных отсутствует, это приводит к уязвимости перед dDoS-атаками.
Протокол передачи файлов — Документация
FTP (англ. File Transfer Protocol — протокол передачи файлов) — является широко используемым протоколом для обмена файлами по любой сети, поддерживающей протокол TCP/IP (например, Интернет или интранет). В FTP-передаче участвуют два компьютера: серверный и клиент. FTP-сервер, который работает на программном обеспечении FTP, ожидает сигнала от сети для запроса подключений с других компьютеров. Клиентский компьютер, который работает на клиентском программном обеспечении FTP, инициирует подключение к серверу. Непосредственно после установки подключения клиент сможет выполнять ряд операций по обработке файлов, например, загружать файлы на сервер или с сервера, переименовывать файлы на сервере, удалять файлы с сервера и т.д. Любая компания-разработчик ПО или отдельный программист могут создать FTP-сервер или клиентское программное обеспечение, так как протокол является открытым стандартом. Практически каждая компьютерная платформа поддерживает FTP-протокол. Это позволяет любому компьютеру, подключенному к сети, базирующейся на TCP/IP, провести операции с файлами на другом компьютере той же сети независимо от типа операционных систем (если компьютеры позволяют произвести FTP-доступ).
Больше информации о FTP Вы сможете найти в Статье о FTP в электронной энциклопедии Wikipedia или же в документах, перечисленных ниже.
Содержание
Технические спецификации
- RFC 959 «ПРОТОКОЛ ПЕРЕДАЧИ ФАЙЛОВ»
В данном документе описан стандартный FTP-протокол. Подробнее про режимы передачи здесь - RFC 854 «ТЕХНИЧЕСКИЕ УСЛОВИЯ ПРОТОКОЛА TELNET»
Протокол FTP разработан на основе протокола Telnet, указанного в данном документе. Особенно важным здесь является NVT (Network Virtual Terminal / сетевой виртуальный терминал).
Расширения протокола
- RFC 2228 «Расширения безопасности FTP»
В данном документе описан принцип использования различных схем аутентификации и шифрования с использованием таких команд как AUTH, PROT и связанных с ними новых команд. - RFC 2389 «Настройки механизма согласования для протокола передачи данных»
Описана команда FEAT для обнаружения доступных расширений протокола, и команда OPTS для изменения некоторых характеристик. - RFC 2428 «Расширения FTP для IPv6 и NATs»
В данном запросе комментариев описывается протокол FTP для IPv6. - RFC 2640 «Интернационализация протокола передачи файлов»
Описано использование кодировки UTF-8 для имен файлов. Так как изначально стандарт FTP использовал только 7-битную US-ASCII кодировку, то такое расширение является полностью совместимым с предыдущими версиями. Однако, некоторые серверы и клиенты ошибочно предполагают, что FTP-протокол использует локальную кодировку. Поэтому такое расширение создает видимую несовместимость там, где на самом деле ее нет. - RFC 4217 «Защищённый FTP при помощи TLS»
В данном запросе комментариев описан процесс защиты FTP криптографическим протоколом TLS с использованием команд, представленных в RFC 2228. Примите во внимание, что в данном RFC преимущественно применяется FTPS (File Transfer Protocol + SSL, или FTP/SSL). Более подробную информацию Вы сможете найти в разделе TLS спецификации. - RFC 3659 «Расширение команд FTP»
В данном RFC представлен набор команд MLS* для машинного контекстного формата построения перечня директорий. Также объясняется использование REST и представлен указанный способ представления перечня директорий сервера с использованием TVFS (простого виртуального хранилища файлов). Помимо того описаны команды SIZE и MDTM. Вполне понятно, что команда MDTM должна использоваться только для того, чтобы получить временную метку файла, но не для того, чтобы ее создать, так как это лишь приведет к неоднозначности. - IETF драфт об алгоритме сжатия deflate
В данном документе описаны методы сжатия канала передачи с использованием deflate (алгоритм сжатия без потерь). С этой целью описана команда MODE Z. - Спецификация EPLF (Easily Parsed LIST Format)
Описывает машинный контекстный формат построения перечня директорий. - «MFxx» команды для FTP. В этом IETF описана команда MFMT для изменения времени модификации файла.
Дополнительные документы
- RFC 2577 «Вопросы безопасности FTP»
В данном документе рассматриваются общии вопросы безопасности протокола FTP и приводится информация о bounce-атаках на FTP.
См. также
Работа с FTP
File Transfer Protocol (FTP) (Протокол Передачи Файлов) используется многими компаниями и организациями для передачи данных. Python содержит модуль ftplib, который реализует клиентскую часть протокола FTP. Вы можете узнать всю интересующую вас информацию о FTP, обратившись к документу RFC 959 в интернете. Однако, в данной статье мы пройдемся лишь по ключевым вопросам данной темы:
- Подключение к серверу FTP
- Навигация по структуре
- Загрузка файлов из сервера FTP
- Заливка файлов на сервер FTP
Приступим!
Подключение к серверу FTP
Первое, что нам нужно сделать, это, собственно, найти сервер FTP, к которому мы будем подключаться. Существует множество бесплатных серверов, которые вы можете использовать. Например, большая часть дистрибутивов Linux имеют FTP зеркала, которые находятся в свободном доступе. На сайте Fedora (https://admin.fedoraproject.org/mirrormanager/) вы найдете длинный список зеркал, которые вы можете использовать.
Но среди них не только FTP, так что убедитесь в том, что подключаетесь к нужному протоколу, иначе возникнет ошибка подключения. Для нашего обучения, мы используем ftp.cse.buffalo.edu. В официальной документации Python используется ftp.debian.org, так что вы спокойно можете использовать и его. Давайте попробуем подключиться к серверу прямо сейчас. Откройте интерпретатор Python в вашем терминале, или используйте IDLE, совместно со следующим кодом:
from ftplib import FTP
ftp = FTP(‘ftp.cse.buffalo.edu’)
print(ftp.login())
| from ftplib import FTP
ftp = FTP(‘ftp.cse.buffalo.edu’) print(ftp.login()) |
Результат:
230 Guest login ok, access restrictions apply.
| 230 Guest login ok, access restrictions apply. |
Давайте немного притормозим. Здесь мы импортировали класс FTP из модуля ftplib. Далее, мы создали экземпляр класса, передав ему хост, к котором у мы хотим подключиться. Так как мы не передаем имя пользователя или пароль, Python предположит, что мы решили подключиться анонимно. Если так вышло, что вам нужно подключиться к серверу FTP используя нестандартный порт, тогда вам нужно использовать метод connect. Вот так:
from ftplib import FTP
ftp = FTP()
HOST = ‘ftp.cse.buffalo.edu’
PORT = 12345
ftp.connect(HOST, PORT)
| from ftplib import FTP
ftp = FTP() HOST = ‘ftp.cse.buffalo.edu’ PORT = 12345 ftp.connect(HOST, PORT) |
Данный код не сработает, так как сервер FTP в данном примере не содержит открытый для нас порт 12345. Однако, суть в том, чтобы указывать, как подключиться к порту, который отключается от порта по умолчанию. Если сервер FTP, к которому вы подключаетесь, требует защиту TLS, то вам потребуется импортировать класс FTP_TLS вместо класса FTP. Класс FTP_TLS поддерживает keyfile и certfile. Если вы хотите защитить свое подключение, тогда вам нужно вызвать prot_p для этой цели.
Навигация по каталогам с ftplib
Давайте узнаем, как посмотреть, что находится в сервере FTP и попробуем менять каталоги. Рассмотрим код, который отображает нормальный метод , которым этого можно достичь:
from ftplib import FTP
ftp = FTP()
ftp.login()
data = ftp.retrlines(‘LIST’)
print(data)
| from ftplib import FTP
ftp = FTP() ftp.login() data = ftp.retrlines(‘LIST’)
print(data) |
Результат:
from ftplib import FTP
ftp = FTP()
ftp.login()
# Меняем директорию
ftp.cwd(‘mirror’)
data = ftp.retrlines(‘LIST’)
print(data)
| from ftplib import FTP
ftp = FTP() ftp.login()
# Меняем директорию ftp.cwd(‘mirror’)
data = ftp.retrlines(‘LIST’) print(data) |
Результат:
Здесь мы подключаемся и посылаем команду LIST серверу FTP. Это делается посредством вызова метода retrlines нашего объекта ftp. Метод retrlines выводит результат команды, которую мы вызывали. В данном примере мы вызывали команду LIST, которая извлекает список файлов и\или папок совместно их соответствующей информацией и выводит их. Далее мы использовали команду cwd, чтобы сменить нашу рабочую директорию на другую папку и выполняем команду LIST еще раз, чтобы увидеть, что в этой папке. Вы можете также использовать функцию dir вашего объекта ftp для получения списка данной папки.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Загрузка файлов через FTP
Простой просмотр содержимого FTP – не так уж и полезно. Вам практически в любом случае захочется скачать файл с сервера. Давайте разберемся с тем, как это делается:
from ftplib import FTP
ftp = FTP(‘ftp.debian.org’)
ftp.login()
ftp.cwd(‘debian’)
# Путь на нашем компьютере где сохранить файл.
out = ‘C:\\files\\README.html’
with open(out, ‘wb’) as f:
ftp.retrbinary(‘RETR ‘ + ‘README.html’, f.write)
| from ftplib import FTP
ftp = FTP(‘ftp.debian.org’) ftp.login()
ftp.cwd(‘debian’)
# Путь на нашем компьютере где сохранить файл. out = ‘C:\\files\\README.html’
with open(out, ‘wb’) as f: ftp.retrbinary(‘RETR ‘ + ‘README.html’, f.write) |
В данном примере, мы подключились к FTP Debian Linux и сменили папку на папку debian. Далее мы называем файл, который мы хотим сохранить и открываем его в бинарном моде. Наконец мы используем retrbinary для вызова RETR для извлечения файла и записи его в на локальном диске. Если вы хотите скачать все файлы ftp, тогда вам нужен список файлов.
import ftplib
import os
ftp = ftplib.FTP(‘ftp.debian.org’)
ftp.login()
ftp.cwd(‘debian’)
filenames = ftp.nlst()
for filename in filenames:
host_file = os.path.join(
‘C:\\files\\ftp_test’, filename
)
try:
with open(host_file, ‘wb’) as local_file:
ftp.retrbinary(‘RETR ‘ + filename, local_file.write)
except ftplib.error_perm:
pass
ftp.quit()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import ftplib import os
ftp = ftplib.FTP(‘ftp.debian.org’) ftp.login() ftp.cwd(‘debian’) filenames = ftp.nlst()
for filename in filenames: host_file = os.path.join( ‘C:\\files\\ftp_test’, filename )
try: with open(host_file, ‘wb’) as local_file: ftp.retrbinary(‘RETR ‘ + filename, local_file.write) except ftplib.error_perm: pass
ftp.quit() |
Этот пример очень похож на предыдущий. Вам нужно обновить его, для соответствия с выбранной локацией загрузки. Первая часть этого кода, в целом, остается неизменной, но далее вы должны заметить, что мы вызываем nlst, который дает нам список названий файлов и каталогов. Вы можете передать эту команду каталогу ради списка, или просто вызвать её, после чего он укажет, что вам нужен список данного каталога.
Обратите внимание на то, что команда nlst не указывает нам на то, как выполнять дифференциацию между файлами и каталогами из её результатов. Хотя в данном примере это не так уж и важно. Это относится к более сложным скриптам. В любом случае, данная команда зациклится над выданным списком и попробует скачать файлы. Если так вышло, что наш «файл» на самом деле является каталогом, то мы получим пустой файл на нашем диске с тем же названием, что и у каталога на FTP сервере. Также существует команда MLSD, которую вы можете вызвать при помощи метода mlsd, но её поддерживают не все FTP сервера. А с теми, которые поддерживают, вы можете заметить различия между ними.
Загрузка файлов на FTP сервер
Еще один важный вопрос, которым вы можете задаться при работе с FTP сервером, это загрузка файлов ftplib. С Python вы можете и это! Существует два метода, пользуясь которыми вы можете загружать файлы:
- storlines – для загрузки текстовых файлов (TXT, HTML, RST)
- storbinary – для загрузки бинарных файлов (PDF, XLS, etc)
Давайте посмотрим на примере, как мы будем это делать:
import ftplib
def ftp_upload(ftp_obj, path, ftype=’TXT’):
«»»
Функция для загрузки файлов на FTP-сервер
@param ftp_obj: Объект протокола передачи файлов
@param path: Путь к файлу для загрузки
«»»
if ftype == ‘TXT’:
with open(path) as fobj:
ftp.storlines(‘STOR ‘ + path, fobj)
else:
with open(path, ‘rb’) as fobj:
ftp.storbinary(‘STOR ‘ + path, fobj, 1024)
if __name__ == ‘__main__’:
ftp = ftplib.FTP(‘host’, ‘username’, ‘password’)
ftp.login()
path = ‘/path/to/something.txt’
ftp_upload(ftp, path)
pdf_path = ‘/path/to/something.pdf’
ftp_upload(ftp, pdf_path, ftype=’PDF’)
ftp.quit()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import ftplib
def ftp_upload(ftp_obj, path, ftype=’TXT’): «»» Функция для загрузки файлов на FTP-сервер @param ftp_obj: Объект протокола передачи файлов @param path: Путь к файлу для загрузки «»» if ftype == ‘TXT’: with open(path) as fobj: ftp.storlines(‘STOR ‘ + path, fobj) else: with open(path, ‘rb’) as fobj: ftp.storbinary(‘STOR ‘ + path, fobj, 1024)
if __name__ == ‘__main__’: ftp = ftplib.FTP(‘host’, ‘username’, ‘password’) ftp.login()
path = ‘/path/to/something.txt’ ftp_upload(ftp, path)
pdf_path = ‘/path/to/something.pdf’ ftp_upload(ftp, pdf_path, ftype=’PDF’)
ftp.quit() |
В данном примере мы создали функцию для загрузки файлов. Мы берем объект ftp, путь к файлу, который мы хотим залить и тип файла. Далее, мы быстро проверяем тип файла, чтобы определить, используем мы storlines или же storbinary для процесса загрузки. Наконец, в нашем условном операторе внизу мы подключаем FTP сервер, логинимся и загружаем текстовый файл или файл PDF. Простое дополнение к этому – некоторая логика перехода на конкретный каталог после входа в саму систему, поскольку мы явно не хотим просто заливать файлы в корневую папку.
Подведем итоги
Теперь вы знаете достаточно, для того, чтобы начать использовать ftplib от Python. Существует множество других методов, с которыми настоятельно рекомендуется ознакомиться в соответствующей документации. Однако теперь вы владеете базовыми понятиями составления списков директорий, навигации в структуре файлов, а также загрузка файлов на сервер.
Обзор протокола передачи файлов
Обзор протокола передачи файлов
Обзор протокола передачи файлов
Протокол передачи файлов (FTP) был одной из первых попыток создания
стандартные средства обмена файлами по сети TCP / IP, поэтому FTP был
примерно с 1970-х годов. FTP был разработан с такой гибкостью, как
возможно, поэтому его можно использовать в сетях, отличных от TCP / IP, а также
спроектирован так, чтобы иметь возможность обмениваться файлами с широким спектром
машины.
Базовая спецификация — RFC
959 и датируется октябрем 1985 года. Есть некоторые дополнительные RFC, касающиеся
на FTP, но следует отметить, что даже на момент написания этой статьи (декабрь 2001 г.)
большинство новых дополнений не получили широкого распространения. Цель этого
документ должен предоставить общую информацию о том, как протокол работает без
вдаваться в слишком много технических деталей. RFC 959 следует проконсультироваться для
подробности о протоколе.
Control Connection — канал разговора
Протокол можно рассматривать как интерактивный, поскольку клиенты и серверы
на самом деле есть разговор, в котором они аутентифицируются и ведут переговоры
передача файлов.Кроме того, в протоколе указано, что клиент и
сервер не обменивается данными по каналу разговора. Вместо этого клиенты
и серверы согласовывают, как отправлять файлы данных по отдельным соединениям, с одним
подключение для каждой передачи данных. Обратите внимание, что список каталогов
считается передачей файлов.
Для иллюстрации мы просто представим (по общему признанию надуманный) пример того, как
FTP будет работать между людьми, а не компьютерными системами. За
В нашем примере мы предположим, что у нас есть клиент, Карл Клинтон , который желает
передавать файлы из службы Acme Mail Service , которая управляет его почтовым отделением
коробка.Ниже приводится стенограмма телефонного разговора между Карлом Клинтоном и Acme.
Почтовая служба.
Клинтон: (набирает номер телефона для почты
сервис)Сервис: «Здравствуйте,
это почтовая служба Acme. Чем я могу вам помочь? »Клинтон: «Здравствуйте,
это Карл Клинтон.Я хочу получить доступ к номеру почтового ящика
MB1234. «Сервис: «Хорошо,
Мистер Клинтон, мне нужно подтвердить, что у вас есть доступ к почтовому ящику
MB1234. Какой у вас пароль? »Клинтон: «Моя
пароль — QXJ4Z2AF. «Сервис: «Спасибо
Вы, мистер Клинтон, можете продолжить.«Клинтон: «Для
сейчас меня интересуют только счета и фактуры, поэтому
посмотрите на папку с пометкой «счета» в моем почтовом ящике.Сервис: «Хорошо.» Клинтон: «Пожалуйста
приготовьтесь к тому, что ваш помощник позвонит моему секретарю по телефону +1 402 555
1234.«Сервис: «Хорошо.» Клинтон: «Сейчас
позвоните моему секретарю и скажите ему названия всех предметов в
папка счетов моего почтового ящика. Скажи мне, когда у тебя будет
закончено «Сервер: «Моя
помощник сейчас звонит вашему секретарю. «Сервер: «Моя
помощник отправил названия предметов.«Клинтон: (получает список от своего
секретарь и замечает счет от Yoyodyne Systems.)«Пожалуйста, приготовьтесь к
Ваш помощник отправит на мой факс +1 402 555 7777. «»
Сервис: «Хорошо.» Клинтон: «Сейчас
по факсу копию счета от Yoyodyne Systems.«Сервер: «Моя
Ассистент звонит на ваш факсимильный аппарат «.Сервер: «Моя
помощник закончил отправку товара по факсу. «Клинтон: «Спасибо
ты, вот и все. До свидания »Сервер: «До свидания.«
Теперь давайте посмотрим, как этот же разговор будет происходить между компьютерами.
системы, взаимодействующие с протоколом FTP через соединение TCP / IP.
Клиент: Подключается к службе FTP через порт
21 на IP-адресе 172.16.62.36.Сервер: 220
Здравствуйте, это почтовая служба Acme.Клиент: ПОЛЬЗОВАТЕЛЬ
MB1234Сервер: 331
Пароль необходим для доступа к учетной записи пользователя MB1234.Клиент: ПРОПУСК
QXJ4Z2AFОбратите внимание, что этот пароль не
зашифрованный. FTP уязвим для прослушивания!Сервер: 230
Авторизован.Клиент: CWD
СчетаПерейти в каталог «Счета». Сервер: 250
«/ home / MB1234 / Bills» — это новый рабочий каталог.Клиент: ПОРТ
192,168,1,2,7,138Клиент хочет, чтобы сервер отправил
в порт номер 1930 на IP-адрес 192.168.1.2. В этом случае,
192.168.1.2 — это IP-адрес клиентского компьютера.Сервер: 200
Команда PORT выполнена успешно.Клиент: СПИСОК Отправьте список файлов в «Счета». Сервер: 150
Открытие подключения к данным в режиме ASCII для / bin / ls.Сервер теперь подключается со своего
порт 20 на 172.16.62.36 к порту 1930 на 192.168.1.2.Сервер: 226
Объявление завершено.Успешно, теперь данные
отправлено через установленное соединение для передачи данных.Клиент: ПОРТ
192,168,1,2,7,139Клиент хочет, чтобы сервер отправил
на порт номер 1931 на клиентской машине.Сервер: 200
Команда PORT выполнена успешно.Клиент: RETR
Yoyodyne.TXTСкачать «Yoyodyne.TXT.» Сервер: 150
Открытие соединения для передачи данных в режиме ASCII для Yoyodyne.TXT.Сервер теперь подключается со своего
порт 20 на 172.16.62.36 на порт 1931 на 192.168.1.2.Сервер: 226
Перевод завершен.Успешно, теперь данные
отправлено через установленное соединение для передачи данных.Клиент: ВЫЙТИ Сервер: 221
Прощай.
При использовании FTP пользователи используют клиентские программы FTP, а не напрямую
общение с FTP-сервером.Вот наш тот же пример с использованием акции
программа «ftp», которая обычно устанавливается как / usr / bin / ftp
в системах UNIX (и FTP.EXE в Windows). Элементы, которые пользователь
типы жирным шрифтом .
тыс. Долларов США / usr / bin / ftp ftp> открыть ftp.acmemail.example.com Подключен к ftp.acmemail.example.com (172.16.62.36). 220 Здравствуйте, это почтовая служба Acme. Имя (ftp.acmemail.example.com:root): MB1234 331 Пароль необходим для доступа к учетной записи пользователя MB1234. Пароль: QXJ4Z2AF 230 Авторизован.ftp> cd Bills 250 "/ home / MB1234 / Bills" - это новый рабочий каталог. ftp> ls Команда 200 PORT выполнена успешно. 150 Открытие соединения для передачи данных в режиме ASCII для / bin / ls. -rw-r - r-- 1 ftpuser ftpusers 14886 3 декабря 15:22 Acmemail.TXT -rw-r - r-- 1 ftpuser ftpusers 317000 4 декабря 17:40 Yoyodyne.TXT 226 Объявление завершено. ftp> получить Yoyodyne.TXT локальный: Yoyodyne.TXT удаленный: Yoyodyne.TXT Команда 200 PORT выполнена успешно. 150 Открытие соединения для передачи данных в режиме ASCII для Yoyodyne.ТЕКСТ. 226 Передача завершена. 317000 байт получено за 0,0262 секунды (1,2e + 04 Кбайт / сек) ftp> выйти из 221 До свидания.
Как видите, FTP разработан, чтобы позволить пользователям много просматривать файловую систему.
как если бы вы использовали обычную оболочку входа в систему UNIX или команду MS-DOS
незамедлительный. Это отличается от других транзакционных протоколов (т. Е.
HTTP), когда соединение установлено, клиенты отправляют одно сообщение
сервер, который отвечает одним ответом, и соединение закрывается.На
с другой стороны, клиентские программы могут быть созданы для имитации транзакционного
окружающая среда, если они заранее знают, что им нужно делать. Фактически, FTP
— это последовательность одной или нескольких транзакций с отслеживанием состояния.
Командные примитивы, коды результатов и текстовые ответы
Клиент всегда отвечает за инициирование запросов. Эти
запросы отправляются с примитивами команд FTP, которые обычно составляют 3 или 4
персонажей каждый. Например, командный примитив для изменения рабочего
каталог — CWD.
Ответы сервера имеют специальный формат, содержащий трехзначный код результата.
сначала следует пробел, а затем — описательный текст (есть
также формат для многострочных ответов). В протоколе указано, что
клиенты должны полагаться только на числовой код результата, так как описательный текст
разрешено варьироваться (за некоторыми исключениями). На практике текст результата
часто бывает полезным для отладки, но обычно больше не используется для конечных пользователей.
Аутентификация
Хотя это не требуется протоколом, на самом деле клиенты всегда должны входить в систему
к FTP-серверу с именем пользователя и паролем, прежде чем сервер разрешит
клиент для доступа к услуге.
Также существует стандарт де-факто для гостевого доступа, где «анонимный»
(или «ftp») используются в качестве имени пользователя, а адрес электронной почты
обычно используется в качестве пароля для вежливых пользователей сети, чтобы позволить серверу
администратор знает, кто использует гостевой логин. Потому что пользователи не хотят
разглашать свои адреса электронной почты для защиты от нежелательных массовых рассылок,
впоследствии это привело к тому, что пароль — это всего лишь
произвольный текст.
Типы соединений для передачи данных
Протокол имеет встроенную поддержку разных типов данных.
переводы.Двумя обязательными типами являются ASCII для текста (заданные
клиент, отправляющий на сервер «ТИП A») и «изображение»
для двоичных данных (определяется «ТИП I»).
Передача
ASCII полезна, когда серверная и клиентская машины
разные стандарты для текста. Например, MS-DOS и Microsoft Windows
используйте последовательность возврата каретки и перевода строки для обозначения конца строки, но UNIX
системы используют только перевод строки. Когда указаны передачи ASCII, это
позволяет клиенту всегда иметь возможность переводить данные на свои собственные
текстовый формат.
Двоичные передачи могут использоваться для любого типа необработанных данных, которые не требуют
перевод. Клиентские программы должны использовать двоичную передачу, если они не знают
что рассматриваемый файл является текстовым.
Протокол не имеет расширенной поддержки наборов символов для
пути или содержимое файла. Невозможно указать UNICODE, для
пример. Для ASCII это только 7-битный ASCII.
К сожалению, ответственность за выбор типа передачи лежит на
клиент, в отличие от HTTP, который может информировать клиента о типе данных
послал.Клиенты часто просто предпочитают передавать все в двоичном формате, и
выполните любой необходимый перевод после загрузки файла.
Кроме того, двоичные передачи по своей сути более эффективны для отправки через
сеть, так как клиенту и серверу не нужно работать на лету
перевод данных.
Следует отметить, что передача ASCII предписана протоколом как
тип передачи по умолчанию, если клиент не требует иного!
Загадка PORT и PASV — Активные и пассивные соединения для передачи данных
Хотя он был специально разработан в протоколе как функция, использование FTP
отдельных подключений к данным вызывают множество проблем для таких вещей, как брандмауэры,
маршрутизаторы, прокси, которые хотят ограничить или делегировать TCP-соединения, а также
такие вещи, как IP-стеки, которые хотят выполнять динамическую проверку TCP с отслеживанием состояния
соединения.
Протокол не требует определенного номера порта или направления, которое
подключение для передачи данных использует. Например, легкий выход был бы для
разработчики протокола обязать всех подключений к данным исходить
с клиентской машины и заканчиваются на порте 20 на сервере.
Вместо этого для максимальной гибкости протокол позволяет клиенту выбирать
один из двух способов. Первый метод, который мы назовем « Active »,
это то место, где клиент запрашивает сервер
соединение для передачи данных и завершение на IP-адресе и номере порта клиента
выбор.Здесь важно отметить, что s erver подключает
к клиенту .
Клиент: | «Пожалуйста подключитесь ко мне через порт 1931 на IP-адресе 192.168.1.2, затем отправьте данные. « |
Сервер: | «ОК» |
Или клиент может запросить у сервера назначить IP-адрес и порт
номер на стороне сервера, и пусть клиент установит соединение с
адрес сервера.Мы называем этот метод « Passive » и отмечаем
что клиент подключается к серверу .
Клиент: | «Пожалуйста скажите мне, где я могу взять данные « |
Сервер: | «Подключить мне в порт 4023 на 172.16.62.36. « |
Активный метод использует примитив команды FTP PORT, поэтому в первом примере
использование фактического протокола FTP будет напоминать следующее:
Клиент: | ПОРТ 192,168,1,2,7,139 |
Сервер: | 200 Команда PORT выполнена успешно. |
Пассивный метод использует примитив команды FTP PASV, поэтому второй пример
использование фактического протокола FTP будет напоминать следующее:
Клиент: | ПАСВ |
Сервер: | Вход в пассивный режим (172,16,62,36,133,111) |
Следует отметить, что FTP-серверы необходимы для реализации ПОРТА,
но не требуются для реализации PASV.По умолчанию
традиционно был ПОРТ по этой причине, но на практике сейчас
предпочитали использовать PASV, когда это возможно, потому что межсетевые экраны могут быть
присутствует на стороне клиента, которая часто
вызвать проблемы.
Частичные подключения для передачи данных — возобновление загрузки
Протокол предоставляет средства для передачи только части файла, имея
клиент указывает начальное смещение в файл (используя REST
примитив, то есть «точка перезапуска»). Если сеанс FTP завершился неудачно, пока
передача данных выполняется и должна быть восстановлена, клиент может запросить
чтобы сервер перезапустил передачу со смещения, указанного клиентом.
Обратите внимание, что не все FTP-серверы поддерживают эту функцию.
Списки каталога
Базовый стандарт протокола FTP предоставляет два типа списков:
простой список имен (NLST) и удобный для чтения расширенный список (LIST).
Список имен состоит из строк текста, каждая из которых содержит ровно одну
имя файла и ничего больше.
Расширенный список не предназначен для машинного чтения, и протокол
не требует какого-либо конкретного формата. Стандарт де-факто — это
быть в формате UNIX «/ bin / ls -l», но хотя большинство серверов пытаются
чтобы имитировать этот формат даже на FTP-серверах, отличных от UNIX, он по-прежнему распространен для
серверы для предоставления собственного проприетарного формата.Важно
обратите внимание, что этот список может содержать любой тип данных и на него нельзя полагаться
на. Кроме того, даже те, которые указаны в «/ bin / ls -l»
формат нельзя полагаться на достоверность полей. Например
дата и время могут быть в местном времени или по Гринвичу.
Новые реализации FTP-сервера поддерживают машиночитаемый примитив листинга
(MLSD), который подходит для клиентских программ для получения надежных метаданных
информация о файлах, но эта функция все еще относительно редка.Который
оставляет простой список имен как единственный надежный способ получить имена файлов, но он
ничего не сообщает клиентской программе (например, является ли элемент файлом или
каталог!).
Функциональные проблемы
Несмотря на богатый набор функций, есть несколько вопиющих упущений. За
например, базовая спецификация даже не позволяет клиентам запрашивать
размер файла или дату изменения. Однако большинство используемых сейчас FTP-серверов
поддерживать фактическое расширение спецификации, которая предоставляет РАЗМЕР
и примитивы MDTM, и даже более новые серверы поддерживают чрезвычайно
полезные примитивы MLSD и MSLT, которые могут предоставить множество
информация в стандартизированном формате.
Также не существует 100% точного способа для клиента определить,
имя пути относится к файлу или каталогу, если MLSD или MLST не
доступный. Поскольку протокол также не позволяет передавать
сразу весь каталог товаров, следствие — нет 100%
точный способ загрузки всего дерева каталогов.
Конечным результатом является то, что FTP не особенно подходит для
«зеркальное отображение» файлов и каталогов, хотя программы-клиенты FTP используют
эвристика, чтобы делать расчетные предположения, когда это возможно.
Несмотря на предположения, которые клиенты могут использовать для определения метаданных файлов
для загрузки они мало что могут сделать для загружаемых файлов. Там
не является стандартным способом сохранить время модификации загруженного файла. FTP
не зависит от платформы, поэтому стандартных способов сохранить
метаданные для конкретной платформы, такие как разрешения UNIX и идентификаторы пользователей или файл Mac OS
коды типа и создателя.
Раздельные соединения для передачи данных также являются смешанным благом. За
высокая производительность лучше всего было бы использовать одно соединение и выполнять
несколько передач данных перед закрытием.Еще лучше было бы для
метод использования одного соединения для разговора управляющего соединения
и передача данных. Поскольку каждое соединение для передачи данных использует эфемерный (случайный)
номер порта, возможно «исчерпание» соединений. За
Подробности об этом явлении — отдельная статья.
доступен.
Проблемы безопасности
Важно отметить, что базовая спецификация, реализованная
подавляющее большинство FTP-серверов в мире не имеет специальной обработки для
зашифрованная связь любого вида.Когда клиенты входят на FTP-серверы,
они отправляют имена пользователей и пароли в открытом виде! Это значит, что
любой, у кого есть перехватчик пакетов между клиентом и сервером, может незаметно
украсть пароли.
Помимо паролей, потенциальные злоумышленники могли не только контролировать все
разговор по контрольному FTP-соединению, они также могут отслеживать содержимое
самих данных.
Были предложения сделать протокол FTP более безопасным, но эти
предложения не получили широкого распространения.
Следовательно, если сам уровень протокола IP не является безопасным (например,
зашифрованы с использованием IPsec), FTP не следует использовать, если конфиденциальная информация для входа
для обмена по незащищенной сети, или если файлы, содержащие конфиденциальные
материалы передаются по незащищенной сети.
Copyright 2001 Майк Глисон , NcFTP
Программное обеспечение .
Все права защищены.
.
Что такое FTP и как им пользоваться?
В этой статье мы опишем, как вы можете передавать файлы с локального компьютера в хранилище в Интернете. В этой статье мы проведем вас шаг за шагом от создания FTP-доступа к использованию программного обеспечения FTP.
Для загрузки созданных вами веб-сайтов должны быть выполнены следующие предварительные условия:
1. Вы уже заказали пакет в STRATO
2. Вы установили программу FTP (альтернативно: Web-FTP или браузер- на основе FTP)
Определение
FTP — это сокращение для протокола передачи файлов.С помощью этого протокола можно передавать данные между вашим локальным компьютером и хранилищем вашего хостинг-пакета STRATO. Протокол передачи FTP не зависит от используемой операционной системы и типа соединения. Помимо возможности передачи данных по протоколу FTP, также можно отображать каталоги, переименовывать их или ограничивать права.
С помощью программы FTP вы можете легко загружать файлы в хранилище или передавать их обратно на локальный компьютер.
С помощью программы FTP вы также можете удалять файлы и / или целые каталоги. Если вы удалите весь контент, посетители вашего сайта больше не будут видеть никакого контента.
Просто выделите ненужное содержимое и щелкните его правой кнопкой мыши. Если вы выберете опцию удаления, содержимое будет удалено из вашего веб-пространства после запроса безопасности.
Ваш предварительно настроенный FTP-доступ
Даже если вы еще не зарегистрировали домен в своем пакете STRATO, пространство для хранения вашего пакета в Интернете уже доступно для вас.Таким образом, вы уже можете передавать на него данные. Для этого вам понадобится мастер-идентификатор STRATO и мастер-пароль. Мастер-идентификатор будет отправлен на вашу электронную почту STRATO, как только вы активируете свой пакет.
Что такое Master ID STRATO и для чего он мне нужен?
Использовать предварительно настроенный FTP-доступ с основным идентификатором
Структура предварительно настроенного FTP-доступа идентична для всех пакетов. Вам понадобятся три части информации ниже, чтобы подключиться к хранилищу через программу FTP.Где нужно вводить данные в программе FTP, описано в нижнем разделе статьи.
Сервер | ftp.strato.com |
Имя пользователя (Имя пользователя) | Имя вашего домена (без www., Например, желаемое имя.de) |
Пароль | Ваш главный пароль |
Вы должны сами выбрать главный пароль в зоне обслуживания клиентов. После выбора вашего заказа (кнопка «Ваш пакет») вы можете создать главный пароль в меню «Администрирование». элемент, нажав Установить пароли.
Даже если вы зарегистрировали домен в своем пакете позже, остается возможность подключиться к Интернет-хранилищу с помощью главного идентификатора.
Использовать предварительно настроенный FTP-доступ с доменными именами
Если ваш домен уже был подключен в заказанном вами пакете, вы можете войти в свое интернет-хранилище, указав доменное имя и главный пароль. Где нужно вводить данные в программе FTP, описано в нижнем разделе статьи.
Сервер | ftp.strato.com |
Имя пользователя (Имя пользователя) | Имя вашего домена (без www., Например, желаемое имя.de) |
Пароль | Ваш главный пароль |
Настройте дополнительные учетные записи FTP-доступа
Теперь выберите пункт меню Администрирование и затем управляйте FTP-доступом подпункт
В зависимости от выбранного пакета хостинга у вас может быть до 20 учетных записей FTP.Возможно, имеет смысл создать несколько учетных записей FTP, если вы хотите предоставить третьим лицам права загружать контент в свое хранилище.
Благодаря системе паролей STRATO гарантируется, что третьи лица не смогут просматривать ваши личные данные (например, банковский счет, адрес или аналогичную информацию).
Теперь создайте доступ к FTP, нажав кнопку «Создать новый доступ к FTP»: Neuen FTP Zugang anlegen klicken:
Теперь вам нужно указать имя пользователя и пароль, которые вы можете использовать для входа в систему. в программу FTP.Рядом отображается уровень безопасности выбранного пароля.
Наши рекомендации по выбору надежных паролей
Если вы зарегистрировали несколько доменов в своем пакете, вам также необходимо будет выбрать доменные имена в раскрывающемся меню.
Предварительно установленный начальный каталог (также: корневой или корневой каталог) — «/». Это верхний уровень структуры каталогов. Если вы хотите ограничить права доступа по FTP, вы можете выбрать каталог из хранилища.Все папки и файлы над выбранным каталогом не видны. Это может иметь смысл, например, если вы хотите, чтобы ваши сайты создавали сторонние лица, а частный контент должен быть защищен от редактирования.
Если вы завершили ввод и подтвердили, нажав Сохранить , вы получите подтверждение, содержащее информацию, введенную на следующем шаге.
Использование программы FTP
Наиболее часто используемый метод загрузки файлов FTP — это использование программного обеспечения FTP.Некоторые браузеры также предлагают ограниченную возможность загрузки / скачивания файлов через FTP. Следует отдавать предпочтение использованию независимого программного решения, так как работа с ним проще и удобнее.
FTP-программы доступны как так называемые решения с открытым исходным кодом и поэтому доступны бесплатно в Интернете.
Популярные программы: FileZilla, WS_FTP, SmartFTP или CuteFTP.
Они доступны для операционных систем Windows и MacOS, однако некоторые из них только на английском языке.
FTP на основе браузера больше не предлагается для Internet Explorer, начиная с версии 7. Для браузера Firefox существует бесплатное дополнение под названием «fireFTP».
В этом разделе мы описываем возможности использования FTP на основе бесплатного программного обеспечения FileZilla. Вы можете скачать это по адресу http://filezilla-project.org/download.php?type=client.
После того, как вы установили Filezilla, вы увидите обзор с несколькими пустыми окнами.Вы можете отрегулировать размер отдельных окон в соответствии со своими потребностями. Для этого перетащите край окна в желаемое положение, удерживая нажатой кнопку мыши. Вы также можете отображать и скрывать окно с помощью пункта меню View из FileZilla.
Структура каталогов вашего компьютера будет отображаться слева. Возможно, вы уже знакомы с этой иерархической древовидной структурой из проводника Windows.
Мы разделили структуру Filezilla на три части, которые мы хотели бы представить одну за другой.
Einstellungen und Login / Statusfenster für die Verbindung
Структура каталогов вашего компьютера / место для хранения вашего хостинг-пакета STRATO Статус
обзор текущих переводов / очереди
1. Область навигации и логин
Чтобы подключиться к своему хранилищу в Интернете с помощью FileZilla, вам необходимо войти в хранилище. Для этого вам понадобится та информация, которую вы получили при создании учетной записи FTP.Вы можете войти в хранилище на панели ввода, расположенной на верхнем краю.
Сервер | ftp.strato.com |
Имя пользователя | Здесь вы можете ввести свое имя пользователя FTP и свой домен в формате [email protected]. Если вы используете предварительно настроенную учетную запись для доступа к FTP , достаточно указать имя домена (без www.) В качестве имени пользователя. |
Пароль | Пожалуйста, введите свой мастер-пароль, который вы назначили в области для клиентов. |
порт | Это поле должно оставаться пустым. В фоновом режиме: По умолчанию протокол FTP соединяется с портом 21, sFTP — с портом 22. |
Соединение | При нажатии на «Подключиться» введенная информация передается на сервер и проверяется. Вы можете повторно открыть прошлые подключения, щелкнув раскрывающееся меню. |
Примечание о поле «Сервер» |
Чтобы установить протокол сервера, вы можете вставить имя протокола перед именем сервера.Если протокол не указан, будет использоваться стандартный протокол (ftp: //). Вы также можете указать полный URL-адрес в виде протокола: // имя пользователя: пароль @ сервер: порт. Затем значения в других полях перезаписываются. |
диспетчер серверов
С помощью диспетчера серверов вы можете вводить и сохранять свою информацию (имя сервера, имя пользователя, пароль). Вам не нужно снова добавлять какие-либо записи в поля выбора. Более того, таким образом можно управлять несколькими доступами к FTP.
Диспетчер серверов находится на панели навигации под , файлом и диспетчером серверов .
Введите имя вашего домена в поле Сервер. В качестве типа подключения выберите Обычное , а затем введите созданные имена доступа FTP и назначенный пароль.
Если вы создаете несколько учетных записей FTP-доступа через диспетчер серверов, рекомендуется дать эти запоминающиеся имена. Опция переименования доступна для этого в левой области.
Другие параметры диспетчера сервера (расширенные, параметры передачи, набор символов) не имеют отношения к подключению к вашему хранилищу.
Теперь вы можете подключиться к хранилищу, нажав кнопку Connect .
Сообщения о состоянии
Под окном ввода данных доступа вы найдете окно с ответами о состоянии для ваших команд. Это показывает, не удалось ли установить соединение, например, из-за неправильного пароля.
Структура сообщений о состоянии всегда идентична. Сначала он указывает, какую команду вы ввели. Далее Filezilla выводит следующий ответ (в примере: 530 Неправильный логин).
Даже если вы назначаете переводы, вы всегда можете проследить в этой области, чтобы увидеть, был ли достигнут желаемый результат или возникли ошибки.
2. Структура каталогов вашего компьютера / место для хранения вашего статуса хостинг-пакета STRATO
В этом окне вы можете увидеть структуру каталогов на вашем локальном компьютере.В этой области вы можете открывать и закрывать дерево каталогов, нажимая на символы + и -. В поле Local будет показан каталог, который вы только что выбрали (пример: диск f:, каталог STRATO)
Если вы выбрали локальный файл или каталог, который вы хотите загрузить в свое хранилище, он Теперь важно выбрать каталог в вашем интернет-хранилище, в который должен быть загружен файл.
Таким образом, вам нужно будет развернуть дерево каталогов в правой области (сервере) Filezilla и выбрать нужный подкаталог.
В нашем примере мы выбрали файл на локальном рабочем столе (фото из Vacation.gif) и хотели бы загрузить его в каталог / cgi-data / photoalbum / images вашего хранилища.
Передача начинается двойным щелчком на файле. Кроме того, вы также можете выделить файл правой кнопкой мыши и выбрать опцию «Загрузить».
Теперь файл находится в вашем хранилище, и его можно открыть, указав свое доменное имя, как в нашем примере ниже:
http: // wunschname.de / cgi-data / fotoalbum / faq / images / Photo% 20aus% 20dem% 20Urlaub.gif
3. Передачи и очередь
В поле ниже вы можете увидеть, были ли передачи успешны или есть ошибки. произошло. Это окно предлагает историю всех переводов во время вашего сеанса.
Если вы хотите загрузить или загрузить много файлов, вы также можете добавить файлы в очередь. Это позволяет лучше использовать доступную пропускную способность и пропускную способность. Файлы в очереди обрабатываются впоследствии после ваших приоритетных передач.Вы будете проинформированы о том, сколько переводов сейчас в очереди, через сигнал светофора.
.
В чем разница? FTP, SFTP и FTP / S
FTP, FTP / S и SFTP — довольно распространенные сокращения в мире технологий, но знаете ли вы, что между ними есть некоторые существенные различия? Вообще говоря, FTP в его базовой форме небезопасен, FTP / S повышает безопасность, позволяя защитить весь сеанс или его часть (за счет скорости), а протокол SFTP используется для обеспечения безопасности. что вся передача файлов будет безопасной и эффективной.
FTP (протокол передачи файлов)
FTP — это очень хорошо зарекомендовавший себя протокол, разработанный в 1970-х годах для того, чтобы два компьютера могли передавать данные через Интернет.Один компьютер действует как сервер для хранения информации, а другой действует как клиент для отправки или запроса файлов с сервера. Протокол FTP обычно использует порт 21 в качестве основного средства связи. FTP-сервер будет прослушивать клиентские подключения через порт 21.
FTP-клиенты затем подключатся к FTP-серверу через порт 21 и начнут диалог. Это главное соединение называется Control Connection или Command Connection . FTP-клиент обычно аутентифицируется на FTP-сервере, отправляя имя пользователя и пароль.После аутентификации клиент и сервер обычно посредством серии синхронизированных команд, управляемых Командным соединением, согласовывают новый общий порт, называемый Data Connection , по которому будет передаваться файл. Управляющее соединение остается свободным до конца этого обмена, когда оно сообщает, что передача файла не удалась или была успешно завершена. Разговор между клиентом и сервером осуществляется в виде обычного текста — все сообщения между двумя сторонами дословно передаются через Интернет без защиты.Это делает FTP очень небезопасным; для третьей стороны, такой как злоумышленник-посредник (MITMA), не составит особого труда украсть учетные данные пользователей.
Есть исключение из этого правила, называемое одноразовым паролем (OTP), при котором сервер отправляет серию цифр клиентскому серверу в ответ на получение команды USER. Клиент берет эти цифры и, используя заранее известный алгоритм, такой как ROT13 или MD5, клиент сгенерирует хэш своего пароля вместе с серией цифр для создания уникального пароля (используется один раз, отсюда и OTP).Клиент представляет этот хэш серверу, который принимает пароль пользователя, уже сохраненный на сервере, и использует те же цифры. Если хеши пароля совпадают, они аутентифицируются. Это несколько более безопасно, поскольку пароль пользователя не передается по сети — только хэш пароля пользователя, поэтому MITMA обычно не может реконструировать пароль из хеша.
Потребность в соединении для передачи данных и присущие ему лазейки в безопасности являются серьезной проблемой при использовании Интернета сегодня.FTP традиционно требует, чтобы блок портов оставался открытым либо на брандмауэре сервера, либо на брандмауэре клиента, чтобы облегчить создание соединений данных. По соображениям безопасности компании ограничивают количество портов в своих общедоступных межсетевых экранах и ищут альтернативные решения, чтобы держать порты закрытыми и обеспечивать безопасность информации.
FTP / S (протокол передачи файлов по уровням защищенных сокетов)
Наряду с передачей файлов клиенты обычно запрашивают информацию о каталоге с сервера.Формат информации в каталогах часто является примитивным по сегодняшним стандартам, и поэтому FTP-клиент иногда может получить только подмножество атрибутов или свойств файлов, доступных на сервере (например, дату последнего изменения файла. , но не дату создания файла).
Хотя общий протокол FTP небезопасен, с годами были добавлены расширения, позволяющие обеспечить безопасность FTP-разговоров, а именно отраслевой стандарт 2048-битной безопасности транспортного уровня (TLS), наиболее обновленную версию старого 1024-битного стандартного SSL. .FTP через SSL (широко известный как FTP / S) позволяет шифровать как управляющие соединения, так и соединения данных, одновременно или независимо. Это важно, потому что согласование SSL-соединения занимает много времени, и необходимость выполнять его дважды — один раз для соединения данных и один раз для соединения управления — может быть дорогостоящим, если клиент планирует передать большое количество небольших файлов.
FTP / S обычно работает на порту 990, а иногда и на порту 21, основное отличие состоит в том, что порт 990 — это Implicit FTP / S , а порт 21 — это Explicit FTP / S .Если клиент подключается к серверу FTP / S через порт 990, предполагается, что клиент намеревается использовать SSL. Таким образом, квитирование SSL происходит немедленно; он называется неявным, поскольку номер порта подразумевает безопасность. FTP-клиенты, которые подключаются к порту 21 и намереваются использовать SSL для обеспечения безопасности, должны будут сделать дополнительный шаг, чтобы явно заявить о своих намерениях, отправив на сервер команду AUTH SSL или AUTH TLS . Как только сервер получает эту команду, обе стороны выполняют квитирование SSL и переходят в безопасное состояние, поэтому порт 21 называется явным.Это дает клиенту возможность активировать повышенную безопасность при необходимости или ускорить процесс передачи файлов, менее чувствительных к безопасности.
SFTP (протокол безопасной передачи файлов)
SFTP (протокол безопасной передачи файлов) — относительно новый протокол, разработанный в 1990-х годах, который позволяет передавать файлы и другие данные через соединение, которое ранее было защищено с помощью Secure Shell. (SSH) протокол. Хотя оба протокола похожи на FTP / S в том, что оба протокола обмениваются данными через безопасное соединение, на этом сходство в основном заканчивается.
В отличие от FTP, протокол SFTP основан на пакетах, а не на тексте. Если FTP может отправить такую команду, как «DELE file.txt», SFTP отправит двоичный 0xBC, а затем «file.txt». Ключевое отличие состоит в том, что, отправляя меньше данных, протокол SFTP работает быстрее в долгосрочной перспективе, поскольку меньше данных передается по сети.
Еще одно отличие состоит в том, что при использовании SFTP передача файлов выполняется в режиме реального времени по основному управляющему соединению, что устраняет необходимость открывать отдельное соединение данных для передачи.Это дает много преимуществ. Во-первых, при повторном использовании основного соединения никакие другие соединения не открываются между клиентом и сервером, что приводит к единому безопасному и эффективному соединению через брандмауэры.
Поскольку SFTP работает через SSH, он изначально безопасен. Не существует незащищенной версии — шифрование не может быть запущено или отключено с помощью команд AUTH, как в FTP / S. Это плюс для системных администраторов, которые пытаются обеспечить соблюдение корпоративных политик безопасности.
Еще одно отличие состоит в том, что большинство версий программного обеспечения SFTP-сервера могут предоставлять гораздо более богатый и подробный набор данных о файлах, таких как разрешения, дата, время, размер и другая информация, обычно недоступная для FTP, спасибо к более надежному протоколу запросов SFTP.
Это существенные различия между FTP, SFTP и FTP / S. Titan FTP Server Enterprise Edition поддерживает как FTP, так и SFTP.
Готовы попробовать FTP-сервер Titan?
.
Разница между HTTP и FTP (со сравнительной таблицей)
HTTP и FTP — это протоколы передачи файлов, которые используются для передачи данных между клиентом и сервером. Функции HTTP аналогичны комбинированному функционированию FTP и SMTP. FTP — это протокол, который решает проблему, когда взаимодействующий клиент и сервер имеют разные конфигурации.
Основным отличием HTTP от FTP является то, что HTTP по запросу предоставляет веб-страницу с веб-сервера на веб-браузер.С другой стороны, FTP используется для загрузки или скачивания файла между клиентом и сервером. Давайте обсудим некоторые другие различия между HTTP и FTP с помощью сравнительной таблицы, показанной ниже.
Содержимое: HTTP против FTP
- Таблица сравнения
- Определение
- Ключевые отличия
- Заключение
Таблица сравнения
Основа для сравнения | HTTP | FTP |
---|---|---|
Basic | HTTP используется для доступа к веб-сайтам. | FTP передает файл с одного хоста на другой. |
Соединение | HTTP устанавливает только соединение для передачи данных. | FTP устанавливает два соединения: одно для данных и одно для управляющего соединения. |
TCP-порты | HTTP использует номер порта TCP 80. | FTP использует номер порта TCP 20 и 21. |
URL | Если вы используете HTTP, http будет отображаться в URL. | Если вы используете FTP, ftp будет отображаться в URL. |
Эффективный | HTTP эффективен при передаче небольших файлов, таких как веб-страницы. | FTP эффективен при передаче файлов большого размера. |
Аутентификация | HTTP не требует аутентификации. | FTP требует пароль. |
Данные | Контент, передаваемый на устройство по протоколу HTTP, не сохраняется в памяти этого устройства. | Файл, переданный на хост-устройство по FTP, сохраняется в памяти этого хост-устройства. |
Определение HTTP
HTTP — это протокол передачи гипертекста . Это помогает в доступе к данным из World Wide Web . HTTP работает аналогично комбинированным функциям FTP и SMTP. Подобно функционированию FTP , потому что, как и FTP, он передает файлы, используя службу TCP . Но он использует только одно TCP-соединение, то есть для передачи данных , в HTTP не используется отдельное управляющее соединение. HTTP использует службы TCP на порту № 80 .
HTTP похож на SMTP , поскольку данные, передаваемые между клиентом и сервером, выглядят как сообщения SMTP . Но сообщения HTTP не предназначены для чтения людьми, они интерпретируются и читаются веб-сервером и веб-браузером. В отличие от сообщений SMTP, сообщения HTTP доставляются немедленно, а не сохраняются, а затем пересылаются.
Команды со стороны клиента отправляются в сообщении запроса на веб-сервер. Веб-сервер отправляет запрошенный контент в ответном сообщении .HTTP не обеспечивает никакой безопасности, для обеспечения безопасности он запускается на уровне Secure Socket Layer .
Определение FTP
FTP — это протокол передачи файлов . Он используется для копирования файла с одного хоста на другой. При копировании файла с одного хоста на другой могут возникнуть проблемы: у связывающегося хоста могут быть разные соглашения об именах файлов, могут быть разные структуры каталогов, другой способ представления данных. FTP преодолевает все эти проблемы.FTP используется, когда два хоста с разными конфигурациями хотят обмениваться данными между собой.
FTP использует службы TCP для передачи файла между клиентом и сервером. FTP устанавливает два соединения одно для передачи данных на порт TCP с номером 20 и одно для управляющей информации (команды и ответы) на порт TCP с номером 21 . Раздельное соединение для данных и команд делает FTP более эффективным.
Управляющее соединение имеет очень простые правила обмена данными, но соединение данных имеет сложные правила из-за разнообразия передаваемых данных.FTP был разработан, когда безопасность не была большой проблемой. Хотя для FTP требуется пароль, который отправляется в виде простого текста, который может быть перехвачен. Таким образом, можно добавить уровень защищенных сокетов между уровнем приложения FTP и уровнем TCP для обеспечения безопасности.
Ключевые различия между HTTP и FTP
- Основное различие между HTTP и FTP заключается в том, что HTTP используется для доступа к различным веб-сайтам в Интернете. С другой стороны, FTP используется для передачи файлов с одного хоста на другой.
- HTTP устанавливает только соединение для передачи данных, тогда как FTP устанавливает данные, а также управляющее соединение.
- HTTP использует номер порта TCP 80, тогда как FTP использует номер порта TCP 20 и 21.
- Если вы используете HTTP, http отображается в URL-адресе веб-сайта, а если вы используете FTP, ftp отображается в вашем URL-адресе.
- HTTP эффективен для передачи небольших файлов, таких как веб-страницы, тогда как FTP эффективен для передачи больших файлов.
- HTTP не требует аутентификации, тогда как FTP использует пароль для аутентификации.
- Веб-страницы или содержимое данных, переданные на устройство с помощью HTTP, не сохраняются в памяти этого устройства, тогда как данные, доставленные на устройство с помощью FTP, сохраняются в памяти этого устройства.
Заключение
FTP более старый и заменяется новыми протоколами, тогда как HTTP появится в ближайшем будущем.
.