squid は プロキシキャッシュのサービス。&br; オープンソース(ライセンスは GPL)。クラスプラットフォーム。ヤリイカだそうです。 - [[squid(公式/英語):http://www.squid-cache.org/]] -- [[Squid Versions(Download):http://www.squid-cache.org/Versions/]] - [[Squid cache (Wikipedia):http://ja.wikipedia.org/wiki/Squid_cache]] ソースは 2.x まで C、3.0 から C++ になっているので注意。&br; 3.x 系の安定バージョンは 2010年 05月 現在 3.1.3。 #contents ** とりあえず使ってみる [#pf8edc27] Fedora 12 などの最近の Linux には squid をインストール時に組み込めたりする。&br; インストールで導入してない場合は、パッケージをインストールして使ってみる。 + スーパーユーザになる。 $ su - + squid をインストールする。 # yum install squid + /etc/squid/squid.conf を開いて、次の項目を変更、追加。&br; -- "acl CONNECT method CONNECT" の次の行くらいに以下を追記。&br; acl example_net src 192.168.0.0/255.255.255.0 ※"example_net" は何でも良い。下の http_access allow の記述に合わせる。&br; ※この IP はローカル使用を想定してます。 -- "http_access deny all" の前の行に以下を追記。&br; http_access allow example_net ※"example_net" は何でも良い。上の acl の記述に合わせる。 -- "http_access deny all" の次の行くらいに以下を追記。&br; forwarded_for off -- 次の行を追記。(多分どこでも良い)&br; visible_hostname squid.example.com ※ローカルで使用する名前なら何でも良い。 -- 次の行を追記。(多分どこでも良い)&br; request_header_access X-Forwarded-For deny all request_header_access Via deny all request_header_access Cache-Control deny all + 「システム」→「管理」→「ファイアーウォール」を開く。 + 画面左ペインから「その他のポート」を選択。 + 画面右ペインで「追加」を押して 3128 番(squid)を選択して「OK」。 + 「適用」を押して設定画面を閉じる。 + squid を起動。 /etc/rc.d/init.d/squid start + 自動起動の設定もしておく(任意) # chkconfig squid on これで、このサーバを介してインターネットに接続してみる。 IE8 なら、「ツール」→「インターネットオプション」→「接続」タブ→「LANの設定」で「プロキシサーバ」のチェックボックスを ON にして、アドレスに上記で設定した Linux サーバの IPを、ポートに 3128 を設定。 Firefox の場合も 「ツール」→「オプション」→「詳細」タブ→「ネットワーク」タブの接続グループに同様の設定がある。 上記設定をして、どこかインターネットのページ(www.yahoo.co.jp とか)を開いてみる。開ければ、とりあえず動いてるということ。 ** コンパイルして実行してみる [#p052867c] 今度は yum ではなく、squid のソースから導入してみる。 + まず、ダウンロード。 -- [[squid downlad:http://www.squid-cache.org/Versions/]] -- どこでもいいけど、ここは /home/(ユーザ名)/download に squid-3.1.x.tar.gz として保存したとする。 + スーパーユーザになる。&br; $ su - + カレントを移動する。 # cd /home/(ユーザ名)/download + ダウンロードした書庫を展開する。 # tar zxvf squid-3.1.x.tar.gz ※squid-3.1.x というディレクトリができる。 + カレントを移動する。 # cd squid-3.1.x + configure して Makefile をつくる。 # ./configure + make する。 # make + 特にエラーがなければインストールする。 # make install + ここまでで、/usr/local/squid にインストールされているはずなので、確認。 # ls /usr/local/squid + squid 用のグループがあるか確認。 # grep squid /etc/group -- 見つかれば、すでにあるということ。私の環境には以下のようなグループが既にあった。 squid:x:23: ※yum で squid を入れると勝手に作成されるのかな。。ちとよくわからん。 -- ない場合は作成。 # groupadd squid + 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/lock + ログディレクトリを作成。 # mkdir /usr/local/squid/var/logs ※これは多分インストールで作成されてると思う。 + キャッシュとログのディレクトリのオーナーを squid に変更する。 # chown squid /usr/local/squid/var/cache # chown squid /usr/local/squid/var/logs # chown squid /usr/local/squid/var/run # chown squid /usr/local/squid/var/lock 或いは、こうかな。 # chown -R squid /usr/local/squid/var + squid.conf を設定する。 -- 上記 yum で設定したものがあれば /usr/local/squid/etc にコピー。 # 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 の設定を変更。 #cache_dir ufs /var/spool/squid 100 16 256 cache_dir ufs /usr/local/squid/var/cache 1024 16 256 ※コメントになってるので、有効にしてパスとサイズを書き換える。&br; ※ここは サイズ 1G としてますが、お好みで。 --- coredump_dir の設定変更。 #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 というのは、非デーモン、デバッグモードで起動する、というオプションです。&br; ※実行後プロンプトに復帰しないので、停止させる場合は Ctrl + C で。 特にエラーが出ていないようなら、Windows などの PC で接続してみる。&br; Windows 側のインターネットの設定方法は、上述と同じで。 *** 起動スクリプトをつくる [#d0567eff] 調査中。 //一番簡単なのは、yum でインストールされたスクリプトをコピーして、それを編集するという手。yum では、/var や /etc/squid にインストールされるので、このパスを /usr/local/squid/var や /usr/local/squid に書き換えれば OK。 // # cp /etc/rc.d/init.d/squid /etc/rc.d/init.d/squid_debug //とでもして、以下を置換する。 //|元のパス|変更後のパス|h //|/usr/sbin|/usr/local/squid/sbin| //|/etc/squid|/usr/local/squid/etc| //|/var/log/squid|/usr/local/squid/var/log| //|/var/run|/usr/local/squid/var/run| //|/var/lock|/usr/local/squid/var/lock| //試しに起動してみる。 // # sudo squid /etc/rc.d/init.d/squid_debug start *** 参考 [#id28b92e] - [[プロキシサーバー構築(Squid):http://fedorasrv.com/squid.shtml]] - [[Fedora 12 でプロキシサーバー構築(squid):http://ytooyama.spaces.live.com/blog/cns!916D80FD288EB35A!902.entry]] - [[Proxyキャッシュサーバ設定術―Squidの設定:http://arika.org/doc/sd.200112]] - [[squidのインストールと設定:http://www.rose.sannet.ne.jp/nterasim/linux/squidinst.html]] ----- [[MLEXP. Wiki]]