Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_proxy_ftp

Описание: Модуль поддержки FTP для mod_proxy
Статус: Расширение
Идентификатор модуля: proxy_ftp_module
Исходный файл: mod_proxy_ftp.c

Краткое описание

Для работы этого модуля требуется служба mod_proxy. Он обеспечивает поддержку проксирования FTP-сайтов. Обратите внимание, что в настоящее время поддерживается только метод GET.

Таким образом, чтобы обрабатывать FTP-запросы через прокси, на сервере должны присутствовать mod_proxy и mod_proxy_ftp.

Предупреждение

Не включайте проксирование, пока не обеспечите безопасность сервера. Открытые прокси-серверы представляют опасность как для вашей сети, так и для Интернета в целом.

Почему файл типа xxx не загружается через FTP?

Вероятно, в файле конфигурации mime.types вашего прокси этот тип файла не определен как application/octet-stream. Например, можно добавить такую строку:

application/octet-stream   bin dms lha lzh exe class tgz taz

Или вы можете использовать директиву ForceType, чтобы по умолчанию считать все файлы двоичными:

ForceType application/octet-stream

Как принудительно загрузить файл xxx через FTP в текстовом режиме ASCII?

В редких случаях, когда необходимо загрузить определенный файл с использованием метода передачи FTP ASCII (при этом по умолчанию передача выполняется в режиме binary), можно переопределить значение по умолчанию для mod_proxy, добавив к запросу суффикс ;type=a, чтобы принудительно выполнить передачу в режиме ASCII. (Однако списки каталогов FTP всегда формируются в режиме ASCII.)

Как выполнить загрузку файла на FTP-сервер?

В настоящее время для FTP в mod_proxy поддерживается только GET. Разумеется, через прокси Apache можно загружать файлы по HTTP (с помощью POST или PUT).

Как получить доступ к FTP-файлам за пределами домашнего каталога?

URI FTP интерпретируется относительно домашнего каталога пользователя, выполняющего вход. К сожалению, для перехода на более высокий уровень каталогов нельзя использовать /../, поскольку точки обрабатываются браузером и фактически не отправляются на FTP-сервер. Для решения этой проблемы в FTP-прокси Apache реализован так называемый трюк Squid %2f; такое решение также используют другие популярные прокси-серверы, например кэширующий прокси-сервер Squid. Добавив /%2f в начало пути запроса, можно заставить такой прокси изменить начальный каталог FTP на / (вместо домашнего каталога). Например, чтобы получить файл /etc/motd, используйте URL:

ftp://user@host/%2f/etc/motd

Как скрыть пароль FTP в открытом виде в строке URL браузера?

Для входа на FTP-сервер с помощью имени пользователя и пароля Apache использует различные способы. Если в URL вообще не указаны имя пользователя и пароль, Apache выполняет анонимный вход на FTP-сервер, то есть,

user: anonymous
password: apache-proxy@

Это работает со всеми популярными FTP-серверами, настроенными для анонимного доступа.

Для личного входа с определенным именем пользователя его можно указать в URL, например:

ftp://username@host/myfile

Если FTP-сервер запрашивает пароль для указанного имени пользователя (что и должно происходить), Apache отвечает кодом 401 (требуется авторизация), из-за чего браузер открывает диалоговое окно для ввода имени пользователя и пароля. После ввода пароля попытка соединения повторяется, и в случае успеха отображается запрошенный ресурс. Преимущество этого способа в том, что браузер не показывает пароль в открытом виде (в отличие от случая, когда вы сначала использовали

ftp://username:password@host/myfile

).

Примечание

Пароль, передаваемый таким способом, не шифруется. Между браузером и прокси-сервером Apache он передается в виде строки открытого текста, закодированной в base64, а между прокси Apache и FTP-сервером — в виде обычного текста. Поэтому следует хорошо подумать, прежде чем обращаться к FTP-серверу через HTTP (или вообще получать доступ к личным файлам по FTP!). При использовании незащищенных каналов злоумышленник может перехватить пароль во время передачи.

Почему вместо загрузки файла отображается список файлов?

Чтобы разрешить как просмотр каталогов на FTP-сервере, так и загрузку файлов, Apache анализирует URL запроса. Если он похож на путь к каталогу или содержит символы-шаблоны ("*?[{~"), Apache предполагает, что требуется список файлов, а не их загрузка.

Специальную обработку имен с символами-шаблонами можно отключить. См. директиву ProxyFtpListOnWildcard.

Директива ProxyFtpDirCharset

Описание: Задает кодировку для проксируемых списков FTP-файлов
Синтаксис:
ProxyFtpDirCharset character_set
Значение по умолчанию:
ProxyFtpDirCharset ISO-8859-1
Контекст: конфигурация сервера, виртуальный хост, каталог
Статус: Расширение
Модуль: mod_proxy_ftp
Совместимость: Доступна в Apache 2.2.7 и более поздних версиях. Перенесена из mod_proxy в Apache 2.3.5.

Директива ProxyFtpDirCharset задает кодировку для списков каталогов FTP в HTML, создаваемых mod_proxy_ftp.

Директива ProxyFtpEscapeWildcards

Описание: Экранируются ли символы-шаблоны в запрошенных именах файлов при отправке на FTP-сервер
Синтаксис:
ProxyFtpEscapeWildcards on|off
Значение по умолчанию:
ProxyFtpEscapeWildcards on
Контекст: конфигурация сервера, виртуальный хост, каталог
Статус: Расширение
Модуль: mod_proxy_ftp
Совместимость: Доступна в Apache 2.3.3 и более поздних версиях

Директива ProxyFtpEscapeWildcards определяет, экранируются ли символы-шаблоны ("*?[{~") в запрошенных именах файлов обратной косой чертой перед отправкой на FTP-сервер. По умолчанию экранирование включено, однако многие FTP-серверы не поддерживают его и пытаются передать файлы с буквальными именами, которые им отправили, включая обратные косые черты.

Установите значение "off", чтобы разрешить загрузку файлов с символами-шаблонами в именах с FTP-серверов, не поддерживающих экранирование таких символов.

Директива ProxyFtpListOnWildcard

Описание: Приводят ли символы-шаблоны в запрошенных именах файлов к отображению списка файлов
Синтаксис:
ProxyFtpListOnWildcard on|off
Значение по умолчанию:
ProxyFtpListOnWildcard on
Контекст: конфигурация сервера, виртуальный хост, каталог
Статус: Расширение
Модуль: mod_proxy_ftp
Совместимость: Доступна в Apache 2.3.3 и более поздних версиях

Директива ProxyFtpListOnWildcard определяет, приводят ли символы-шаблоны ("*?[{~") в запрошенных именах файлов к тому, что mod_proxy_ftp возвращает список файлов вместо загрузки файла. По умолчанию (значение on) это происходит.

Установите значение "off", чтобы разрешить загрузку файлов, даже если в их именах есть символы-шаблоны.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_ftp.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API