- PR -

squidでのリバースプロキシ設定について

投稿者投稿内容
こん
会議室デビュー日: 2005/02/01
投稿数: 8
投稿日時: 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のテストページの画面がでます。これはリバースプロキシが正しく動いていない、ということでしょうか?
どう切り分けしていいのかもわからず、苦戦しています。

どなたかアドバイス頂けませんか?
知識不足のため、説明の至らないところもあると思いますが、宜しくお願いします。


非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 2005-02-02 14:34
/var/log/squid/access.log というログファイルを確認して、その側からのアクセスの結果がここに記録されている(ステータス番号200でGETできている)ならきちんとリバースできている事になります。
こん
会議室デビュー日: 2005/02/01
投稿数: 8
投稿日時: 2005-02-02 15:37
非武装エリアさん、有難うございます。

access.logを確認したところ、
"TCP_MISS/504 1338 GET http://192.168.x.x/nnnn"と出ていました。

取得はできていないが、192.168.x.x(内部のWebサーバ)への要求は出されて
いるみたいですね。

後は何で取得できてないか、を調べます。

どなたかアドバイスありましたら、お願いします。
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-02-02 16:23
こんにちは。

テストページであれ何であれ、ページが表示されるということは、squid自体は
きちんと動いているように思えます。

まったくの想像ですが、WEBサーバ側でネームベースのバーチャルホストを
設定しているけど、squidがIPアドレス目掛けて取得しに行っている、とか
そういう可能性ってないでしょうか。

リバースプロキシと言えば
http://guardian.jumperz.net/index.html

こういったものを作成されている方がいらっしゃいます。
セキュリティを考慮してとのことなら、試してみる価値はあると思いますが
いかがでしょう。
こん
会議室デビュー日: 2005/02/01
投稿数: 8
投稿日時: 2005-02-02 16:38
綾瀬さん、有難うございます。

少し説明不足がありました。

Apacheのテストページが表示されるという件ですが、GWサーバ上のApacheのテストページが表示されているようなのです(WEBサーバはIIS)。なのでリバースプロキシが動作してないのでは?と思ったわけです。

>WEBサーバ側でネームベースのバーチャルホストを設定しているけど、
>squidがIPアドレス目掛けて取得しに行っている、とかそういう可能
>性ってないでしょうか。
「ネームベースの…」というのがイマイチ理解できないのでうまく説明できませんが、感覚的に非常にありえます。
SquidからWebサーバへ"http://192.168.x.x/nnnnn"で取得しにいくのでなく、"http://hostname/nnnnn"で取得しに行くことができないか、調べていたのですが、難しいのですかね?

ご指摘のソフトも調べた上で、検討してみたく思います。


非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 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を返すようにしておきます。


非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 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/01
投稿数: 8
投稿日時: 2005-02-02 20:09
非武装エリアさん、
有難うございます。

やってみたのですが、状況は変わりません。
私が何か根本的な勘違いをしてる気がします。
(apacheを止めているのに、apacheのテストページが表示される、というのはおかしいですよね)

インターネット側のDNSは使用してなくて、"www.hogehoge.jp"ではなく"1.2.3.4"という形で指定しているのですが、これは問題ですか?

初歩的ですみません。

スキルアップ/キャリアアップ(JOB@IT)