「Squid」の設定
「Squid」のインストール

「Squid」用のユーザを作成します。

Solaris# groupadd -g 3128 squid
Solaris# useradd -u 3128 -g squid -d /usr/local/squid -s /bin/false squid

「Squid」のソースファイルをダウンロードし、インストールします。

Solaris# mkdir /usr/local/src/squid <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/squid <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる
Solaris% cd /usr/local/src/squid <= 作業用ディレクトリへ移動
Solaris% wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE10.tar.gz
 <= 「Squid」のソースをダウンロード
Solaris% gunzip -c squid-2.5.STABLE10.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd squid-2.5.STABLE10 <= 展開したディレクトリに移動
Solaris% ./configure --enable-snmp --enable-err-languages=Japanese \
--disable-ident-lookups --enable-underscores |& tee configure.log

Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール
「Squid」の設定
Solaris# vi /usr/local/squid/etc/squid.conf <= 設定ファイルの編集
# http_port 3128
↓
http_port 8080 <= プロキシサーバのポートを8080に変更

使用するキャッシュの設定
# cache_dir ufs /usr/local/squid/var/cache 100 16 256
↓
cache_dir ufs /var/log/squid/cache 1024 16 256
数値は左から
キャッシュで使用する容量(MB)
ディレクトリを分割するサブディレクトリの数
サブディレクトリを分割する数
です。

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

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

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

# pid_filename /usr/local/squid/var/logs/squid.pid
↓
pid_filename /var/log/squid/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
ここまで

# cache_effective_user nobody
↓
cache_effective_user squid <= 実行ユーザを指定

cache_effective_group squid <= 追加(実行グループを指定)

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

# forwarded_for on
↓
forwarded_for off <= プロキシサーバのマシンのローカルIPアドレスを隠す

以下を追加(プロキシ経由でアクセスしていることをアクセス先に知られないようにする為)
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all
ここまで

# error_directory /usr/local/squid/share/errors/English
↓
error_directory /usr/local/squid/share/errors/Japanese <= 日本語のエラーページにする

coredump_dir /usr/local/squid/var/cache
↓
#coredump_dir /usr/local/squid/var/cache <= コメントアウト(コアダンプは残さない)
「Squid」起動の為の準備

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

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

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

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

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

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

Solaris# /usr/local/squid/sbin/squid -z
「Squid」の起動
Solaris# /usr/local/squid/bin/RunCache &

「Squid」の自動起動

起動スクリプトファイルを作成し、Solarisを起動する際に自動的に「Squid」を起動するようにします。

Solaris# vi /etc/init.d/squid <= 起動スクリプトの作成
#!/sbin/sh

PID=`/usr/bin/ps -aef | /usr/bin/grep RunCache | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}'`

case "$1" in
'start')
        if [ -f /usr/local/squid/bin/RunCache ]; then
                if [ $PID ]; then
                        echo "Squid has started"
                else
                        /usr/local/squid/bin/RunCache &
                        echo "Running: Squid"
                fi
        fi
        ;;

'stop')
        if [ $PID ]; then
                kill -KILL $PID
                kill -KILL `cat /var/log/squid/squid.pid`
                echo "Stopping: Squid"
        else
                echo "Squid has stopped"
        fi
        ;;

'restart')
        $0 stop
        sleep 3
        $0 start
        ;;

'status')
        if [ $PID ]; then
                echo "Squid starts"
        else
                echo "Squid stopped"
        fi
        ;;

*)
        echo "Usage: $0 { start | stop | restart | status }"
        exit 1
        ;;
esac

exit 0


Solaris# chmod 744 /etc/init.d/squid <= 起動スクリプトファイルに実行権限付加
Solaris# ln /etc/init.d/squid /etc/rc2.d/S99squid <= ランレベル2で起動する
Solaris# ln /etc/init.d/squid /etc/rc3.d/S99squid <= ランレベル3で起動する
Solaris# ln /etc/init.d/squid /etc/rc0.d/K99squid <= ランレベル0で停止する
ログのローテーション

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

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

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

Solaris# crontab -e <= 設定ファイルの編集
30 2 * * 1 /usr/local/squid/sbin/squid -k rotate <= 追加(毎週月曜日に実施)
▲ページのトップへ