• Советы по ИБ на практике

Что такое FTP-протокол и как через него передать файлы

21.11.2025

автор Геннадий Перминов, специалист команды анализа защищенности ООО “Нейроинформ”

Что такое FTP

FTP (File Transfer Protocol) - протокол передачи файлов по сети.

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

FTP работает на прикладном уровне модели OSI и передает файлы используя стек протоколоы TCP/IP (Transmission Control Protocol / Internet Protocol).

Протокол подразумевает клиент-серверную архитектуру: для работы нужен FTP‑сервер, к которому будут подключаться клиенты. Клиентское FTP-приложение встроено в Windows Explorer (Проводник) и поэтому не требуют дополнительной установки. Также протокол FTP поддерживается некоторыми браузерами. Однако, они поддерживают только нешифрованный протокол FTP (Plain FTP) через порт TCP/21 и не умеют работать с TLS. Поэтому, например, в браузере Chrome, поддержка этого протокола прекращена. Поэтому обычно рекомендуется использовать сторонние FTP-клиенты, поддерживающие шифрование.

Во время работы протокол FTP устанавливает одновременно несколько подключений (минимум - два):

  • канал управления (обычно порт TCP/21);
  • канал передачи данных (обычно порт TCP/20).

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

Как это работает

Сервер постоянно прослушивает порт TCP/21. Клиент обращается к серверу через этот порт и они устанавливают канал управления, который остаётся открытым на все время сессии.

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

  • В активном режиме клиент через установленный канал управления отправляет серверу свой IP-адрес и произвольный номер порта, после чего ждёт, пока сервер запустит TCP-соединение с этим адресом и номером порта.
  • В случае, если клиент находится за брандмауэром, который блокирует подключения из вне и пропускает только подключения, инициированные из внутренней сети, может быть использован пассивный режим. В этом режиме клиент использует поток управления, чтобы запросить от сервера его IP-адрес и номер порта для открытия потока данных с произвольного клиентского порта к полученному адресу и порту.

Безопасность FTP

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

Так, пользователи FTP проходили аутентификацию, передавая логин и пароль открытым текстом. В 2025 году такое совершенно немыслимо.

Уже начиная с 1996 года появляются проекты рабочих предложений (RFC), которые расширяли данный протокол, внося в него функции шифрования.

На сегодняшний день существует несколько протоколов безопасной передачи файлов, которые называют «Безопасным FTP»:

  • FTPS (File Transfer Protocol + SSL, или FTP/SSL). Он предусматривает два способа защитить FTP-соединение: явный (Explicit) и неявный (Implicit).
    • Явный FTPS (Explicit FTPS) - расширение FTP, при котором клиент сначала подключается на стандартный FTP-порт TCP/21 и явно запрашивает защищённую передачу. Сервер может разрешить или отклонить незащищённое соединение. Явный метод позволяет использовать один и тот же контрольный порт для FTP и FTPS.
    • Неявный FTPS (Implicit FTPS) - устаревший вариант, где SSL/TLS используется сразу при подключении, на отдельном порте: TCP/989 для передачи данных и TCP/990 для контрольного соединения. Стандартный порт 21 остаётся свободным для обычного FTP.
  • SFTP («SSH File Transfer Protocol») не основан на FTP, хотя выполняет те же функции и имеет похожие команды. Он использует SSH для передачи файлов, полностью шифруя как данные, так и команды, включая пароли. Клиенты стандартного FTP не могут подключаться к SFTP-серверу и наоборот.
  • FTP через SSH (не SFTP). Предусматривает, что обычный FTP-трафик отправляется через SSH-туннель. Из-за того, что FTP использует несколько TCP-соединений, только канал управления (порт TCP/21) защищён, а каналы передачи данных обходят туннель и остаются незащищёнными. Для полноценной работы клиент SSH должен уметь отслеживать и перенаправлять все FTP-потоки данных.

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

SFTP (SSH File Transfer Protocol) считается наиболее безопасным и современным методом передачи файлов.

Пример настройки FTP-сервера

Попробуем настроить свой собственный FTP-сервер.

Для решения этой задачи существует большое количество платных и бесплатных решений.

Бесплатные:
  • FileZilla Server - простой в установке и настройке, поддерживает FTPS, работает на Windows.
  • vsftpd – лёгкий и быстрый FTP-сервер для Linux/Unix.
  • ProFTPD - FTP-сервер для Linux/Unix, поддерживает FTPS.
  • Pure-FTPd - лёгкий FTP-сервер с поддержкой TLS/SSL, для Linux/Unix.
  • TFTPD32/TFTPD64 - простой FTP и TFTP сервер для Windows, часто используется для тестов и локальных сетей.
Коммерческие:
  • Wing FTP Server - поддержка FTP, FTPS, SFTP, HTTP/S, веб-интерфейс и продвинутый контроль доступа.
  • Titan FTP Server - Windows-сервер с поддержкой FTPS и SFTP, продвинутые возможности аудита и автоматизации.
  • Serv-U FTP Server (SolarWinds) - поддержка FTPS/SFTP, интеграция с Active Directory, управление пользователями и журналирование.
  • Ipswitch WS_FTP Server - корпоративный FTP-сервер с высокой безопасностью, поддержкой FTPS/SFTP и аудитом.
  • CompleteFTP - Windows-сервер с поддержкой FTPS, SFTP, SCP, HTTPS и интеграцией с LDAP/Active Directory.
Встроенные в ОС:
  • Windows IIS FTP Server - встроенный в Windows Server, поддерживает FTP и FTPS, базовое управление пользователями.
  • Linux inetd/xinetd FTP демоны - минималистичные серверы для тестов или простых задач, без расширенных функций безопасности.

