home FreeBSD Bike Misc Memorandum About

jailでsquid

squidのインストール

 例によってportsからインストールします。まだ公式にはIPv6対応になっていないようです。http://devel.squid-cache.org/ipv6/に情報があります。

# cd /usr/ports/www/squid24
# make install

ユーザの登録

 squidを動かすユーザを登録します。(必須ではないです)

# vipw
squid:*:90:90::0:0:Squid Manager:/nonexistent:/sbin/nologin
# vi /etc/group
squid:*:90:

squid.confの編集

 /usr/local/etc/squid/squid.confを編集します。最低限設定が必要である(と思われる)のは以下の通りです。

http_port
httpプロキシがListenするポートです。デフォルトでは3128。よく設定されるのは8000や8080などでしょうか。

cache_mgr
local cache managerとしてメイルを受け取るメイルアドレスです。デフォルトではwemanagerです。

cache_effective_user
cache_effective_group
squidを実行するユーザです。私はユーザsquidとしています。

アクセス制限(squid.confの編集)

 内部LANのみにsquidにアクセス可にしましょう。デフォルトではどこからもアクセス不可になっていると思います(http)。ACCESS CONTROLSというセクションを編集します。

acl f-bell.net src 192.168.1.0/255.255.255.0
192.168.1.0/24からのアクセスをf-bell.netをハンドラとして制御します。
http_access allow f-bell.net
httpでのアクセスをf-bell.netで定義されたものからは許可します。

squid.conf内のアクセスコントロールでは、上側に記述した式が優先して評価されるので、以下の記述をした場合、(I)httpアクセスをどこからも拒否する。(II)でもf-bell.netで定義されたところからのアクセスは許可しますよ、という設定をしたことになります。

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access allow f-bell.net
#
# And finally deny all other access to this proxy
http_access deny all

 これで普通ならばこれでうまくいくと思うのですが、jail環境内ではうまくいきません。

jailでsquid

 まず、squidがudpをそのjailに割り振っているIPに向けるようにします。これはsquidの名前解決をするのにudpを使うのですが、そこでこけるためです。エラーは以下の通り、

2002/05/26 18:40:05| comm_udp_sendto: FD 4, 192.168.1.1, port 53: (22) Invalid argument
2002/05/26 18:40:05| idnsSendQuery: FD 4: sendto: (22) Invalid argument

 解決策は、以下の設定をsquid.confに加えることです。

udp_outgoing_address squidのjail環境に振っているIP

 ここまではsquidのFAQを調べればわかります。英語で書かれてありますけれども。しかし、これだけではだめでした。このときのエラーは、

2002/05/26 18:42:26| commBind: Cannot bind socket FD 13 to 192.168.1.5:3130: (48) Address already in use

仕方が無いので、以下の設定を追加しました。

icp_port 0

 icp(ポート3130を使用する)を使わない、という設定です。icpはcacheの階層構造に参加するために使うプロトコルだと思ったのですが、これを利用しないということでキャッシュの階層構造には参加できなくなると思います(実際にやっていないのでわかりません)。

 以上でjail環境内でsquidを使うための設定をおわります。

説明

FreeBSD4.5-Release

httpのキャッシュサーバであるsquidをインストールします。

jail環境内で動かそうとすると少し標準よりいじらなければなりません。

2002/05/26

Creative Commons License
This work is licensed under a Creative Commons License.