Что такое FTP-протокол и как настроить FTP сервер

Виртуальная машина
бесплатно навсегда

Забрать
Avatar icon

Марина Суворова

Редактор блога

Статья

Время чтения

7 минут

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

Суть FTP-протокола

File Transfer Protocol (FTP) — протокол для передачи файлов между клиентом и сервером, вошедший в стек TCP/IP.


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

История создания FTP

В 1971 году студент Массачусетского технологического института Абхай Бушан придумал File Transfer Protocol. Таким образом, он появился раньше протоколов стека TCP/IP (1972) и протокола HTTP (1991), поэтому считается одним из самых старых. 

Первая версия протокола FTP содержала всего два компонента:

  1. Заголовок c запросами или ответами от FTP-сервера с типом и количеством переданных данных.

  2. Данные в формате пути к файлам и их названий в перечне или списке.

Протокол FTP версии 1971 года использовал лишь один канал для передачи данных и команд, что негативно сказывалось на его пропускной способности. Чтобы решить эту проблему, уже в 1972 году для него были реализованы два канала: первый отправлял команду с вводными от пользователя или сервера, а второй передавал данные. 

Нужен ли FTP, если есть HTTP

Оба протокола — FTP и HTTP — предназначены для передачи данных и работают на прикладном уровне (Application layer) модели OSI. Оба решают примерно одинаковые задачи, но всё же различаются в назначении:

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

  • HTTP предназначен для передачи гипертекстовых документов — то есть сайтов и веб-страниц. 

Как работает File Transfer Protocol

В своей работе FTP применяет клиент-серверную архитектуру: 

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

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

Примерно так клиент и сервер взаимодействуют по FTP
Примерно так клиент и сервер взаимодействуют по FTP

FTP-протокол может работать в двух режимах: активном и пассивном. Основное отличие между ними — это сторона, которая открывает соединение для передачи данных.

Активный режим

В активном режиме клиент открывает управляющее соединение на порте и передает серверу свой IP-адрес и номер порта для передачи данных. Затем сервер открывает соединение на указанном порте и начинает передачу данных. В этом режиме клиент является активной стороной и управляет передачей данных.

В активном режиме клиент всегда первым соединяется с сервером
В активном режиме клиент всегда первым соединяется с сервером

Пассивный режим

В пассивном режиме сервер открывает управляющее соединение на порте и сообщает клиенту свой IP-адрес и номер порта для передачи данных. Затем клиент открывает соединение на указанном порте и начинает передачу данных. В этом режиме сервер является пассивной стороной и управляет передачей данных.

В пассивном режиме сервер предоставляет клиенту возможность подключиться
В пассивном режиме сервер предоставляет клиенту возможность подключиться

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

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

  • Подключение в пассивном режиме безопаснее, так как клиенту не нужно открывать порт для подключения к серверу. Это снижает риск взлома. 

Однако использование пассивного режима — не единственная возможность защитить данные, передающиеся по протоколу FTP. 

Что обеспечивает безопасность данных при передаче по FTP

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

FTPS: защищенное соединение между клиентом и сервером

FTPS или File Transfer Protocol Secure — это расширение FTP для безопасного соединения клиента с сервером с помощью протоколов SSL (Secure Sockets Layer, уровень защищенных сокетов) или TLS (Transport Layer Security, защита транспортного уровня). 

Подобно самому FTP, FTPS работает по клиент-серверной модели, но предполагает аутентификацию каждой сессии с помощью логина, пароля и сертификата открытого ключа. Создавать и запрашивать такие ключи удается за счет использования криптографической библиотеки OpenSSL. Таким образом, при соединении с FTPS-сервером клиент получает возможность сперва проверить надежность сертификата сервера — важно, чтобы он был подписан доверенным центром сертификации (CA, Certification Authority) — и только потом осуществить подключение. 

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

SFTP: защита информации при передаче

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

Как работает SFTP:

  1. Клиент просит сервер передать ему данные на порт 22, который нужен для надежного соединения SSH в пределах узлов сети.

  2. Сервер получает запрос и шифрует в нем информацию с помощью Secure Shell, после чего отсылает клиенту данные.

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

Безопасная передача файлов по SFTP
Безопасная передача файлов по SFTP

В чем преимущества и недостатки FTP

File Transfer Protocol — стандарт для передачи файлов в сетях. Несмотря на его многолетнюю историю, он все еще обладает рядом неоспоримых преимуществ:

  1. Операционные системы Windows, macOS, Unix и Linux поддерживают FTP.

  2. Протокол может передавать как текстовые, так и бинарные файлы — фото или видео.

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

  4. FTP легко интегрируется в автоматизированные рабочие процессы и системы управления контентом.

Но есть у FTP и свои минусы, в числе которых:

  1. Протокол по умолчанию не шифрует информацию между клиентом и сервером, поэтому ее могут перехватить хакеры.

  2. Двухфакторная аутентификация FTP не поддерживается. Для доступа к данным протокол может запрашивать только логин и пароль.

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

  4. File Transfer Protocol не оптимизирован для высокоскоростных соединений или работы в условиях высокого сетевого трафика, что может привести к снижению скорости передачи данных.

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

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

Облачные хранилища на замену FTP-серверам

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

  • поддержка текстового и двоичного режима передачи данных;

  • обязательная аутентификация пользователей;

  • определение типов файлов для дальнейшей передачи;

  • использование отдельных каналов для каждого соединения.

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

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

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

  • резервных копий баз данных;

  • образов виртуальных машин;

  • документации;

  • электронных и стриминговых архивов;

  • медиаконтента любого типа.

Например, в облаке Cloud.ru данные хранятся в зашифрованном виде в центрах обработки данных с уровнем Tier III и аттестацией по 152-ФЗ, а их безопасность обеспечивается шифрованием на стороне сервера и клиента, проверкой URL-адресов, сетевой изоляцией на основе VPC, аудитом журналов и контролем прав доступа.

Главные мысли

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

Содержание

  • Суть FTP-протокола
  • Как работает File Transfer Protocol
  • Что обеспечивает безопасность данных при передаче по FTP
  • В чем преимущества и недостатки FTP
  • Облачные хранилища на замену FTP-серверам
  • Главные мысли

Вам может понравиться