- - PR -
squidでのリバースプロキシ設定について
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-02-02 13:13
当方ネットワーク・Linuxともに知識不足のため、苦労しております。
助けてもらえないでしょうか? ADSL回線を使用しWebサーバを公開するのですが、セキュリティを考慮しLinux(Vine3.1)でゲートウェイサーバをたて、Squid(-2.5. Stable5-0vl3)でリバースプロキシしようと思っています。 「http_port=8080」とし、ルータの静的IPマスカレードで80番ポートと8080番ポートを変換しています(そのように設定しているつもりなのですが、ここも少し不安です)。 squid.conf内には以下の通り設定しています。 ------------------------------------------- httpd_accel_host 192.168.1.1 #webサーバのIP httpd_accel_port 80 httpd_accel_single_host on httpd_accel_with_proxy on httpd_accel_uses_host_header off ------------------------------------------- これでいけるかな、と思ったのですが、"http://xxx.xxx.xxx.xxx"(xxx...はIPマスカレードしている固定の外側IPアドレス)に接続するとApachのテストページの画面がでます。これはリバースプロキシが正しく動いていない、ということでしょうか? どう切り分けしていいのかもわからず、苦戦しています。 どなたかアドバイス頂けませんか? 知識不足のため、説明の至らないところもあると思いますが、宜しくお願いします。 |
|
投稿日時: 2005-02-02 14:34
/var/log/squid/access.log というログファイルを確認して、その側からのアクセスの結果がここに記録されている(ステータス番号200でGETできている)ならきちんとリバースできている事になります。
|
|
投稿日時: 2005-02-02 15:37
非武装エリアさん、有難うございます。
access.logを確認したところ、 "TCP_MISS/504 1338 GET http://192.168.x.x/nnnn"と出ていました。 取得はできていないが、192.168.x.x(内部のWebサーバ)への要求は出されて いるみたいですね。 後は何で取得できてないか、を調べます。 どなたかアドバイスありましたら、お願いします。 |
|
投稿日時: 2005-02-02 16:23
こんにちは。
テストページであれ何であれ、ページが表示されるということは、squid自体は きちんと動いているように思えます。 まったくの想像ですが、WEBサーバ側でネームベースのバーチャルホストを 設定しているけど、squidがIPアドレス目掛けて取得しに行っている、とか そういう可能性ってないでしょうか。 リバースプロキシと言えば http://guardian.jumperz.net/index.html こういったものを作成されている方がいらっしゃいます。 セキュリティを考慮してとのことなら、試してみる価値はあると思いますが いかがでしょう。 |
|
投稿日時: 2005-02-02 16:38
綾瀬さん、有難うございます。
少し説明不足がありました。 Apacheのテストページが表示されるという件ですが、GWサーバ上のApacheのテストページが表示されているようなのです(WEBサーバはIIS)。なのでリバースプロキシが動作してないのでは?と思ったわけです。 >WEBサーバ側でネームベースのバーチャルホストを設定しているけど、 >squidがIPアドレス目掛けて取得しに行っている、とかそういう可能 >性ってないでしょうか。 「ネームベースの…」というのがイマイチ理解できないのでうまく説明できませんが、感覚的に非常にありえます。 SquidからWebサーバへ"http://192.168.x.x/nnnnn"で取得しにいくのでなく、"http://hostname/nnnnn"で取得しに行くことができないか、調べていたのですが、難しいのですかね? ご指摘のソフトも調べた上で、検討してみたく思います。 |
|
投稿日時: 2005-02-02 18:54
まずは、問題点の切り分けのため以下のような構成と仮定して。
Internet --- [ルータ] --------+---------+ 1.2.3.4 | | 192.168.1.1| |192.168.1.8 [IIS] [Squid] (www.hogehoge.jp) ルータにて、1.2.3.4:80のポートマッピング先として192.168.1.8:80として設定し、 squid.confでは http_port 80 visible_hostname www.hogehoge.jp httpd_accel_host 192.168.1.1 httpd_accel_port 80 httpd_accel_single_host on httpd_accel_with_proxy on httpd_accel_uses_host_header off acl all src 0.0.0.0/0.0.0.0 http_access allow all として、 squidの動作しているマシン上のapacheを「止めて」、試してみてどうなるか確認してみては如何でしょうか? このとき、当然インターネット側のDNSでは「www.hogehoge.jp」のアドレスとして 1.2.3.4を返すようにしておきます。 |
|
投稿日時: 2005-02-02 19:00
Internet ---- [ルータ] --------+------------+
1.2.3.4 | | 192.168.1.1| |192.168.1.8 [IIS] [Squid] (www.hogehoge.jp) 構成図がずれたので再送。 |
|
投稿日時: 2005-02-02 20:09
非武装エリアさん、
有難うございます。 やってみたのですが、状況は変わりません。 私が何か根本的な勘違いをしてる気がします。 (apacheを止めているのに、apacheのテストページが表示される、というのはおかしいですよね) インターネット側のDNSは使用してなくて、"www.hogehoge.jp"ではなく"1.2.3.4"という形で指定しているのですが、これは問題ですか? 初歩的ですみません。 |