Блог и Новости is*hosting - Хостинг-провайдер Нового Поколения

Что такое FTP-сервер, FTP-клиент и для чего они используются

Written by Команда is*hosting | 18.03.2023 10:00:00

FTP был разработан в 1971 году и в самом начале предусматривал обмен сообщениями из заголовка и данных переменной длины между клиентом и сервером.

Что такое FTP и как он работает?

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

File Transfer Protocol работает по принципу “клиент-сервер”: клиент запрашивает файлы, а сервер их предоставляет. Для работы протокол использует два порта:

  • 21-ый для передачи команд;
  • 20-ый для передачи файлов.

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

Команда

Значение

USER

Указать имя пользователя

PASS

Указать пароль

LIST

Просмотр содержимого каталога

CWD

Смена текущего каталога

RETR

Передать файл от сервера клиенту

STOR

Передать файл от клиента на сервер

TYPE

Установить режим передачи файлов

DELE

Удалить файл

MKD

Создать каталог

RMD

Удалить каталог

PASV

Переход в пассивный режим

QUIT

Выход и разрыв соединения

FTP-cервер также использует коды ответа, состоящие из трех чисел (первая цифра показывает один из трёх результатов: успех, невыполнение или указание на ошибку, вторая цифра - тип ошибки, третья - специфицирует ошибку).

Например, цифра 2 в начале означает успешное выполнение команды, 4 или 5 - невозможность выполнить команду, 1 или 3 - ошибку или неполный ответ.

Как работает FTP сервер?

Существует два режима работы FTP:

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

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

После того, как файлы были переданы, порт 20 закрывается, а 21-ый готов принимать новые команды.

Передача данных также может различаться:

  • поточная (данные передаются сплошным потоком, протокол их не обрабатывает);
  • блочная (протокол делит данные на блоки, например, на заголовок и содержимое);
  • сжатая (передаваемые данные сжимаются перед отправкой).

Для чего нужен FTP-сервер?

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

  • Личные цели. Для хранения и обмена личными файлами создаются домашние серверы, доступ к которым есть, например, у членов одной или нескольких семей, у группы друзей и др.;
  • Корпоративные данные. Обмен бизнес-документами может осуществляться, например, между филиалами одной компании.
  • Обслуживание веб-сайта. Данные для сайта могут передаваться через FTP на сервер хостинговой компании;
  • Большие объемы данных. В данном случае FTP используется разработчиками веб-приложений, IT-специалистами, которые передают файлы сервера в закрытой системе и т.п.

Отличия FTP от HTTP

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

В отличии от HTTP протоколу FTP не требуется веб-интерфейс (сайт) для передачи файлов. То есть используя HTTP необходимо настроить CMS, использовать программы для вывода файловой системы и т.п. С FTP таких сложностей не будет.

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

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

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

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

  • Скрытые атаки (bounce attacks);
  • Спуф-атаки (spoof attacks);
  • Атаки методом грубой силы (brute force attacks);
  • Перехват пакетов, сниффинг (packet capture, sniffing);
  • Перехват имени пользователя, пароля;
  • Захват портов (port stealing).

SFTP и FTPS

Решением безопасности стала разработка FTPS - расширение стандарта FTP, благодаря которому клиенты могут требовать зашифрованную FTP-сессию. Явный FTPS реализуется с помощью команды “AUTH TLS”.

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

Существует также практика установления FTP соединения через SSH (не SFTP). Однако из-за того, что используется два канала для команд и данных, туннелирование не обеспечивает целостную защиту.

Что такое FTP клиент и популярные клиенты FTP

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

  • FileZilla Client - популярный FTP-клиент, подходящий для Windows, MacOS и Linux. Поддерживает FTPS и SFTP, является наиболее часто используемым вариантом.
  • Xlight FTP Server - клиент с удобным интерфейсом, многообразием настроек и активацией доступа через IPv6. Доступен на английском языке, поддерживает FTP и SFTP.
  • FAR Manager - старейший файловый менеджер для Windows с простыми настройками. Поддерживает SFTP через плагин WinSCP.
  • FireFTP - бесплатный плагин для браузера Mozilla Firefox. Поддерживает FTP, FTPS и SFTP.
  • FTPRush - бесплатная программа для Windows, Mac, Linux. Поддерживает FTP, FTPS, SFTP и имеет менеджер закачек;
  • Total Commander - популярный файловый менеджер для Windows c поддержкой FTPS. Функционал можно расширить с помощью плагинов.
  • Cyberduck - FTP-клиент для MacOS и Windows под лицензией GPL, который поддерживает FTP, SFTP и другие протоколы.

Как подключить и настроить FTP?

Для работы с протоколом необходимы FTP-клиент и FTP-сервер.

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

По FileZilla подключиться можно двумя способами (быстрым и с шифрованием):

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

  • Заполняем поля и указываем стандартный порт 21 для передачи команд;
  • Нажимаем на быстрое соединение и можно работать с FTP-сервером.

Чтобы подключиться к серверу с использованием шифрования, необходимо:

  • зайти в “Файл” - “Менеджер” - “Новый”;
  • Заполняем поля и выбираем тип шифрования (например, SFTP);
  • Нажимаем “Соединиться” и можно работать с FTP-сервером.

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

Если же необходимо создать FTP-сервер, то сделать это можно через инструмент IIS (Internet Information Services), реализованный в операционной системе Windows. С помощью IIS можно открыть доступ к определенной папке из сети и не скачивать дополнительное ПО. Тут можно найти инструкцию по настройке для Windows 7, 8.1 и 10.

Развернуть собственный FTP-сервер можно и с помощью сторонней программы, например, FileZilla Server.