О протоколе FTP
В этой статье расскажем о FTP: как работает протокол, в чем его особенности и почему всё больше компаний отказываются от него.
Что таоке FTP
FTP (File Transfer Protocol — протокол передачи файлов) — это стандартный сетевой протокол, используемый для передачи файлов между клиентом и сервером по сети TCP/IP. Если говорить проще — это способ перемещения файлов между двумя компьютерами через интернет. Из-за отстутствия шифрования от этого протокола всё чаще откзываются компании, но кто-то до сих пор его использует.
Как работет FTP
Зайдем с метафоры. Представим, что FTP — почтовый ящик, куда мы можем положить письмо (файл), и другой человек может его оттуда взять.
Когда вы используете FTP, один компьютер действует как сервер — это как почтовое отделение, которое хранит письмо. Другой компьютер действует как клиент — это мы, когда забираем или отправляем письмо.
В момент, когда мы хотим передать файлы, нам нужно войти в систему, ввести имя пользователя и пароль. Это способ убедиться, что мы имеем право забирать или оставлять файлы в почтовом ящике. FTP-протокол использует два вида общения:
Командный канал (Control Channel) → отправляет команды с клиента на сервер и получает ответы. Этот канал остаётся открытым на протяжении всей FTP-сессии.
Канал данных (Data Channel) → фактическая передача файлов между клиентом и сервером. Канал открывается и закрывается для каждой отдельной передачи данных.
Как проходит FTP-сессия
FTP-сессия — это установленное соединение между клиентским компьютером и сервером. Оно начинается с момента подключения клиента к серверу и продолжается до тех пор, пока оно не будет прервано или закончено. FTP-сессия полезна для поддержания порядка при передаче файлов, так как она позволяет серверу контролировать, кто и когда подключается, и обеспечивает целостность передачи данных. Есть 5 основных этапов сессии:
Этап | Описание этапа |
---|---|
Установление соединения | Клиент использует специальную программу (FTP-клиента) для подключения к серверу FTP. Ему нужно знать адрес сервера (например, имя домена или IP-адрес сервера FTP), а также иметь имя пользователя и пароль (если требуется). |
Аутентификация | Клиент предоставляет своё имя пользователя и пароль серверу. Если у сервера есть анонимный доступ, логин и пароль могут быть не нужны — клиент может войти анонимно. |
Обмен командами | Эти команды могут включать запросы на получение списка файлов в папке, перемещение между папками, загрузку файлов на сервер или скачивание файлов с сервера. |
Передача данных | Если клиент хочет загрузить или скачать файлы, открывается отдельное соединение для данных. Файлы передаются через это соединение. |
Завершение сессии | После того как все необходимые файлы загружены или скачаны, клиент может закончить сессию, отключившись от сервера. Обычно это делается путём отправки команды на отключение, и сервер подтверждает окончание сессии. |
Режимы работы FTP
Активный режим → когда хотим соединиться с сервером для отправки или получения файлов, мы сначала устанавливаем с ним связь. После этого сервер пытается соединиться с нашим компьютером, чтобы начать передавать файлы.
Пассивный режим → если компьютер защищен брандмауэром или находится в частной сети, делающих прямое соединение сложным. Здесь мы и сервер сначала устанавливаем связь, но вместо того, чтобы ждать от сервера соединения, мы просим сервер дать нам виртуальный адрес. Затем мы самостоятельно соединяетемся с виртуальным адресом, чтобы передать файлы.
Чем плох FTP-протокол?
Нет шифрования. И содержимое передаваемых файлов, и учетные данные пользователя передаются в незашифрованном виде. Это делает протокол уязвимым для сниффинга, брутфорса и атак типа MITM.
Нет проверки целостности. Из-за этого файлы могут быть повреждены или изменены в процессе передачи. И ты даже этого не обнаружишь.
Проблемы с брандмауэрами и NAT. Для установления соединения FTP использует несколько портов, и в режиме активного FTP клиент должен открывать порты для соединения, что может вызывать проблемы при работе через брандмауэры и NAT.
Нет управления версиями. FTP не имеет встроенных средств для управления версиями файлов или для отслеживания их изменений.
Сложность. Настройка FTP-серверов может быть сложной, особенно с учётом необходимости настройки брандмауэров и NAT.
Last updated