В процессе развития Интернета и его перехода в состояние глобальной сети, возникла новая потребность – передавать документы с одного устройства на другое на значительном расстоянии. Раньше загрузить их в условный мессенджер или на облачный сервис, чтобы затем скинуть их потенциальному получателю, было нельзя. Обмен документами в 1971 году начал осуществляться при помощи FTP-протоколов.
Соответствующий подход смог решить основную проблему – обеспечение быстрого и надежного обмена документами по Сети. Огромную популярность FTP получил за счет своей простоты. Чтобы получить доступ к компьютеру, пользователю было необходимо ввести только логин, а также пароль.
Далее предстоит выяснить, что собой представляет FTP-сервер, для каких целей он необходим, а также как организовывается в самом простом случае. Дополнительно нужно изучить отличие протокола от HTTP, его преимущества и недостатки. Предложенная информация ориентирована на широкую публику. Она подойдет не только разработчикам и системным администраторам, но и обычным пользователям.
Определение
FTP-сервер – это протокол для передачи информации через Интернет. Дословно аббревиатура переводится как «протокол передачи данных». Она произошла от английского FileTransferProtocol. С помощью этого протокола можно скачивать, а также отправлять разнообразные файлы: видео, текст, программы, картинки и музыку.
FTP-сервер возник задолго до HTTP и TCP/IP. Это один из старейших прикладных протоколов. Изначально он функционировал поверх NCP. Сейчас рассматриваемый компонент широко используется для предоставления доступа к удаленным хостам, а также распространения программного обеспечения.
В процедуре работы FTP участвуют две стороны: клиент и сервер. Первый отправляет запрос в виде своеобразной команды, второй обрабатывает входной сигнал и возвращает ответ в виде соответствующего документа или сообщения об ошибке.
В классическом смысле для обмена файлами при подключении к серверной стороне запрашивается логин и пароль. Это необязательные составляющие. FTP предусматривает анонимное соединение – когда к серверу доступно подключение без предварительной авторизации. Это не самый распространенный и безопасный вариант, но иногда встречается.
Пример из жизни
Чтобы лучше понимать, что собой представляет FTP-протокол, необходимо рассмотреть наглядный жизненный пример:
- Человек работает в IT-организации. В компании все коды и файлы хранятся на едином локальном хранилище.
- Соответствующее хранилище представлено в виде внутреннего сервера, доступного исключительно сотрудникам компании.
- Для начала работы необходимо перенести рабочие документы на свое устройство, а для этого – непосредственно подключиться к серверу.
- Чтобы установить соединение с серверной частью, требуется открыть консоль и установить соединение через FTP для доступа к хранилищу.
Перед соединением система запросит логин и пароль. Если не указать соответствующую информацию, подключиться к серверной части не получится. После авторизации работник увидит на сервере все размещенные файлы. Или только те, доступ к которым открыл системный администратор.
Для скачивания файлов на устройство останется ввести несколько «дежурных» команд и дождаться завершения загрузки.
File-Transfer-Protocol (FTP) сегодня может быть заменен. Обмениваться рабочими документами стало удобнее – через Git, использующий современные протоколы (пример – HTTP или SSH). Но до сих пор встречаются ситуации, когда рассматриваемый тип обмена информацией незаменим. Пример – если требуется развернуть Git-репозиторий на FTP-сервере. В этом случае без соответствующего подключения не обойтись.
Отличие FTP от HTTP
В Интернете для обмена информацией поддерживаются два известных протокола: FTP и HTTP. Оба варианта используются для решения примерно одинаковых задач, но их ключевые назначения отличаются:
- FTP-сервер. В самом начале истории развития был создан для обмена информацией между компьютерами. Использует два соединения для функционирования: для передачи и управления соответственно. Ключевой идеей является то, что FTP умеет отслеживать выполнение длинных запросов. Пример – передача больших документов или управление данными на сервере.
- HTTP. Протокол, используемый для гипертекстовых документов – сайтов и веб-страниц. В своей работе задействует только одно соединение. По нему происходит обмен запросами и ответами между клиентом и сервером. Длинные сеансы для передачи данных HTTP не требуются.
FTP ориентирован на долгое и сложное взаимодействие сервера и клиента. Он запоминает, что, кому и когда передал. HTTP предусматривает иную задачу – управление запросами в Интернете. Он не сохраняет состояние сессии, но работает быстрее.
Преимущества и недостатки
File Transfer Protocol имеет несколько преимуществ:
- Возможность передачи файлов на другие устройства. Эта опция удобна, если необходимо обмениваться документами с друзьями/коллегами или загружать их на сервер сайта. Достаточно подключиться к соответствующему сервису, отправить информацию и ждать результатов.
- Резервное копирование. Протокол используется для обеспечения соответствующего функционала. Документы не потеряются, если сделать бэкап на удаленное оборудование.
- Удаленный доступ к файлам. FTP-протокол может стать отличной заменой Google Drive или «Яндекс.Диск». В этом случае работать все будет так: администратор подготавливает удаленный компьютер, загружает на него файлы и извлекает их по мере необходимости.
FTP имеет также ряд недостатков. К ним относят:
- Отсутствие качественной защиты. При подключении к серверу данные отправляются по Сети в незашифрованном виде, включая логины (имя пользователя), пароли и сами документы. У FTP отсутствует защита от брутфорса. Это значит, что пароль к серверной части удается подобрать за счет обычного перебора.
- Неэффективная система передачи. Для каждой соответствующей операции протокол FTP требует установки нового соединения. Если требуется одновременно обмениваться несколькими документами, не исключены задержки и увеличение нагрузки на Сеть. Данная проблема особо актуальна при работе с крупными файлами.
- Разрывы соединения при ошибках. Если в процессе передачи файлов по FTP возникает ошибка или сбой, весь процесс прервется. Его придется начинать с самого начала.
Несмотря на имеющиеся недостатки, FTP все равно иногда используется при работе в Сети. В процессе развития протокола у него возникли новые виды. Они являются более защищенными.
Классификация
FTP – протокол, который используется для обмена данными. Его нельзя назвать защищенным, поэтому разработчики создали новые виды соответствующего «сервиса». Они помогли решить основные проблемы безопасности.
На данный момент существуют два защищенных протокола: FTPS и SFTP. Далее предстоит познакомиться с ними получше.
FTPS
FTPS – расширение FTP, использующее сертификаты TLS и SSL. Расшифровывается аббревиатура как File Transfer Protocol Secure, или «защищенный протокол передачи данных».
Работает FTPS-сервер точно также, как и FTP. Разница заключается в том, что во время подключения клиент и сервер будут обмениваться сертификатами. Это своеобразный договор о безопасности.
Сертификаты могут быть получены в центрах сертификации или созданы разработчиками самостоятельно. В первом случае можно рассчитывать на гарантированную надежность.
SFTP
SFTP – еще одно расширение FTP-протокола. В процессе функционирования оно использует протокол SSH. Расшифровывается как Secure File Transfer Protocol или «защищенный протокол передачи данных».
SFTP для работы требуется всего один порт – SSH, который умеет разделять его на несколько каналов. Один выделяется для управления, второй – для непосредственной передачи данных.
Обмен файлами через SFTP защищен за счет специальных SSH-ключей. Один из них на стороне клиента будет шифровать трафик, другой – дешифрует его на стороне сервера.
Выше можно увидеть схематичное представление защищенных FTP-протоколов. Они отлично дополняют «классический» файловый «обменник». При выборе типа «защиты» рекомендуется учитывать особенности каждого отдельно взятого проекта. Пример – при наличии SSL-сертификата удобнее пользоваться FTPS. Отсутствие соответствующего «документа» и нежелание его приобретать – веский повод для работы с SFTP.
Как передавать документы
FTP требует для работы два элемента. Это клиент и сервер. Первый подключается ко второму и отправляет ему команды. Это необходимо для загрузки или скачивания файлов.
Для подключения к серверу требуется узнать:
- IP-адрес;
- логин (имя пользователя);
- пароль для авторизации.
Логин и пароль устанавливаются на серверной части модели при настройке. IP тоже можно выяснить на сервере. Пример – консоль Windows. Через нее соответствующие данные удается получить с помощью команды ipconfig.
После уточнения необходимой информации можно устанавливать соединение. Для этого требуется специальное приложение – FTP-клиент. Оно бывает представлено обычным консольным программным обеспечением или софтом с графическим интерфейсом.
Для передачи файлов FTP-клиент запросил подключение к серверу с последующей авторизацией. Ниже – пример того, как выглядит эта операция в консоли Windows:
Для просмотра спектра доступных на сервере файлов используется команда $ ls. При загрузке и скачивании документов необходимо задействовать две операции:
- PUT – отвечает за отправку файлов с компьютера пользователя на сервер;
- GET – загружает документы с сервера на устройство.
После ввода одного из предложенных вариантов клиент и сервер создают соединение для обмена файлами. Документы делятся на пакеты – небольшие фрагменты размером от 1 до 64 Кб. Далее они отправляются по протоколу TCP/IP. В консоли процесс будет выглядеть так:
Если передача по FTP пройдет успешно, клиент выведет на экран соответствующее сообщение. В противном случае обмен документами останавливается. На дисплее возникает характерное сообщение об ошибке. В нем содержится код и короткое пояснение.
Теперь понятно, как работает FTP. Закрыть соответствующее соединение можно при помощи команды $ quit.
Принцип работы авторизации
FTP предусматривает несколько способов авторизации: анонимный и «классический» (через логин и пароль). Первый вариант доступен на любом сервере. Он нужен для того, чтобы делать отдельные файлы общедоступными.
Пример – пользователь может выложить картинку на FTP-сервер, разослать ее своим друзьям, но выдать им данные только из анонимного режима. Это поможет скрыть другие документы на сервере от лишних глаз.
Авторизация при анонимном подключении напоминает «классический» вариант. Вместо имени пользователи клиент вводит слово anonymous, а пароль заменяется любым адресом электронной почты или оставляется пустым.
Анонимный режим является рудиментом, оставшимся со времен Unix-систем. Тогда повсеместно использовалась логин-паролевая авторизация, а другие концепции еще не были придуманы.
FTP-client
Для чего нужен FTP-клиент, понятно. Это файловый менеджер. С его помощью можно подключиться к удаленному серверу для дальнейшей передачи данных. При подключении клиента используется следующая информация:
- пароль;
- логин;
- имя сервера (хост);
- номер порта (по умолчанию для FTP – 21).
Если использовать файловый менеджер неудобно, существует альтернатива – загрузка и скачивание файлов за счет удаленного сервера, находящегося прямо в браузере. Для этого используется менеджер в панели управления хостингов TimeWeb. Соответствующая технология называется WebFTP.
Далее будут представлены лучшие клиенты для обмена файлами по FTP. С их помощью рассматриваемый способ передачи информации с легкостью освоит даже начинающий пользователь.
FileZilla
Один из самых популярных файловых менеджеров. Дает возможность удобно и быстро подключаться к удаленным серверам. Предусматривает простой интерфейс, а также понятное управление.
FileZilla имеет два ключевых окна:
- показывающее файлы и папки на устройстве;
- отображающее директорию удаленного сервера.
Для перемещения файлов с одного устройства на другое достаточно просто перетащить его из левой области в правую.
FileZilla поддерживает различные функции: передача по VPN, синхронизация в облаке, использование сертификатов TLS и SSL для защищенных соединений.
CuteFTP
Клиент, напоминающий предыдущий. Отличается тем, что является платным. CuteFTP используется в коммерческой разработке за счет наличия в нем продвинутых функций. В их число входит планирование и синхронизация документов.
Принцип управления в этом FTP-сервисе не отличается от FileZilla. Для передачи документов с одного устройства на другое достаточно перетащить его из левого окна в правое. CuteFTP тоже поддерживает SSL и TLS.
Создание
Для создания FTP-server в Windows необходимо иметь версию операционной системы Professional, Enterprise или Educational. В домашней сборке придется пользоваться только сторонними приложениями.
Для создания FTP-server в Windows потребуется:
- Зайти в «Панель управления».
- Перейти в раздел «Программы и компоненты».
- Выбрать опцию «Включение или отключение элементов Windows».
- Поставить отметку у пункта «FTP-сервер».
- Найти «Службы IIS»–«Средства управления веб-сайтом». Поставить отметку около «Сценарии и средства управления IIS».
- Создать папку на жестком диске устройства. Пусть она размещается на диске C и называется ftp. В ней будут храниться документы для обмена.
- Перейти в «Диспетчер служб IIS».
- Нажать правой кнопкой мыши по пункту «Сайты», а затем выбрать «Добавить FTP-сайт».
- Указать информацию о сервере. В разделе «Физический путь» необходимо указать путь до папки ftp. После заполнения полей – нажать на «Далее».
- В разделе «Привязка» ничего изменять не нужно, в «SSL» – «без SSL».
- Указать пользователей, которых можно пускать на сервер. Выдать им разрешения.
FTP-server создан. Теперь можно получить IP-компьютера, открыть ФТП-клиент или проводник, ввести в адресной строке ftp://[IP-адрес] и подтвердить операцию.
P. S. Интересуют компьютерные сети, сетевые технологии, протоколы передачи данных? Обратите внимание на следующие курсы в Otus: