Модуль 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