squid でリダイレクトできないか調べたら色々とソフトウェアが提供されていたので、その中の一つ「asqredir」を使ってみました。

■OSバージョン
CentOS 6.3 64bit

■squidバージョン
squid-3.1.10-9.el6_3.x86_64

■asqredir
公式: http://asqredir.sourceforge.net/
バージョン: 0.3
公式からではソースのみしかダウンロードできなかったので、SOURCEFORGEからtarボールをダウンロードする。

(1)squidをインストール

[root@example ~]# yum -y install squid


(2)asqredirをダウンロード

[root@example ~]# wget http://downloads.sourceforge.net/project/asqredir/asqredir/v0.3/asqredir-0.3.tar.gz?r=http%3A%2F%2Fsourceforge.jp%2Fprojects%2Fsfnet_asqredir%2Fdownloads%2Fasqredir%2Fv0.3%2Fasqredir-0.3.tar.gz%2F&ts=1356332434&use_mirror=ignum


(3)asqredirをインストール

[root@example ~]# tar zxvf asqredir-0.3.tar.gz -C /usr/local/src/
[root@example ~]# cd /usr/local/src/asqredir-0.3/
[root@example asqredir-0.3]# make
[root@example asqredir-0.3]# make install


(4)asqredirの設定

[root@example ~]# cd /usr/local/asqredir/
[root@example asqredir]# vi urls.txt
# --最終行にでも追加--
^http://www.google.co.jp.* http://www.yahoo.co.jp


ここでは、以下のようにリダイレクトするようにしています。

リダイレクト前
http://www.google.co.jp/全て

リダイレクト後
https://www.yahoo.co.jp

とりあえず、動作確認なので適当に:-)

(5)squidの設定

[root@example ~]# cd /etc/squid/
[root@example squid]# vi squid.conf
http_port 3128
↓ # 変更
http_port 8080

# 以下を追加最終行にでも追加
visible_hostname example.local
url_rewrite_program /usr/local/asqredir/asqredir /usr/local/asqredir/urls.txt
redirect_children 5


(6)squidを起動

[root@example ~]# service squid start

ここでは、必要最低限な設定しかしていません:)

(7)asqredirの動作確認

[root@example ~]# /usr/local/asqredir/asqredir /usr/local/asqredir/urls.txt
http://www.google.co.jp 127.0.0.1 - GET
http://www.yahoo.co.jp 127.0.0.1 - GET

上記のようにリダイレクトされることを確認する。

(8)クライアントのブラウザにProxyを設定してgoogleへアクセスしyahooに接続されることを確認
注:リダイレクトされてyahooのTOPページが表示されますが、クライアント側のアドレスは変更されません。以下の図を参照してください。
リダイレクト後の画面

確か、「Squirm」であればクライアント側のアドレスも書き換えてくれたような。
ううむ、忘れてしまったので今度やってみよう:)

参考文献
1. http://www.squid-cache.org/Doc/config/url_rewrite_program/
2. http://asqredir.sourceforge.net/


12月 24, 2012 at 5:50 pm by 黒ぶちメガネ
Category: Linux, proxy