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 |
思ったより安い……時もある、Amazon |