Что такое FTP-сервер. Что такое FTPS: принцип работы и отличия от обычного 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-сервер. И многие не знают что это такое.

FTP-сервер , это обычный компьютер, который подключен к Интернету, где и содержатся общедоступные файлы. И для того что бы скопировать данные файлы на свой компьютер нужен специальный протокол передачи данных – FTP. С помощью программы – FTP-клиента (например, FTPExplorer, CuteFTP Pro, FileZilla и другие) или из интернет-браузера, вводя адрес нужного вам сервера после ftp://, происходит соединение с этим сервером.

Так же подключиться к FTP-серверу можно с помощью файловых менеджеров. Эта функция очень удобна в бесплатном файловом менеджере FreeCommander. Подключиться к необходимому нам FTP-серверу можно в стандартном и анонимном режиме.

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

Кроме стандартного подключения к FTP-серверу, есть возможность подключиться анонимно. Для анонимного подключения зачастую используется логин anonymous, а пароль по этикету - адрес электронной почты. Многие FTP-сервера предоставляют возможность анонимного входа, например, если вы пользуетесь браузером Internet Explorer, тогда при вводе адреса FTP-сервера вы подключитесь анонимно к этому ресурсу.

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

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

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

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

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

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Эта технология является одной из самых востребованных для скачивания и загрузки данных с/на удаленные серверы, рассредоточенные по всему миру.

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

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

Визуальное представление зависит от системы, через которую выполняется вход. Есть специальные программы типа FileZilla, в ней данные выводятся в виде привычного всем Total Commander.


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

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

Более подробно рассмотрим технические аспекты и расскажем, что такое ftp сервер и как он работает.

Главная функция FTP - передача файлов.

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

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

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

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

Бывают варианты входа без указания регистрационных данных. В этом случае доступные посетителю опции будут ограничены.

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

Для подключения можно использовать веб-браузер или файловые менеджеры типа Total Commander, FileZilla. Через браузер вы сможете просмотреть и скачать файлы, при этом внести изменения не сможете.

Удобнее работать через программу-клиент FileZilla (можно скачать в свободном доступе).

Создаем новое подключение следующим образом:

  • В поле «Хост» вводим адрес ftp-сервера.
  • Заполняем поля «Имя» пользователя, «Пароль» и, при необходимости, «Порт».

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

Для чего еще используют FTP

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

Там можно хранить любую рабочую либо личную информацию больших объемов, как вариант, фотографии, видеофильмы.

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

Недостатки FTP-серверов

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

Проверка подлинности источника пакета передачи данных отсутствует, это приводит к уязвимости перед dDoS-атаками.

FTP (File Transfer Protocol) – протокол передачи данных по сети между компьютерами. При помощи специальных данных возможно подключится к серверу и работать с данными на диске.

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

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

Как подключиться к FTP

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

  • FileZilla – поддерживает любую операционную систему. Самый популярный из существующих инструментов.
  • WinSCP – ПО для системы Windows, можно подключаться по защищенному соединению.
  • Total Commander – хоть это и файловый менеджер, но имеет функцию подключения по FTP. Но это не тот вариант, который я бы рекомендовал, лучше следующий. .
  • FreeCommander – файловый менеджер, имеющий все средства для работы с данными и функцию FTP-клиента. Защищенное соединение поддерживает. .
  • Сетевой диск Windows – FTP-соединение осуществляется при помощи проводника.

Подключение к FTP с помощью проводника Windows

Обычно логин и пароль приходит вам на почту после регистрации на хостинге или VPS сервере. Я покажу на примере .

Заходим в проводник Windows в каталог «Этот компьютер». На Windows 10 вверху есть опция «Добавить сетевое расположение» . Нажимаем на неё.

Откроется мастер добавления сетевого расположения. Нажимаем «Далее» .

В следующем разделе предлагается выбрать другое сетевое расположение. Здесь также жмём «Далее» .

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

ftp://имя_пользователя@IP-адрес
ftp://site.com

Имя пользователя вам даётся в письме. После ввода одной из таких строчек (со своими данными), нажимаем «Далее» .


Необходимо дать имя новому подключению. Можете назвать как угодно.


Вот мы и завершили создание сети. Можно оставить галочку «Открыть это расположение в сети после нажатия кнопки Готово» , и разумеется, нажать эту кнопку.


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


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


Настраиваем FileZilla для подключения FTP

Загрузить утилиту можно с официального сайта — http://filezilla.ru/
Или отсюда — https://filezilla-project.org/

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

Установив программу, переходим к процессу подключения.

«Файл» и выбираем опцию «Менеджер сайтов» .

В открывшемся окошке вводим:

  • Хост (имя сервера/компьютера);
  • Выбираем протокол FTP или SFTP;
  • Тип входа «Нормальный» или «Запросить пароль»;

Нажимаем кнопку «Соединиться» и ждём.


Последний статус должен быть «Список каталогов извлечен», а в окошке справа появится список папок и файлов. Файлы можно закачивать и скачивать с сервера.


Подключится к FTP через Total Commander

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

В открывшемся окошке нажмите кнопочку «Добавить» .


Впишем следующие данные:

  • Имя соединения – называем любым именем;
  • Сервер (порт) – IP-адрес или сайт;
  • В случае необходимости отмечаем галку SSL/TLS (если подключение использует защищенный протокол);
  • Учетная запись — имя пользователя;
  • Пароль.

Введя эти данные жмём ОК.

В окошке соединения должно появится новое подключение. Выбрав его жмём «Соединиться» .



Как организовать FTP-соединение в FreeCommander

Заходим в утилиту и нажимаем по вкладке «Инструменты» . Там щелкаем по опции «Новое FTP соединение» .

Открывается окно, где вводим:

  • Имя соединения – можно любое;
  • Адрес хоста – IP-адрес или сайт;
  • Имя пользователя и пароль.

Щелкаем соединиться и радуемся.

Другие программы работают аналогично. Если вы хотите, чтобы я о них рассказал, напишите об этом в комментариях.


Что такое FTPS и SFTP

В статье я упоминал протоколы FTPS и SFTP . Первый вариант защищен с помощью SSL или TLS. Второй вариант обозначает тот SSH, только расширенный.

Защищённый тип протокола от обычного отличается тем, что можно проводить авторизацию (по-другому аутентификацию) с использованием ключей SSH, то есть не нужно вводить пароль. Хоть этот метод и безопасен с точки зрения получения доступа (никто не сможет взломать пароль), встает вопрос защиты самого файла ключей SSH. Также протокол обеспечит вас более быстрым соединением.

Вход по FTPS и SFTP осуществляется стандартными логином и паролем.

Пассивный режим в FTP протоколе

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

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

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

.jpg

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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