Протокол ftp. Особенности работы протокола FTP

Описание протокола

Отличие от HTTP

Соединение и передача данных

Поддержка веб-браузерами

Синтаксис

Синтаксис FTP URL описан в RFC1738, в форме: ftp://[<пользователь>[:<пароль>]@]<хост>[:<порт>]/<путь> (параметры в квадратных скобках необязательны). Например:

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

  • Tectia ConnectSecure (Win/Linux/Unix)
  • Tectia Server for IBM z/OS из пакета SSH Communications Security
  • (под лицензией GPL)

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 серверов (англ.)
  • Команды и коды ошибок FTP сервера

Ссылки

  • Первоначальная спецификация FTP RFC 959
  • Расширения безопасности RFC 2228
  • Интернационализация FTP RFC 2640
  • Расширение NAT-PT для поддержки FTP RFC 2766
  • Шифрование KEA и SKIPJACK RFC 2773
  • Расширение команд FTP RFC 3659

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

Что такое FTP?

Как вы, наверное, знаете, существуют различные протоколы для передачи данных через интернет и другие сети. Каждый раз, когда вы набираете адрес сайта в адресной строке браузера, к нему автоматически добавляется спереди «http://». Это обозначение протокола HTTP (HyperText Transfer Protocol – протокол передачи гипертекста). Этот протокол используется для передачи пользователю от сервера HTML-страниц и связанных с ними элементов (графики, флэш-роликов, скриптов и т.д. и т.п.). По нему же часто передаются и файлы, которые пользователь скачивает на свой компьютер.

Но сейчас речь не о нём, а о другом протоколе – он, как вы можете увидеть из заголовка, называется FTP. Расшифровывается эта аббревиатура как File Transfer Protocol – протокол передачи файлов. Возникает вполне логичный вопрос: если мы только что говорили, что с помощью HTTP пользователь может скачать файл с сервера себе на компьютер, зачем понадобился ещё один протокол для передачи файлов?

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

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

Во-первых, FileZilla поддерживает защищённое соединение через безопасные шифруемые протоколы SSL и SFTP, что весьма немаловажно в наше время. При этом имеется поддержка скачки и закачки файлов, имеющих размер более 4 Гб, а также встроенный менеджер сайтов. Программа умеет работать под разными операционными системами и имеет специальную портативную версию, которую можно носить с собой на «флэшке» и запускать без установки. Дополняет картину многоязычный интерфейс программы , причём среди языков есть и русский.

Итого

Что ж, как видите, в работе с протоколом FTP никаких особых сложностей не наблюдается. Большинство пользователей вполне могут обойтись «Проводником» Windows или своим любимым браузером, ну а те, кто хочет чего-то большего, смогут не тратить деньги на дорогие специализированные программы и не заниматься их взломом, а воспользоваться бесплатными решениями, ничем не уступающим в качестве коммерческим. Успехов вам в «общении» с FTP-серверами!

Один из старейших сетевых протоколов — это FTP. Для чего он предназначен, какова его роль в сетевом «общении» компьютеров, как работает данный протокол и стоит ли его использовать — ответы на все эти вопросы вы найдете в статье ниже.

В чем суть технологии FTP

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

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

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

Какое предназначение протокола FTP

Предназначен FTP протокол для передачи данных между клиентом и сервером. Он так и называется — «протокол передачи данных». Поскольку им пользуются уже очень давно, FTP вошел в число стандартов сети Intetnet. Впервые протокол был использован еще в 1971 году. За время существования он сильно изменился. Некоторые функции убрали, и сделали упор на том, что FTP хорошо подходит для обмена данными между удаленными компьютерами. Со временем его сделали более удобным для обычных пользователей. Ведь зайти в FTP-сервер можно как при помощи специальной программы, так и используя стандартные службы операционных систем. К примеру, вы даже сможете подключиться к серверу FTP при помощи стандартного проводника Windows.

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

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

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

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

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

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

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

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

