squidのインストール・設定

インストール

FTPサイトからsquid-*.*.tar.gzをダウンロード
> gzip -d squid-*.*.tar.gz
> tar -xvf squid-*.*.tar
> cd squid-*.*
> ./configure --prefix=<PATH>
> make all
# make install

設定

<PATH>/etc/squid.confを編集
重要なもの
アクセスを受け付けるHTTPポートの指定
http_port <Post Number>

内部ネットワークのドメイン(直接接続するドメイン・サーバ)の設定
acl local-servers dstdomain <DOMAIN/HOST> <DOMAIN/HOST> ・・・

注意: squid-1.xでは、dstdomainでドメインを指定する。squid-2.xでは、dstdomainでURLのホスト部分を指定する。これだけだと面倒なことが多いのでurl_regexを使う。url_regexでは正規表現を用いて指定することができる。

他のキャッシュ/プロキシサーバと階層構造を組む場合
cache_peer <HOSTNAME> <Tipe> <HTTP Port> <ICP Port>

FTP接続の場合はProxyを介さない場合
acl FTP proto FTP
always_direct allow FTP

以上でだいたい設定は終わり。環境によっては、always_directやnever_directの使い分けや順番がややこしいです。場合によってはcacheやパケットのサイズをちゃんと設定しないと不具合が生じるかもしれません。セキュリティポリシーによって、受け付けるホストやポートを制限しましょう。

初期化

> bin/squid -z

オペレーション

起動
> bin/squid -D

再起動
> bin/squid -k reconfigure

停止
> bin/squid -k shutdown

特別な設定

SSLを使用するための設定

外部ネットワークとSSLで通信をするためには
acl SSL method CONNECT
never_direct allow SSL
という2行を書き加える。ただし内部ネットワークとSSL通信するときはdirectで接続しなければならないので、内部ネットワークの設定の記述よりも後に書く。

CGI, PHP, ASPなどが使えないときの対処法

acl POST method POST
never_direct allow POST
といった記述を加える。SSLのときと原理は同じ。

特定のサイトに対してcacheを使わずに通信したいとき

hierarchy_stoplist <PATH> <PATH> ・・・
といった感じでURLを並べていく。

おまけ

Proxyを介してFTPをするとき、Netscapeだとデフォルトの設定でうまく動作しても、Internet Explorerだとうまくいかないときがある。そういう場合は、まず
「ツール」→「インターネットオプション」→「詳細設定」→「セキュリティ」 フィールド内の「Fortezzaを使用する」のチェックを解除。

更に、それぞれのバージョンによって、以下のように設定を変更する。

未確認だが、Internet Explorer 4.01 Service Pack 2以前のブラウザではProxyを通して外部へFTP接続することはできないと思われる。ブラウザのバージョンアップをした方がいいでしょう。