| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
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 <= パスを通す |
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 <= 日本語のエラーページにする
|
デフォルトの設定から変えたので、起動前に多少の準備が必要です。
ディレクトリとファイルの作成
必要なディレクトリとファイルを作成し、所有者を変更します。
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 |
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 <= 追加 |