squid は プロキシキャッシュのサービス。
オープンソース(ライセンスは GPL)。クラスプラットフォーム。ヤリイカだそうです。

ソースは 2.x まで C、3.0 から C++ になっているので注意。
3.x 系の安定バージョンは 2010年 05月 現在 3.1.3。

とりあえず使ってみる

Fedora 12 などの最近の Linux には squid をインストール時に組み込めたりする。
インストールで導入してない場合は、パッケージをインストールして使ってみる。

  1. スーパーユーザになる。
    $ su -
  2. squid をインストールする。
    # yum install squid
  3. /etc/squid/squid.conf を開いて、次の項目を変更、追加。
    • "acl CONNECT method CONNECT" の次の行くらいに以下を追記。
      acl example_net src 192.168.0.0/255.255.255.0
      ※"example_net" は何でも良い。下の http_access allow の記述に合わせる。
      ※この IP はローカル使用を想定してます。
    • "http_access deny all" の前の行に以下を追記。
      http_access allow example_net
      ※"example_net" は何でも良い。上の acl の記述に合わせる。
    • "http_access deny all" の次の行くらいに以下を追記。
      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
  4. 「システム」→「管理」→「ファイアーウォール」を開く。
  5. 画面左ペインから「その他のポート」を選択。
  6. 画面右ペインで「追加」を押して 3128 番(squid)を選択して「OK」。
  7. 「適用」を押して設定画面を閉じる。
  8. squid を起動。
    /etc/rc.d/init.d/squid start
  9. 自動起動の設定もしておく(任意)
    # chkconfig squid on

これで、このサーバを介してインターネットに接続してみる。

IE8 なら、「ツール」→「インターネットオプション」→「接続」タブ→「LANの設定」で「プロキシサーバ」のチェックボックスを ON にして、アドレスに上記で設定した Linux サーバの IPを、ポートに 3128 を設定。

Firefox の場合も 「ツール」→「オプション」→「詳細」タブ→「ネットワーク」タブの接続グループに同様の設定がある。

上記設定をして、どこかインターネットのページ(www.yahoo.co.jp とか)を開いてみる。開ければ、とりあえず動いてるということ。

コンパイルして実行してみる

今度は yum ではなく、squid のソースから導入してみる。

  1. まず、ダウンロード。
    • squid downlad
    • どこでもいいけど、ここは /home/(ユーザ名)/download に squid-3.1.x.tar.gz として保存したとする。
  2. スーパーユーザになる。
    $ su -
  3. カレントを移動する。
    # cd /home/(ユーザ名)/download
  4. ダウンロードした書庫を展開する。
    # tar zxvf squid-3.1.x.tar.gz
    ※squid-3.1.x というディレクトリができる。
  5. カレントを移動する。
    # cd squid-3.1.x
  6. configure して Makefile をつくる。
    # ./configure
  7. make する。
    # make
  8. 特にエラーがなければインストールする。
    # make install
  9. ここまでで、/usr/local/squid にインストールされているはずなので、確認。
    # ls /usr/local/squid
  10. squid 用のグループがあるか確認。
    # grep squid /etc/group
    • 見つかれば、すでにあるということ。私の環境には以下のようなグループが既にあった。
      squid:x:23:
      ※yum で squid を入れると勝手に作成されるのかな。。ちとよくわからん。
    • ない場合は作成。
      # groupadd squid
  11. squid 用のユーザがいるか確認。
    # grep squid /etc/passwd ←実際は半角です。なぜか wiki 更新できないので全角で書いてますが。
    • 私の環境には以下のようなユーザが既にいた。
      squid:x:23:23::/var/spool/squid:/sbin/nologin
    • いない場合は作成。
      # useradd -g squid -s /sbin/nologin squid
      ※明示的なログインを不可にするので、ホームディレクトリはいらんでしょう。多分。
  12. キャッシュディレクトリを作成。
    # mkdir /usr/local/squid/var/cache
  13. ロック用のディレクトリを作成。
    # mkdir /usr/local/squid/var/lock
  14. ログディレクトリを作成。
    # mkdir /usr/local/squid/var/logs
    ※これは多分インストールで作成されてると思う。
  15. キャッシュとログのディレクトリのオーナーを 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
  16. 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
        ※コメントになってるので、有効にしてパスとサイズを書き換える。
        ※ここは サイズ 1G としてますが、お好みで。
      • coredump_dir の設定変更。
        #coredump_dir /var/spool/squid
        coredump_dir /usr/local/squid/var/cache
  17. キャッシュディレクトリを作成させる。
    # 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 側のインターネットの設定方法は、上述と同じで。

起動スクリプトをつくる

調査中。

参考


MLEXP. Wiki


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS