「Squid」の設定
「Squid」のインストール
FreeBSD# cd /usr/ports/www/squid/ <= 作業ディレクトリへ移動
FreeBSD# make install clean <= 「Squid」のインストール
インストールの際に聞かれるオプションは以下をチェック
[X] SQUID_SSL             Enable SSL support for reverse proxies
[X] SQUID_WCCP            Enable Web Cache Coordination Protocol
[X] SQUID_UNDERSCORES     Allow underscores in hostnames
[X] SQUID_CHECK_HOSTNAME  Do hostname checking
[X] SQUID_IDENT           Enable ident (RFC 931) lookups
[X] SQUID_ARP_ACL         Enable ACLs based on ethernet address
[X] SQUID_RCNG            Install an rcNG startup script


FreeBSD# rehash <= パスを通す
「Squid」の設定
FreeBSD# chmod 644 /usr/local/etc/squid/squid.conf <= 設定ファイルに書き込み権限付加
FreeBSD# vi /usr/local/etc/squid/squid.conf <= 設定ファイルを編集
# http_port 3128
↓
http_port 8080 <= プロキシサーバのポートを8080に変更
使用するキャッシュの設定
# cache_dir ufs /usr/local/squid/cache 100 16 256
↓
cache_dir ufs /var/log/squid/cache 1024 16 256
数値は左から
キャッシュで使用する容量(MB)
ディレクトリを分割するサブディレクトリの数
サブディレクトリを分割する数
です

ログファイルの位置を以下のように変更
# cache_access_log /usr/local/squid/logs/access.log
↓
cache_access_log /var/log/squid/logs/access.log

# cache_log /usr/local/squid/logs/cache.log
↓
cache_log /var/log/squid/logs/cache.log

# cache_store_log /usr/local/squid/logs/store.log
↓
cache_store_log /var/log/squid/logs/store.log


# pid_filename /usr/local/squid/logs/squid.pid
↓
pid_filename /var/run/squid.pid <= プロセスIDを格納するファイルを指定

# ftp_user Squid@
↓
ftp_user kaz@crimson-snow.net <= FTPのanonymousでログインする時のメールアドレス
LAN内のPCのみ許可するため、以下のように追加
acl CONNECT method CONNECT
acl localnet src 192.168.0.0/255.255.255.0 <= 追加(localnetの設定)

http_access allow localnet <= 追加(localnetを許可)
http_access deny all


visible_hostname FreeBSD.crimson-snow.net <= 追加(ホスト名(FQDN)を設定)

# forwarded_for on
↓
forwarded_for off <= プロキシサーバのマシンのローカルIPアドレスを隠す
プロキシ経由でアクセスしていることをアクセス先に知られないようにする為、以下のように編集
#               header_access Cache-Control allow all
                ↓
                header_access Cache-Control deny all <= 変更
                header_access X-Forwarded-For deny all <= 追加
                header_access Via deny all <= 追加

# error_directory /usr/local/etc/squid/errors/English
↓
error_directory /usr/local/etc/squid/errors/Japanese <= 日本語のエラーページにする
「Squid」起動の為の準備

デフォルトの設定から変えたので、起動前に多少の準備が必要です。

ディレクトリとファイルの作成

必要なディレクトリとファイルを作成し、所有者を変更します。

FreeBSD# mkdir /var/log/squid
FreeBSD# mkdir /var/log/squid/cache
FreeBSD# mkdir /var/log/squid/logs
FreeBSD# touch /var/log/squid/logs/access.log
FreeBSD# touch /var/log/squid/logs/cache.log
FreeBSD# touch /var/log/squid/logs/store.log
FreeBSD# chown -R squid:squid /var/log/squid

キャッシュディレクトリの作成

「Squid」が利用するキャッシュディレクトリを作成します。

FreeBSD# /usr/local/sbin/squid -z
「Squid」の起動
FreeBSD# /usr/local/sbin/squid -D

「Squid」の自動起動

標準の起動スクリプトでは動作しないため、FreeBSD起動時に「Squid」が起動するように以下のように変更します。

FreeBSD# vi /usr/local/etc/rc.d/squid.sh <= 起動スクリプトの編集
起動スクリプトの中身を以下のように全て書き換える
#!/bin/sh

command=/usr/local/sbin/squid
squid_flags="-D"
squid_user=squid

case $1 in
start)
      echo -n 'Starting squid';
      ${command} ${squid_flags}
      ;;
stop)
      echo -n 'Stopping squid'
      ${command} -k shutdown
      while ps -xcU ${squid_user} | grep -q ${squid_user}; do
              sleep 1
      done
      ;;
'restart')
      $0 stop
      sleep 3
      $0 start
      ;;
*)
      echo "usage: ${0##*/} {start|stop|restart}" >&2
      exit 64
      ;;
esac
exit 0
ログのローテーション

「Squid」が起動している状態で行います。

FreeBSD# /usr/local/sbin/squid -k rotate

ログのローテーションの自動実行

FreeBSD# vi /etc/crontab <= 設定ファイルの編集
30 2 * * * squid /usr/local/sbin/squid -k rotate <= 追加
▲ページのトップへ