PROXYサーバーの構築(squid)

1.はじめに

PROXYサーバーは皆さんも御存知かと思いますが、会社などはPROXYを当然のように使います。
またプロバイダーでも用意している所が有りますが、確かに大人数で使用すると効果も上がりますが
PROXYサーバー自体が混み合うこともあります。
ここでは自宅サーバーをPROXYにします。
自宅内でもよく見るページなどはキャッシュされるので外部とのデータ量が減り効果もあります。
また家族で複数の端末などが有る場合も効果が有るでしょう。

2.インストール

まず、一番有名なsquidを使用して見ましょう。
インストールはportsから入れます。
# cd /usr/ports/www/squid
# make install clean
初めての場合はオプション選択画面が出て来ます
あえて設定し直したい時は「make config」で設定しましょう
私がONしたのは
SQUID_WCCP SQUID_UNDERSCORES SQUID_CHECK_HOSTNAME SQUID_IDENT SQUID_RCNG
です、たぶんデフォルトだと思います。

3.設定

Webminから設定してしまうとこれまた簡単に設定できますが、とりあえずいつも通り主動の場合を説明します。
設定ファイルは以下のとおりです
/usr/local/etc/squid/squid.conf を編集する
# ポート番号3128なども使う場合があります
http_port 8080

# FTPアドレスの場合PASVにするか
ftp_passive on

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

# キャッシュのディレクトリー
#2048はキャッシュサイズ(2GB)
cache_dir ufs /usr/local/squid/cache 2048 16 256

# アクセス制限
acl local src 192.168.1.0/24
acl all src 0.0.0.0/0
http_access allow local
http_access deny all
icp_access allow local
icp_access deny all

# ftpアドレスの場合anonymousでパスワードに
# メールアドレスを送るデフォルト
ftp_user freebsd@hogehoge.org

# squidを動作させるユーザ
cache_effective_user squid
cache_effective_group squid

# 通過させる内容(ローカル名やIPなどを隠す)
# 通常はこの下はなくてもよい
# 以下は最低限これくらい流さないとWindowsUPDATEや掲示板などに書き込めない
header_access Allow allow all
header_access Authorization allow all
header_access Cache-Control allow all
header_access Content-Encoding allow all
header_access Content-Length allow all
header_access Content-Type allow all
header_access Expires allow all
header_access If-Modified-Since allow all
header_access Last-Modified allow all
header_access Location allow all
header_access Pragma allow all
header_access Accept allow all
header_access Accept-Charset allow all
header_access Accept-Encoding allow all
header_access Accept-Language allow all
header_access Mime-Version allow all
header_access Retry-After allow all
header_access Title allow all
header_access Connection allow all
header_access Proxy-Connection allow all
header_access Referer allow all
header_access Server allow all
header_access User-Agent allow all
header_access Cookie allow all
forwarded_for off
#ホスト名
visible_hostname hogehoge.org

4.キャッシュのビルド

とりあえず誰でも動くようにユーザーはnobodyのまま説明を続けます
次に、キャッシュを構築しなければなりません。
簡単なのはwebminからですとボタン1発です。
手動の場合は
# cd /usr/local/squid
# chown -R nobody:nogroup cache
# chown -R nobody:nogroup logs
# /usr/local/sbin/squid -z
ここでキャッシュ構築が始まります。
時間がかかる場合がありますので気長に待ちましょう。

5.起動

構築が終わりましたら起動します。
/usr/local/etc/rc.d/squid.conf
を見れば分かりますが/etc/rc.confに
squid_enable="YES"
を入れればOKです
このように変更しておけば
# /usr/local/etc/rc.d/squid start
で立ち上がると思います。
あとはクライアントマシンの設定でPROXY設定すれば完了です。