А вот в чем заключается общий алгоритм работы для любого протокола FTP на сервере:

  1. Сервер всегда находится в некотором состоянии ожидания со стороны пользователя. В любой момент клиент может подключиться к серверу, потому управляющий канал держит открытым 21-й порт. Именно по нему переходят все управляющие команды. Порт 21 установлен по умолчанию, но его могут изменить. Тогда пользователю придется вводить номер порта вручную, иначе он не сможет выйти на управляющий канал.
  2. После соединения через порт канала управления, программа со стороны клиента может отдавать команды интерпретатору сервера. Эти команды определяют как изменения внутри файловой системы сервера, так и способ передачи данных, их содержание, объем, тип режима работы и многое другое.
  3. После того, как все команды для передачи данных согласованы, один из участников соединения становится в пассивный режим ожидания (сервер или клиент). Он ждет, пока ему выдадут номер порта, чтобы открыть его и получить или отправить данные по нему.
  4. После окончания процесса передачи данных соединение закрывается, но управляющий канал по-прежнему остается открытым. Это позволяет пользователю все проделать снова: дать команду серверу и вновь начать передачу данных. При этом не нужно заново создавать сессию. Потому-то FTP и работает при помощи двух типов соединения.

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

Главное, что нужно понять в работе FTP протокола — это взаимодействие соединений и портов. Большинство ошибок во время работы по этому протоколу связаны с тем, что одна из сторон соединения не настроила свой порт. Есть пассивная и активная сторона протокола. Пассивная должна внимательно слушать и дожидаться, пока активная не передаст номер порта, который тут же нужно открыть. Если порт не будет открыт, передача данных не начнется.

Не думайте, что вы должны вручную ждать какие-то команды от активного участника соединения — это все делается автоматически. Проблемы появляются, когда, к примеру, у вас на компьютере уже занят тот или иной порт, либо заблокирован для входящих/исходящих соединений. Вот в такие моменты придется «закатать рукава», и вручную настроить компьютер, чтобы он мог корректно работать при помощи FTP.

Какие команды использует FTP протокол

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

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

Одна из самых популярных функций, при помощи которой вы сможете «путешествовать» по серверу — это CWD. Команда нужна для того, чтобы вы могли перемещаться между директориями сервера. Чтобы воспользоваться командой, введите CWD и путь каталога, в который вы хотите попасть.

Если в каком-то случае вам необходимо провести реинициализацию, то есть опустить все данные и настройки текущего соединения, то используйте команду REIN. Во время ее использования передача данных не прекращается, и параметры передачи остаются прежними, какими были до команды REIN. Либо можете сделать это еще более радикальным способом — закрыть управляющее соединение при помощи команды QUIT. Она также не прерывает передачу данных, и только после окончания загрузки сессия полностью прерывается.

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

Команды RETR и STOR вы будете использовать для того, чтобы передавать данные с сервера и на сервер. Первая команда нужна для того, чтобы отправить выделенный файл на устройство клиента, а вторая — на сервер. А чтобы переименовать файл, вам нужно использовать две последовательные команды. Сначала пропишите RNFR со старым именем файла, а затем RNTO, указав новое имя файла. Также вам понадобится команда DELE, которая нужна для удаления данных с файловой системы, точнее того файла, который выделен в текущий момент.

Для удаления каталогов используются другие команды. Чтобы удалить выделенный каталог, вам понадобится команда RMD. А чтобы создать новую папку, используйте строку MKD. Также пользователям часто нужна функция просмотра файлов, которые имеются в каталоге. Для этого используйте команду LIST, либо NLST.

Какие есть аналоги у FTP

У протокола передачи данных FTP есть его прямые «наследники», то есть протоколы, которые образованы из ФТП. Это два протокола: TFTP и SFTP. Первый протокол не самый популярный, потому как сильно ограничен в плане команд. Он гораздо хуже подходит для управления файловой системой сервера, чем FTP. Вы не сможете даже просмотреть список файлов каталога при помощи него. Нужен TFTP только для передачи простейшей 8-битной информации, не более. И в этом протоколе есть всего 5 команд, которые нужны для чтения, записи, запроса пакета данных и других простых операций.

А вот протокол SFTP куда более удачный, чем TFTP и в некоторых случаях — чем FTP. Дело в том, что это защищенный FTP протокол. Он является комбинацией шифрованного SSH соединения и протокола передачи данных FTP. Кроме того, в SFTP многие лишние функции исключены, которые были введены в FTP уже давно, но никем не используются. Потому SFTP и безопаснее, чем FTP, и при этом скромнее в хорошем смысле этого слова. Рекомендуется выбирать именно SFTP в тех случаях, когда вы работаете с какими-то конфиденциальными данными. Тогда даже если хакеры и перехватят отправляемые данные по управляющему соединению, они все равно будут зашифрованными и никакой ценности взломщикам не принесут.

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

