squid は プロキシキャッシュのサービス。
オープンソース(ライセンスは GPL)。クラスプラットフォーム。ヤリイカだそうです。
ソースは 2.x まで C、3.0 から C++ になっているので注意。
3.x 系の安定バージョンは 2010年 05月 現在 3.1.3。
Fedora 12 などの最近の Linux には squid をインストール時に組み込めたりする。
インストールで導入してない場合は、パッケージをインストールして使ってみる。
$ su -
# yum install squid
acl example_net src 192.168.0.0/255.255.255.0※"example_net" は何でも良い。下の http_access allow の記述に合わせる。
http_access allow example_net※"example_net" は何でも良い。上の acl の記述に合わせる。
forwarded_for off
visible_hostname squid.example.com※ローカルで使用する名前なら何でも良い。
request_header_access X-Forwarded-For deny all request_header_access Via deny all request_header_access Cache-Control deny all
/etc/rc.d/init.d/squid start
# chkconfig squid on
これで、このサーバを介してインターネットに接続してみる。
IE8 なら、「ツール」→「インターネットオプション」→「接続」タブ→「LANの設定」で「プロキシサーバ」のチェックボックスを ON にして、アドレスに上記で設定した Linux サーバの IPを、ポートに 3128 を設定。
Firefox の場合も 「ツール」→「オプション」→「詳細」タブ→「ネットワーク」タブの接続グループに同様の設定がある。
上記設定をして、どこかインターネットのページ(www.yahoo.co.jp とか)を開いてみる。開ければ、とりあえず動いてるということ。
今度は yum ではなく、squid のソースから導入してみる。
$ su -
# cd /home/(ユーザ名)/download
# tar zxvf squid-3.1.x.tar.gz※squid-3.1.x というディレクトリができる。
# cd squid-3.1.x
# ./configure
# make
# make install
# ls /usr/local/squid
# grep squid /etc/group
squid:x:23:※yum で squid を入れると勝手に作成されるのかな。。ちとよくわからん。
# groupadd squid
# grep squid /etc/passwd ←実際は半角です。なぜか wiki 更新できないので全角で書いてますが。
squid:x:23:23::/var/spool/squid:/sbin/nologin
# useradd -g squid -s /sbin/nologin squid※明示的なログインを不可にするので、ホームディレクトリはいらんでしょう。多分。
# mkdir /usr/local/squid/var/cache
# mkdir /usr/local/squid/var/logs※これは多分インストールで作成されてると思う。
# chown squid /usr/local/squid/var/cache # chown squid /usr/local/squid/var/logs # chown squid /usr/local/squid/var/run或いは、こうかな。
# chown -R squid /usr/local/squid/var
# mv /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.org ← 一応バックアップ # cp /etc/squid/squid.conf /usr/local/squid/etc/squid.conf
# vi /usr/local/squid/etc/squid.conf
#cache_dir ufs /var/spool/squid 100 16 256 cache_dir ufs /usr/local/squid/var/cache 1024 16 256※コメントになってるので、有効にしてパスとサイズを書き換える。
#coredump_dir /var/spool/squid coredump_dir /usr/local/squid/var/cache
# sudo squid /usr/local/squid/sbin/squid -z※ユーザ squid が所有者となるように sudo で実行。
ここまでで、一応動くようになっているはず。
squid ユーザで、とりあえずログ出力させながら起動してみる。
# sudo squid /usr/local/squid/sbin/squid -NCd1
※-NCd1 というのは、非デーモン、デバッグモードで起動する、というオプションです。
※実行後プロンプトに復帰しないので、停止させる場合は Ctrl + C で。
特にエラーが出ていないようなら、Windows などの PC で接続してみる。
Windows 側のインターネットの設定方法は、上述と同じで。