mod_proxy_ftp - Apache HTTP サーバ バージョン 2.2

Apache Server 2.2

<-

Apache モジュール mod_proxy_ftp

この日本語訳はすでに古くなっている 可能性があります。 最近更新された内容を見るには英語版をご覧下さい。
説明:mod_proxy のための FTP サポートモジュール
ステータス:Extension
モジュール識別子:proxy_ftp_module
ソースファイル:mod_proxy_ftp.c

概要

本モジュールには mod_proxy必要です。 本モジュールは FTP サイトへのプロキシ機能を提供します。 現状、 FTP サポートは GET メソッドに限定されていることに注意してください。

FTP プロキシリクエストを扱うためには、mod_proxymod_proxy_ftpが サーバに組み込まれて いなければいけません。

警告

安全なサーバにするまでプロキシ機能は有効にしないでください。 オープンプロキシサーバはあなた自身のネットワークにとっても、 インターネット全体にとっても危険です。

参照

top

なぜファイルタイプ xxx は FTP ダウンロードできないのでしょう?

おそらく、プロキシの mime.types 設定ファイルでそのファイルタイプを application/octet-stream として定義していないのでしょう。 以下の行が便利でしょう。

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

デフォルトで全てをバイナリにするのもいいかもしれません:

DefaultType application/octet-stream
top

ファイル xxx を ASCII モードで FTP ダウンロードさせるにはどうすればいいのでしょう?

稀に、特定のファイルを FTP の ASCII 転送モードでダウンロードしなければ ならない場合があります (なお、デフォルトの転送モードは binary です)。 この場合、リクエストの末尾に ;type=a を加えることで mod_proxy のデフォルト動作を変更して、 ASCII 転送モードにできます。 (一方、 FTP のディレクトリ一覧は常に ASCII モードです。)

top

FTP アップロードはできますか?

現状、 mod_proxy は FTP の GET のみサポートしています。 もちろん、 Apache プロキシで HTTP アップロード (POST または PUT) はできます。

top

ホームディレクトリ外のファイルに FTP アクセスするにはどうすればよいでしょうか?

FTP の URI はログイン中のユーザのホームディレクトリの相対パスとして 解釈されます。より上位のディレクトリに行くために /../ を使っても無駄です。 と言うのも、ドットふたつはブラウザが解釈するだけで、実際に FTP サーバには 送られないからです。この問題に対して、 Apache の FTP プロキシは いわゆる Squid %2f hack を実装しています; Squid Proxy Cache などの 他の有名なプロキシサーバも採用している解決方法です。 リクエストのパスの先頭に /%2f をつけると、これらのプロキシ は FTP のディレクトリを / 開始にします (ホームディレクトリではなく)。 例えば、/etc/motd ファイルを取得するには、次の URL を 使えばよいでしょう:

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

top

ブラウザの URL 欄に FTP のパスワードがそのまま 載らないようにするにはどうすればよいでしょうか?

FTP サーバにユーザ名とパスワードを使ってログインするために、 Apache は異なる戦略を使います。 URL にユーザ名もパスワードも無ければ、 Apache は FTP サーバに匿名 (anonymous) ログインしようとします。

user: anonymous
password: apache_proxy@

匿名アクセスを設定したすべての有名な FTP サーバでこれは動作します。

特定のユーザ名でログインするために、 URL に次のようにユーザ名を埋め込めます:

ftp://username@host/myfile

FTP サーバがこのユーザ名に対してパスワードを求めると (そうあるべきです) 、 Apache は 401 (Authorization required) レスポンスを返します。 これによりブラウザはユーザ名とパスワードを求めるダイアログ画面をポップアップします。 パスワードを入力すると、もう一度接続しなおし、認証が成功すると、 要求していたリソースが現れます。このやりとりの利点は、ブラウザがパスワードを そのまま表示しないことです。もし最初に次の URL を使っていると

ftp://username:password@host/myfile

パスワードがそのまま見えてしまいます。

注意

このように送信するパスワードはネットワーク上は暗号化されません。 ブラウザと Apache プロキシサーバの間は base64 エンコードした生パスワードで、 Apache プロキシサーバと FTP サーバの間はプレインテキストです。 このため、 HTTP 経由で FTP サーバにアクセスする時 (とにかく FTP で個人的な ファイルにアクセスする時 ) 、倍の慎重さが求められます。 安全でないネットワークを使っている場合、経路上でパスワードを盗み取られる 可能性があります。