Для демонстрации мы выбрали FileZilla Server. Это бесплатный FTP- и FTPS-сервер с открытым исходным кодом. Сайт проекта: https://filezilla-project.org/.

Установка потребует 28,5 МБ свободного места на диске и права администратора.

1. Загрузите FileZilla Server с сайта FileZilla.

Рис. 1 — Кнопка загрузки FileZilla Server с сайта FileZilla

2. Найдите установщик в папке Загрузки и запустите его. Подтвердите, что вы разрешаете серверу FileZilla вносить изменения на ваше устройство.

Рис. 2 — Загруженный файл установки FileZilla Server

3. Примите условия лицензии AGPL, на которых предлагается FileZilla Server.

Рис. 3 — Окно принятия условий лицензии AGPL FileZilla Server

4. Выберите, что установить (сервер, интерфейс администратора, значки рабочего стола, ярлыки).

Рис. 4 — Окно выбора компонентов для установки FileZilla Server

5. Чтобы решить, куда установить, нажмите кнопку «Обзор», в противном случае нажмите кнопку «Далее».

Рис. 5 — Окно выбора пути для установки FileZilla Server

6. Чтобы добавить значки для FileZilla Server, выберите папку в меню «Пуск» или создайте новую.

Рис. 6 — Окно добавления значков для FileZilla Server

7. FileZilla Server устанавливается как служба Windows, при желании вы можете запустить ее вручную.

Рис. 7 — Окно настройки службы FileZilla Server

8. Установите порт, на котором FileZilla Server будет прослушивать соединения для доступа администратора.

Выберите пароль и введите его дважды для подтверждения.

Рис. 8 — Окно настройки доступа администратора FileZilla Server

При установке пароля администратора программа проверит его стойкость

Рис. 9 — Окно с рекомендуемыми требованиями к паролю администратора FileZilla Server

9. По умолчанию интерфейс администратора запускается автоматически. Вы можете отключить эту опцию.

Рис. 10 — Окно настройки запуска FileZilla Server

10. Установка завершена, теперь можно приступить к настройке FileZilla Server.

Для этого в меню Пуск найдите пункт «Administer FileZilla Server»

Рис. 11 — Группа «Administer FileZilla Server» в меню Пуск

При его запуске откроется окно для ввода пароля.

Рис. 12 — Окно для ввода пароля администратора FileZilla Server

11. Для перехода в окно настроек выберите пункты меню Server - Configure

Рис. 13 — Меню интерфейса администратора FileZilla Server

12. Создайте пользователя и назначьте ему пароль.

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

Для этого перейдите во вкладку «Users».

Рис. 14 — Вкладка «Users» интерфейса администратора FileZilla Server

Нажмите кнопку Add и введите имя пользователя.

Выберите способ аутентификации (в поле Authentification) «Require a password to log in» - запрашивать пароль при входе. И введите пароль пользователя в соответствующем поле.

Рис. 15 — Добавление нового пользователя во вкладке «Users» интерфейса администратора FileZilla Server

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

FileZilla Server использует точки монтирования для создания виртуальных точек доступа. Они сопоставляют определённые каталоги (папки) в хранилище вашего сервера с расположениями, доступными пользователям FTP.

Точка монтирования включает в себя виртуальный (Virtual) и собственный (Native) путь. Собственный путь — это локальный путь к файлу, а виртуальный — это путь, который видят FTP-пользователи, и который сопоставляется с собственным путём сервером FileZilla:

  • Формат виртуального пути аналогичен формату, используемому в UNIX-подобных операционных системах: файлы и каталоги разделяются символом косой черты «/». При этом все файлы и каталоги принадлежат уникальному корневому каталогу, имя которого — «/».
  • Формат собственного пути совпадает с форматом, используемым операционной системой.

Чтобы добавить точку монтирования, нажмите кнопку Добавить и введите виртуальный путь (например, «/») и собственный путь (например, «C:\Folder for FTP Server»).

14. В качестве FTP-клиента мы будем использовать стандартный Проводник Windows, который не поддерживает шифрование. Поэтому во вкладке «Server listeners» окна настроек укажите IP-адрес вашего FTP-сервера и способ установки защищенного соединения: «Explicit FTP over TLS and insecure plain FTP».

Рис. 16 — Настройка способа установки защищенного соединения FileZilla Server

15. Все готово. Мы произвели минимально необходимые настройки и теперь вы можете использовать созданный FTP-сервер для обмена файлами.

Для доступа к файлам введите на клиентском компьютере в строке адреса Проводника ftp://IP-адрес и нажмите Enter. «IP-адрес» замените на реальный IP-адрес вашего сервера.

Рис. 17 — Обращение со стороны клиента к настроенному FTP-серверу FileZilla Server

В открывшемся окне введите логин и пароль пользователя.

Рис. 18 — Аутентификация клиента на настроенном FTP-сервере FileZilla Server

16. Вы получили доступ к файлам на созданном нами FTP-сервере.

Рис. 19 — Доступ к файлам со стороны клиента на настроенном FTP-сервере FileZilla Server

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

Для передачи конфиденциальной информации следует использовать любой защищенный протокол, например, Explicit FTPS и клиентское приложение FTP, поддерживающее этот протокол, например, FileZilla Client.

Заключение

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

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

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

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

Будьте бдительны, а мы поможем!

Автоматическая киберзащита
для вашего бизнеса

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

  • Советы по ИБ на практике
наш блог

о нас много говорят клиенты, эксперты, сми и партнеры

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

Подписка
Будьте на связи

Для получения полезных материалов и последних новостей, введите свое имя и электронную почту
Кибербезопасность для бизнеса простым языком — подписывайтесь на наш телеграм канал! Подписаться