Введение

Метод передачи данных

Протокол обмена файлами (FXP или FXSP) — это метод передачи данных, использующий FTP для передачи данных с одного удалённого сервера на другой (межсерверная передача) без маршрутизации этих данных через соединение клиента. В обычном FTP используется один сервер и один клиент; вся передача данных происходит между ними. В сеансе FXP клиент поддерживает стандартное FTP-соединение с двумя серверами и может инициировать соединение одного сервера с другим для начала передачи данных. Преимущество использования FXP перед FTP становится очевидным, когда сервер с высокой пропускной способностью запрашивает ресурсы у другого сервера с высокой пропускной способностью, но доступ к ресурсам на обоих серверах есть только у клиента с низкой пропускной способностью, например, у сетевого администратора, работающего удалённо.

Риск

Включение поддержки FXP может сделать сервер уязвимым для эксплойта, известного как FTP bounce. Поэтому программное обеспечение FTP-серверов часто имеет FXP отключенным по умолчанию. Некоторые сайты ограничивают доступ по IP-адресам, разрешая подключение только с доверенных сайтов, чтобы снизить этот риск.

FXP через SSL

Некоторые FTP-серверы, такие как glFTPd, cuftpd, RaidenFTPD, drftpd и wzdftpd, поддерживают согласование защищенного канала передачи данных между двумя серверами с использованием команд расширения протокола FTP: CPSV или SSCN. Обычно это работает, когда клиент отправляет CPSV вместо команды PASV или отправляет SSCN перед передачей PASV, что предписывает серверу установить SSL- или TLS-соединение. Однако оба метода – CPSV и SSCN – могут быть уязвимы для атак типа "человек посередине", если два FTP-сервера не проверяют SSL-сертификаты друг друга. SSCN был впервые представлен RaidenFTPD и SmartFTP в 2003 году и получил широкое распространение.