ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Squidコミュのバーチャルホスト的な運用設定

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お初にお目に掛かります。
最近、CentOS上でsquidを使い始めました。

お伺いしたいのですが、squid単体でバーチャルホストのような使い方はできますでしょうか?

具体的には、CentOSをインストールしたPCがあります。
eth0にIPアドレスAを設定しました。
仮想インターフェースeth0:1を追加し、IPアドレスBを設定しました。
このPC上でsquidを起動し、他PCからプロキシの設定をIPアドレスB宛で設定し、IPアドレスBから外部Webにアクセスさせたいのです。

現状、他PCのプロキシ設定をIPアドレスBで設定しても、squidと外部WebのアクセスはIPアドレスAを使用してしまっております。

なんとか、squidにIPアドレスBを使用させる方法はないでしょうか?

よろしくお願い致します。

コメント(8)

デフォルトゲートウェイがAを向いて限り無理じゃないの。利用規模が判らないけど、普通はインターネット側にデフォルトゲートウェイ向けて、LAN側はスタティクルーティング書くかブロードキャストで対応するんじゃないかな。
miyukiさん、アドバイスをどうもありがとうございました。
なるほど、デフォルトゲートウェイですね。

デフォルトゲートウェイはIPアドレスAでもBでもなく、ルーターに向いてますので関係ないと思いましたが、ルーティングテーブルを見て気づいたのは、インターフェースがeth0になっておりました。
なんとかeth0:1を使う方法はないかと考えて/etc/sysconfig/network-scripts/ifcfg-eth0:1に「GATEWAY=192.168.14.254」を加えた(ifcfg-eth0の記述は削除)ところ、IPアドレスBを使うようになりましたが、プロキシの設定をはずしてもBのアドレスを使ってしまい、無駄とわかりました。

「GATEWAY=192.168.14.254」を両方に記述してもしょうがないと思い、まだ実施しておりません。

もう少し、方法を考えたいと思います。
どうもありがとうございました。

ちょいとぐぐって調べました。
試してないけど、squid.confのココら辺いじるらしいです。
# TAG: tcp_outgoing_address

ここら辺を参考にしてください。
http://www.iwaking.com/ja/20091201/113/
http://q.hatena.ne.jp/1284477718
「バーチャルホスト」とおっしゃっていますが、結局のところ何をされたいのでしょうか。Web関係でバーチャルホストと言えば、

* IPアドレスを割り振って、それぞれのIPで異なるサイト
* 複数のDNS的ホスト名を同じIPアドレスに割り振って、アクセスする側が指定する
ホスト名に対応するサイト

といったものを提供する意味でよく使うと思いますが。一瞬Squidをaccelatorモードで使う話かとも思いましたが、単なるproxyのようですし。

デフォルトのルーターはSquidで透過的proxyをさせない限り、Squidはアプリケーションとしてproxyをしているので、まったく関係ありません。

miyukiさんが書かれているtcp_outgoing_addressで足りそうですが。
miyukiさん
再度ありがとうございました。
tcp_outgoing_addressですね。
職場のPCになりますので、明日試してみます。

tacaさん
コメントをどうもありがとうございます。
「バーチャルホスト」が正しい比喩かどうかは自信がありません。
要は職場のPCで、特定のURLのみにアクセスを許可するように設定したいのです。
考えたのは

・1台のPCに2つのIPアドレスを設定(A,B)
・プロキシを設定しない場合はAを使用する状態で、プロキシではBを使用したい。
・AはルーターでWebアクセスを禁止(パケットフィルタ)

というような事ができれば、特定のURLにはプロキシ経由でなければアクセスできず、プロキシをはずすと一切Webアクセスできない環境が作れるかと考えました。
別にプロキシを建てられれば問題ないのですが、それを1台でできないかと考えました。

説明不足で申し訳ありません。
一般的なポートベースのパケットフィルタでブロックしてしまうとsquidからもアクセスができなくなってしまうんじゃないかな?
デフォルトGW側にパケットフィルタを設定しないと、サイトへのアクセスブロックできないし、
squidで使う側のインターフェイスにデフォルトGWを設定しないと、インターネットへ抜けていかない。

そのsquidが稼働するPCのユーザもWebにアクセスできない設定にしなくてはならないのでしょうか?
そのPCが誰でも使えるPCである必要が無いなら、そのサーバとなるPCでのアクセスを制限する必要はないのではないでしょうか。

一般的で一番簡単な方法としては、squidのACLでsquidにアクセスできるPC制限を設け、さらにsquidからアクセスできるサイトを絞り込めばよいのではないかと思います。

ユーザフレンドリーな環境としては、SquidGaerdなどのURLフィルタリングと併せて、アクセスできるサイトを制限しそれ以外にアクセスした場合は、サイトのリダイレクトにてブロックアナウンスページを表示して、ユーザにアクセス制限にてブロックされた事を見せるのが良いかと。
パケットフィルタでいきなりブロックすると、ネットワーク障害でアクセスできないのか、制限にてブロックされているのかが分からなくなります。
また、この場合もインターフェイスを2個又はDNS名を2個もって、片側をsquidアクセス専用とするのは有効だと思います。これはマシンの入替時などにユーザ側のproxy設定変更を無くすことができます。

余談ですが、一昔前の捨てるような余ったPC(Pentium?等)でもCUIのみの最少セットアップ構成ならばsquidはストレスなく動きますよ。
私のところも3000人程度で、squidサーバ(Pentium3)2台で負荷分散させて運用しておりしたが、ストレスはあまり感じません。

miyukiさん、どうもありがとうございました。
想定通りの動作が設定できました。

情報を小出しにしてしまい、申し訳ありません。
当該PC自体も、他PCもプロキシ経由で特定のURL限定でWebアクセスさせたい都合があり、また当該PC以外はプロキシをインストールできるPCがない状態(プロキシ専用機も用意できない状態)でした。
なので、当該PCでプロキシをはずされる危険を考えて、当該PCからのアクセスはパケットフィルタで止めて、プロキシでURLフィルタを設定したかった次第です。

おかげさまで問題が一気に解決できました。
どうもありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Squid 更新情報

Squidのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング