logo search
Мет по сетям (протоколам)

Протокол ftp

Протокол FTP (File Transfer Protocol) является одним из старейших протоколов стека ТСР\IP.

Этот протокол для передачи файлов использует два ТСР соединения, одно — для передачи команд (порт 21 на стороне клиента) и второе — для передачи данных (порт 20 на стороне сервера). Соответствующие порты приёма данных на стороне клиента и приёма команд на стороне сервера устанавливаются в процессе инициации FTP сеанса.

Возможны два режима работы – активный и пассивный. В первом — клиент ждёт передачи данных (сервер инициирует ТСР соединение для передачи данных, он активен), во втором – активен клиент. Так, в активном режиме при открытии FTP сеанса клиент открывает пассивное ТСР соединение, находящееся в ожидании активности сервера (состояние LISTEN), и задаёт порт для приёма данных. В свою очередь, сервер, получив номер этого порта, начинает передавать на него пакеты с данными. В пассивном режиме, наоборот, сервер сообщает клиенту номер порта передачи данных и ждёт соединения.

Комбинируя пассивный и активный режимы клиент может организовать прямую передачу файлов между серверами как показано на рисунке 3.5.1.1.

Рис. 3.5.1.1. Пряма передача файлов между серверами с помощью FTP.

Организация прямой передачи файлов между серверами реализуется в 4-е шага:

Клиент С задаёт пассивный режим серверу А.

В ответ получает от него IP адрес и порт для передачи данных.

Клиент С задаёт серверу В активный режим и указывает IP адрес и порт сервера А для передачи данных.

Сервер В инициирует ТСР соединение для передачи данных с сервера А и после установления этого соединения сервер А передаёт данные серверу В.

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

К сожалению, при установке сеанса FTP, имя пользователя и его пароль передаются открытым образом. Для повышения безопасности в FTP предусматривается сеанс с анонимным пользователем (anonymous), имеющим ограниченные администратором сервера права.