Модуль Apache mod_proxy_ftp
| Описание: | Модуль поддержки FTP для mod_proxy
|
|---|---|
| Статус: | Расширение |
| Идентификатор модуля: | proxy_ftp_module |
| Файл исходного кода: | mod_proxy_ftp.c |
Обзор
Этот модуль требует сервиса mod_proxy. Он предоставляет поддержку проксирования FTP-сайтов. Обратите внимание, что поддержка FTP в настоящее время ограничена методом GET.
Таким образом, для получения возможности обработки запросов FTP-прокси mod_proxy и mod_proxy_ftp должны быть присутствовать в сервере.
Предупреждение
Не активируйте проксирование, пока не обезопасите свой сервер. Открытые прокси-серверы представляют опасность как для вашей сети, так и для Интернета в целом.
Почему тип файла xxx не загружается через FTP?
Вероятно, у вас не определен данный тип файла как application/octet-stream в файле конфигурации mime.types вашего прокси. Полезной строкой может быть:
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. Вы, конечно, можете использовать HTTP-загрузку (POST или PUT) через прокси Apache.
Как получить доступ к файлам FTP вне домашнего каталога?
FTP-URI интерпретируется относительно домашнего каталога пользователя, который входит в систему. К сожалению, для доступа к более высоким уровням каталогов нельзя использовать /../, так как точки интерпретируются браузером, а не отправляются на FTP-сервер. Для решения этой проблемы в прокси FTP Apache реализован так называемый хак Squid %2f, являющийся решением, которое также используется другими популярными прокси-серверами, например, Squid Proxy Cache. Добавив /%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
| Описание: | Указывает, нужно ли экранировать символы подстановки в именах файлов, запрашиваемых по имени |
|---|---|
| Синтаксис: | ProxyFtpEscapeWildcards on|off |
| Значение по умолчанию: | ProxyFtpEscapeWildcards on |
| Контекст: | конфигурация сервера, виртуальный хост, каталог |
| Статус: | Расширение |
| Модуль: | mod_proxy_ftp |
| Совместимость: | Доступно в Apache 2.3.3 и более поздних версиях |
Директива ProxyFtpEscapeWildcards управляет тем, экранируются ли символы подстановки ("*?[{~") в запрашиваемых именах файлов с помощью обратного слеша перед отправкой на FTP-сервер. Это по умолчанию, но многие FTP-серверы не понимают экранирования и пытаются обслужить фактические имена файлов, включая обратные слеши в именах.
Установите «выкл.» для разрешения загрузки файлов с символами подстановки в их именах с FTP-серверов, которые не понимают экранирования символов подстановки.
Директива ProxyFtpListOnWildcard
| Описание: | Указывает, вызывают ли символы подстановки в именах файлов запрос списка файлов |
|---|---|
| Синтаксис: | ProxyFtpListOnWildcard on|off |
| Значение по умолчанию: | ProxyFtpListOnWildcard on |
| Контекст: | конфигурация сервера, виртуальный хост, каталог |
| Статус: | Расширение |
| Модуль: | mod_proxy_ftp |
| Совместимость: | Доступно в Apache 2.3.3 и более поздних версиях |
Директива ProxyFtpListOnWildcard управляет тем, вызывают ли символы подстановки ("*?[{~") в именах файлов mod_proxy_ftp возврат списка файлов вместо загрузки файла. По умолчанию (включено), они делают это.
Установите «выкл.» для разрешения загрузки файлов даже если они содержат символы подстановки в своих именах.
© 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