Протокол FTP является разновидностью протокола для передачи данных, который используется с целью копирования и перемещения файлов в интернете и внутри TCP-сетей. FTP достаточно часто применяется с целью загрузки страниц и документов различного типа на хостинговые компьютеры. Протокол FTP использует архитектуру «клиент-сервер» и различные соединения внутри сети для того, чтобы передавать команды и информацию от клиента к серверу и наоборот. Пользователям FTP разрешается проходить процедуру аутентификации при помощи логина и пароля, либо же, если такая форма разрешена на сервере, пользователи могут получать доступ в анонимном режиме.
Кроме обычного протокола, также применяется FTPS, представляющий собой особое расширение стандартного FTP, которое дает возможность клиентам получать доступ к серверу и использовать зашифрованные сессии передачи информации. Такой подход реализуется при помощи отправки команды аутентификации «auth tls», при этом серверу разрешается принимать либо отклонять соединения, не запрашивающие TLS-соединений.

SFTP

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

Особенности стандарта FTP

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

Особенности активного режима

Во время активного режима клиент инициирует управляющее соединение с серверным портом 21, передавая команду «port», при помощи которой указывается адрес и порт трансфера информации. После получения этой команды сервер запускает соединение собственного 20-го порта с указанным портом пользователя.
Основным недостатком данного метода является обязательное наличие у пользователя для работы выделенного IP-адреса в интернете. Кроме того, некоторые проблемы могут возникнуть, если клиент находится за брандмауэром либо NAT.

Особенности пассивного режима

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

Настройка в случае использования брандмауэра

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

Настройка в случае использования NAT

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

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

В чем преимущества использования службы FTP?

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

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

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

Служба файлов FTP использует протокол, который напрямую взаимодействует с протоколом на транспортном уровне, иначе TCP:

  • Начальный стандарт - RFC-114.
  • Последний - RFC-959.

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

1. Управляющее соединение - оно предназначено для передачи команд серверу и получения от него уже обработанных ответов. Для организации этого соединения нужен протокол Telnet (отправка запроса и ожидание обработанного ответа, после его получения дает сигнал, что возможно передать команду).
2. Соединение имеющихся или всех посылаемых и получаемых файлов. После установки Telnet-соединения передача файлов осуществляется путем логического прцесса, который организует TCP, он проверяет доступность портов в FTP-сервере.
Такие постоянно формируются, а в случае необходимости ликвидируются.

FTP-протокол может работать в двух режимах:

Активном;
- пассивном.

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

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

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

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

Что подразумевается под FTP-сервером?

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

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

Archie - поисковая программа для FTP-архивов

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

Для работы через Telnet пользователю следует открыть сессию Telnet, в нужной строке написать слово archie. Выглядит это так: telnet archie.mcgill.са login: archie.
После того как появится строка: archie>. Можно поинтересоваться и возможностями сервера, введя в строку команду: help.

Как самостоятельно в сети интернет?

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

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

Интернет-служба передачи файлов FTP, созданная через программу GuildFTPd

После скачивания и установки на компьютер этой программы надо перейти в панель настроек (GuildFTPd options), там выйдет несколько вкладок и пунктов. В категории General находятся все главные настройки, которые определяют количество соединений, номера портов и другие важные параметры. Здесь надо выполнить все нужные настройки. У каждого сервера они индивидуальны и зависят только от желаний создателя.

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

Какой вид создаваемого FTP-сервера выбрать? Сервер на основе персональных аккаунтов

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

Для этого создается группа, ей дается название, делается общий доступ в корневой каталог. Для этого надо нажать на кнопку Add и перейти в раздел Edit Path. Затем создается база пользователя, Admin, далее Add User, тут необходимо ввести идентификационные данные (логин, пароль) всех будущих пользователей создаваемого сервера. Таких пользователей может быть любое количество, желательно сразу определиться с их ним, если, например, будет пользоваться человек 16. Служба FTP в интернете предназначена для обмена документами между неограниченным количеством людей.

Когда основная база готова, при необходимости может создаваться виртуальная файловая система под каждого пользователя. Для этого надо опять пройти в Add - Edit Path, там указать имена файлов и папок для каждого отдельного логина.

Как создается открытый FTP-сервер?

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

Создать открытый сервер намного проще, чем с персональными аккаунтами. В этом случае создается только один пользователь, в строчке указания имени следует ввести anonymous. Также обязательно надо снять галочку, которая стоит возле названия list. Далее остается только закачать файловые каталоги, которые будут доступны любому пользователю интернета.

Статьи по теме: