このページでは、squid(version 2)を利用してPROXYサーバを構築する方法について説明します。
squidはデフォルトでシステムにインストールされていませんので、別途システムにインストールする必要があります。
インストールはportsを利用して行います。
portsの取得および展開方法については、「最新のportsを取得して展開する」を参照してください。
portsの展開が完了した後、下記手順でsquidをmakeし、インストールします。
$ cd /usr/ports/www/squid $ make config-recursive $ make install clean
ビルドとインストールが完了したら、squidの唯一の設定ファイルである「/usr/local/etc/squid/squid.conf」を下記の通り編集します。
auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl our_networks src 192.168.16.0/24 acl SSL_ports port 443 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow our_networks http_access deny all http_reply_access allow all icp_access allow all http_port 8080 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? cache deny QUERY cache_mem 16 MB cache_dir ufs /home/squid/cache 512 16 256 minimum_object_size 512 KB maximum_object_size 65536 KB cache_swap_low 90 cache_swap_high 95 access_log none cache_log /home/squid/cache.log mime_table /usr/local/etc/squid/mime.conf pid_filename /home/squid/squid.pid debug_options ALL,1 client_netmask 255.255.255.255 ftp_user squid@kishiro.com refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl apache rep_header Server ^Apache broken_vary_encoding allow apache cache_effective_user squid append_domain .kishiro.com coredump_dir /home/squid/cache
「squid.conf」は150KBを越える非常に巨大なファイルですが、実際にユーザが設定する箇所はそれほど多くはありません。
上記の内容を設定しておけば、通常の使用には困らないはずです。
以下に必要と思われる最低限の設定について説明します。
上記設定ファイル内の「acl」および「http_access」「http_reply」「icp_access」等は、squidサーバに対してのアクセスに関連する設定部分です。
先頭が「acl」で始まる箇所は、それぞれ第2パラグラフで指定されているパラメータを、第3および第4パラグラフで設定しています。
たとえば、「acl our_networks src 192.168.16.0/24」の行では、「our_networks」という値を「ソースのポートが192.168.16.0/24からのパケット」と定義しています。
続いての、「http_access」から始まる複数の行は、squidサーバに対してのアクセスルールを定めています。
これらの定義は、ipfwによるfirewallルールと同様に、上から順番に評価されます。
「http_port」は、squidを動作させるport番号の指定です。
上記の例では、一般的なPROXYサーバにあわせ、8080番portに指定しています。
続いて、squidの設定の中で一番重要な、キャッシュそのものに関する設定の部分になります。
「cache_mem」では、メモリ上に確保されるキャッシュのサイズを指定します。
また、「cache_dir」では、ディスク上に保存されるキャッシュに関する設定を行います。
上記の例では、トータルサイズが512MB、ディレクトリ階層が16×256のキャッシュを生成して利用します。
「minimum_object_size」には、キャッシュに格納するファイルの下限のサイズを指定します。
小さいファイルはネットワークの帯域がある程度あれば、取得に時間が掛からないため、ある程度の大きさを指定しておくことをお勧めします。
最後に、「maximum_object_size」には、キャッシュに格納するファイルの上限のサイズを指定します。
限られたキャッシュサイズを有効に使うことを考えると、あまりにも大きいファイルをキャッシュに格納しておくのはあまりよいことではありません。
こちらも、ご利用になる環境にあわせ、適当な値を指定してください。
続いて、ログに関する設定の部分になります。
「access_log」では、クライアントであるUserAgentが、squidにアクセスした際のログの保存先を指定します。
小規模なイントラネット内のマシンに対してPROXYサービスを提供する、ごく一般的なsquidの一般的な用途では、access_logを取る必要はあまりないので(イントラネット内のクライアントを信用していない場合は別ですが…)、上記の例では「none」を指定しています。
一方、「cache_log」は、squidが自分のキャッシュの中にファイルを取り込む際のログの保存先を指定します。
上記以外の設定で必要そうなのは、「ftp_user」と「append_domain」の二つです。
前者は、squidがftpサーバ上のファイルを取得する際、ftpサーバに送信するメールアドレスになります。
後者は、UserAgentがドメイン名を省いてsquidサーバに要求を投げた際に、squid側が補完するドメイン名を指定します。
上記までで設定ファイルの編集は終わりですが、squidを実際に動かす前に、実際にファイルがキャッシュされるキャッシュフォルダを作成する必要があります。
以下のようにしてキャッシュフォルダを作成してください。
$ squid -z
squidは、「squid.conf」の「cache_dir」に設定した値に基づき、キャッシュフォルダを生成します。
「cache_dir」で指定されたディレクトリが存在しない場合、上記のコマンドは失敗しますので、あらかじめディレクトリを作成し、そのオーナー/グループを「squid/squid」に設定しておいてください。
最後に、システムの起動時にsquidが自動的に起動するよう、「/etc」に格納されている設定ファイル「rc.conf」に下記の記述を追記します。
squid_enable="YES"
この設定により、システム再起動時にsquidが自動的に起動するようになります。
・「squid -z」が失敗する際の対応方法について追記。
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。