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

Apache HTTP サーバ バージョン 2.2

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.2 > モジュール

#### Please note

This document refers to a legacy release (2.2) of Apache httpd. The active release (2.4) is documented here. If you have not already upgraded, please follow this link for more information.

You may follow this link to go to the current version of this document.

# Apache モジュール mod_proxy_ftp

翻訳済み言語: en | ja

この日本語訳はすでに古くなっている 可能性があります。 最近更新された内容を見るには英語版をご覧下さい。

説明: | `mod_proxy` のための FTP サポートモジュール
ステータス: | Extension
モジュール識別子: | proxy_ftp_module
ソースファイル: | mod_proxy_ftp.c

### 概要

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

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

### 警告

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

### トピック

- なぜファイルタイプ xxx は FTP ダウンロードできないのでしょう?
- ファイル xxx を ASCII モードで FTP ダウンロードさせるにはどうすればいいのでしょう?
- FTP アップロードはできますか?
- ホームディレクトリ外のファイルに FTP アクセスするにはどうすればよいでしょうか?
- ブラウザの URL 欄に FTP のパスワードがそのまま 載らないようにするにはどうすればよいでしょうか?

### ディレクティブ

このモジュールにディレクティブはありません。

### 参照

- `mod_proxy`

- コメント

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

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

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

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

    DefaultType application/octet-stream

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

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

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

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

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

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

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

## ブラウザの 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 で個人的な ファイルにアクセスする時 ) 、倍の慎重さが求められます。 安全でないネットワークを使っている場合、経路上でパスワードを盗み取られる 可能性があります。

翻訳済み言語: en | ja

## コメント

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.