Открыть сервис

Пассивный режим FTP

Пассивный режим FTP — это один из двух основных режимов передачи данных в протоколе FTP (File Transfer Protocol), при котором инициатором установления соединения для передачи данных выступает клиент. В отличие от активного режима, где сервер сам подключается к клиенту, в пассивном режиме сервер открывает порт для прослушивания, а клиент устанавливает соединение с этим портом. Пассивный режим был разработан для решения проблем, возникающих при работе FTP через межсетевые экраны (firewalls) и системы трансляции сетевых адресов (NAT).

История возникновения

Протокол FTP был разработан в 1971 году и изначально предполагал только активный режим передачи данных. В активном режиме сервер, получив команду на передачу данных, сам инициирует соединение с клиентом с порта 20 на случайный порт клиента, указанный в команде PORT. Однако с развитием компьютерных сетей и распространением межсетевых экранов и NAT, активный режим стал создавать проблемы. Межсетевые экраны, настроенные на блокировку входящих соединений, не пропускали попытки сервера подключиться к клиенту. Для решения этой проблемы в 1994 году в спецификацию FTP (RFC 1579) был добавлен пассивный режим (PASV). Позднее, в 1997 году, в RFC 2389 был определён расширенный пассивный режим (EPSV), поддерживающий протокол IPv6.

Принцип работы

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

  1. Клиент устанавливает управляющее соединение с сервером на порт 21.
  2. Клиент отправляет команду PASV (или EPSV для IPv6).
  3. Сервер открывает случайный порт (обычно в диапазоне 1024–65535) и сообщает клиенту его номер в ответе на команду PASV.
  4. Клиент устанавливает новое TCP-соединение с указанным портом сервера.
  5. По этому соединению осуществляется передача данных (загрузка или выгрузка файлов, получение списка директорий).
  6. После завершения передачи данных соединение закрывается. При необходимости новой передачи клиент повторяет процедуру с шага 2.

Отличие от активного режима

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

Классификация и варианты

Стандартный пассивный режим (PASV)

Определён в RFC 959 и RFC 1579. Используется для IPv4. Сервер сообщает клиенту IP-адрес и порт для подключения. В некоторых конфигурациях сервер может сообщать свой внутренний IP-адрес, что приводит к проблемам при работе через NAT.

Расширенный пассивный режим (EPSV)

Определён в RFC 2428. Предназначен для работы с IPv6, но также может использоваться с IPv4. В отличие от PASV, сервер сообщает только номер порта, а клиент использует тот же IP-адрес, что и для управляющего соединения. Это устраняет проблемы с NAT, связанные с передачей IP-адреса.

Применение и значение

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

Пассивный режим широко используется в FTP-клиентах (FileZilla, WinSCP, Total Commander и других) и серверах (vsftpd, ProFTPD, FileZilla Server). Большинство современных FTP-клиентов по умолчанию используют пассивный режим.

Недостатки и ограничения

Несмотря на преимущества, пассивный режим имеет и некоторые недостатки:

Примеры использования

Командная строка (FTP-клиент Windows)

`` ftp> open ftp.example.com ftp> passive Пассивный режим включён. ftp> get file.txt ``

FTP-клиент FileZilla

В FileZilla пассивный режим включается в настройках: «Настройки» → «Передача» → «Пассивный режим (рекомендуется)». По умолчанию используется расширенный пассивный режим (EPSV).

Критика

Основная критика пассивного режима связана с тем, что он требует от сервера открытия большого диапазона портов, что может быть расценено как угроза безопасности. Некоторые администраторы предпочитают активный режим, если клиенты находятся в контролируемой сети без NAT. Кроме того, протокол FTP в целом, включая пассивный режим, считается устаревшим и небезопасным, так как передаёт данные (включая пароли) в открытом виде. Рекомендуется использовать защищённые версии, такие как FTPS (FTP over SSL/TLS) или SFTP (SSH File Transfer Protocol), которые также поддерживают пассивный режим.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →