2011年6月1日水曜日

ServersMan@VPS(debian-32bit)を好き勝手に設定 - その6 - IPv6へのウェブプ ロキシ

私は今のところIPv6に対応したアクセス回線をもっておらず、
たまにIPv6のウェブサーバにアクセスしたいときに困ります。
汎用の4to6ゲートウェイは必要ないので、
ServersMan@VPS(debian-32bit)のウェブプロキシにIPv4でアクセスして、
IPv6サーバにアクセスするようにしようと思ったら…つながりません。
apt-getでインストールされるsquidのバージョンは3.0で、
IPv6対応は3.1からでした。
仕方がないのでソースからビルドです。
最初にコンパイラとカーネルソースのインストールです。

# apt-get install gcc
# apt-get install kernel-package

それからsquidの最新版のインストールです。
なお、basic認証はパスワードがばればれなのでdigest認証を使うことにします。

# cd /usr/local/src
# wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.9.tar.bz2
# tar jxf squid-3.1.9.tar.bz2
# cd squid-3.1.9
# ./configure --prefix=/usr/local/squid
# make all
# make install
# chgrp -R root /usr/local/squid
# cd /usr/local/squid/etc
# htdigest -c passwd proxy <ユーザ名>

"/usr/local/squid/etc/squid.conf"の該当部分を以下のように編集します。

visible_hostname <サーバのFQDN>

auth_param digest program /usr/local/squid/libexec/digest_pw_auth -c /usr/local/squid/etc/passwd
auth_param digest children 5
auth_param digest realm proxy
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50

acl password proxy_auth REQUIRED

http_access allow password

http_port 8000

pipeline_prefetch on
httpd_accel_with_proxy on

また、いったん

# /etc/init.d/squid3 stop

で古いsquidを止めてから、
"/etc/init.d/squid3"の該当部分を以下のように編集します。

DAEMON=/usr/local/squid/sbin/squid
SQUID_ARGS="-YC"
CONFIG=/usr/local/squid/etc/squid.conf

最後に

# chmod -R 777 /usr/local/squid/var
# /etc/init.d/squid3 start

を実行すれば、"http://ipv6.google.com"のような
IPv6アドレスしかないサイトもプロキシ経由で見れるようになります。
ただし、なぜか

# /etc/init.d/squid3 stop

では停止しなくなってしまうので、
停止するときはpsでプロセス番号を調べてkillすることにします。

0 件のコメント:

コメントを投稿