FTP был разработан в 1971 году и в самом начале предусматривал обмен сообщениями из заголовка и данных переменной длины между клиентом и сервером.
FTP - это протокол передачи данных, который является одним из старейших протоколов в Интернете. И, кстати, остается одним из самых популярных протоколов несмотря на его недостатки.
File Transfer Protocol работает по принципу “клиент-сервер”: клиент запрашивает файлы, а сервер их предоставляет. Для работы протокол использует два порта:
FTP-сервер - это своеобразный компьютер, к которому пользователи подключаются удаленно через FTP-клиенты. Проводить операции между клиентом и сервером можно после прохождения авторизации (зайти на сервер можно и анонимно). Для работы используется определенный набор команд:
Команда |
Значение |
USER |
Указать имя пользователя |
PASS |
Указать пароль |
LIST |
Просмотр содержимого каталога |
CWD |
Смена текущего каталога |
RETR |
Передать файл от сервера клиенту |
STOR |
Передать файл от клиента на сервер |
TYPE |
Установить режим передачи файлов |
DELE |
Удалить файл |
MKD |
Создать каталог |
RMD |
Удалить каталог |
PASV |
Переход в пассивный режим |
QUIT |
Выход и разрыв соединения |
FTP-cервер также использует коды ответа, состоящие из трех чисел (первая цифра показывает один из трёх результатов: успех, невыполнение или указание на ошибку, вторая цифра - тип ошибки, третья - специфицирует ошибку).
Например, цифра 2 в начале означает успешное выполнение команды, 4 или 5 - невозможность выполнить команду, 1 или 3 - ошибку или неполный ответ.
Существует два режима работы FTP:
В активном режиме FTP-клиент выступает инициатором управляющего соединения и по нему отправляет серверу свой IP-адрес и номер порта, по которому будет принимать файлы. Затем FTP-сервер соединяется по предоставленным параметрами. Сессия считается открытой, и начинается передача файлов.
В пассивном режиме FTP-клиент может быть защищен брандмауэром и не может принять входящее соединение от FTP-сервера. Тогда клиент использует поток управления, направляет серверу команду PASV, и затем получает от него IP-адрес и номер порта. После этого FTP-клиент устанавливает соединение с сервером, открывается сессия и начинается передача файлов.
После того, как файлы были переданы, порт 20 закрывается, а 21-ый готов принимать новые команды.
Передача данных также может различаться:
Варианты использования FTP-сервера не ограничиваются данным списком, но именно в этих сферах FTP пользуется популярностью:
Если говорить про передачу файлов посредством протоколов, то стоит упомянуть и HTTP. Через него также можно передавать файлы, однако HTTP сильно уступает в этом протоколу FTP.
В отличии от HTTP протоколу FTP не требуется веб-интерфейс (сайт) для передачи файлов. То есть используя HTTP необходимо настроить CMS, использовать программы для вывода файловой системы и т.п. С FTP таких сложностей не будет.
FTP уже предоставляет возможность авторизации и настройки прав пользователей. В HTTP это все дело необходимо настраивать самостоятельно и с нуля. И в FTP, и в HTTP можно установить ограничения конкретным пользователям на загрузку файлов на сервер, однако в HTTP это сделать будет сложнее.
Стоит также отметить, что FTP изначально разрабатывался для передачи больших объемов данных, в то время как HTTP - для небольших текстовых файлов. Также передача данных в FTP может осуществлять как в текстовом, так и в бинарном режиме.
Несмотря на все достоинства FTP, он имеет один крупный минус - безопасность. А точнее ее отсутствие, поскольку протокол создавался давно и в тот момент не предусматривались современные угрозы. Так, отсутствующая система проверки источников информации может стать причиной атаки хакеров (например, DDoS).
FTP не может обеспечить полное шифрование данных, что делает работу протокола уязвимой. Сегодня выделяют следующие проблемы:
Решением безопасности стала разработка FTPS - расширение стандарта FTP, благодаря которому клиенты могут требовать зашифрованную FTP-сессию. Явный FTPS реализуется с помощью команды “AUTH TLS”.
SFTP (SSH File Transfer Protocol) также является протоколом передачи данных, но никак не связан с оригинальным FTP. Он использует SSH (Secure Shell) и шифрует и команды, и данные, защищая пароли и конфиденциальную информацию от “слива”.
Существует также практика установления FTP соединения через SSH (не SFTP). Однако из-за того, что используется два канала для команд и данных, туннелирование не обеспечивает целостную защиту.
FTP клиент это программа, которая устанавливается на компьютер пользователя для осуществления удаленного доступа.
Для работы с протоколом необходимы FTP-клиент и FTP-сервер.
Если у вас уже есть FTP-сервер, к которому надо подключиться, то рассмотрим вариант клиента FileZilla. Скачайте и установите клиент по ссылке выше.
По FileZilla подключиться можно двумя способами (быстрым и с шифрованием):
Для быстрого подключения при открытии программы сразу станут доступны поля для подключения: имя пользователя, пароль, хост и порт.
Чтобы подключиться к серверу с использованием шифрования, необходимо:
Бывают случаи, когда при анонимном входе файлы FTP-сервера вы не увидите, поскольку можно ограничить права доступа. Чаще всего при анонимном входе вместо имени пользователя указывают ftp или anonymous, а в качестве пароля используется адрес электронной почты.
Если же необходимо создать FTP-сервер, то сделать это можно через инструмент IIS (Internet Information Services), реализованный в операционной системе Windows. С помощью IIS можно открыть доступ к определенной папке из сети и не скачивать дополнительное ПО. Тут можно найти инструкцию по настройке для Windows 7, 8.1 и 10.
Развернуть собственный FTP-сервер можно и с помощью сторонней программы, например, FileZilla Server.