リバースプロキシを利用する際には ProxyRequest は On にしちゃダメ、ぜったいダメ[Apache]

このエントリーをはてなブックマークに追加


2006-04-13


JANOG ML にリバースプロキシはどう?と設定例を投げたんですが、すばやく問題点を指摘して頂いた(ほんと、ありがたい……)

Apache を Reverse Proxy で利用する際には、ProxyRequest は必ず Off にしないとだめ。
On にしちゃうと、オープンプロキシになってしまう危険性がある。

ちゃんとドキュメント

http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html

にも

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


とか

リバースプロキシの 設定のために ProxyRequests を設定する必要は ありません。


と、その危険性にも触れてあるし、Reverse Proxy の設定例には

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar


とあって、わざわざ ProxyRequest Off なんて入れてあって、間違いが起きないように補足してある。

#人に、ちゃんと Apache のドキュメント読まないとダメよと言っときながら、
#自分がちゃんと読んでなかった罠。
#確かめたつもりだったんだけど、本当に「つもり」なだけだったらしい。恥ずかしすぎ(--;

なお、オープンプロキシを探すスクリプトは世の中に出回っているらしく、Webサーバを運用している方は、ログにその形跡を目にされる方もおられると思います(ちょっと前にも話題になりましたしね(--;))

心配な方は以下のようにチェックできるはず。

$ telnet localhost 80 <= 入力
Escape character is '^]'.
CONNECT http://www.yahoo.co.jp:80 HTTP/1.0 <= 入力


これで "400 Bad Request" とか返って来れば大丈夫なはず。www.yahoo.co.jp の index.html が返ってきたら、アウト。

# ただ、この確かめ方が 100% 正しいかは要確認。以前 ProxyRequest On + Reverse Proxy の
# 設定を入れてしまっていた時に、このテストをやってみたときには、ひっかからなかったんだよねぇ

と、自戒の意味も込めて、自分の日記にも晒しておく。



IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