Squidプロクシサーバのインストール @ Mac OS X


せっかく SSD 使ってるんだから高速なプロクシサーバとして運用してみよう。ってことで Squid をインストール。いつもの通り、MacPorts にお任せだ。

$ sudo port install squid3

〜省略〜

###########################################################
# A startup item has been generated that will aid in
# starting squid3 with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.Squid.plist
###########################################################
--->  Installing squid3 @3.0.STABLE21_0
--->  Activating squid3 @3.0.STABLE21_0
--->  Cleaning squid3

説明にある通り、「sudo launchctl 〜」で起動ができるが、その前に squid.conf の設定だ。

squid.conf の設定

設定ファイルは /opt/local/etc/squid/squid.conf にある。説明を読みながら次の項目を設定した。

auth_param digest program /opt/local/libexec/squid/digest_pw_auth /opt/local/etc/squid/digpass
auth_param digest children 5
auth_param digest realm Squid proxy-caching web server
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50
acl password proxy_auth REQUIRED
http_access allow password
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
visible_hostname remora.cx

Digest 認証の設定(1 行目〜 8 行目)

1 行目〜 6 行目は認証の設定だ。手軽でセキュリティレベルも高い、 Digest 認証を使っている。このサイトが参考になった。

Squidで認証 – PC日記

http://www.wizard-limit.net/mt/pc/archives/001570.html

参考:Digest認証

http://ja.wikipedia.org/wiki/Digest%E8%AA%8D%E8%A8%BC

/opt/local/etc/squid/digpass と言うファイルに「ユーザー名:パスワード 」の形式で書き込んだ。後は 7 行目〜 8 行目で認証によるアクセスを可能にする。

HTTP 環境変数の設定(9 行目〜 10 行目)

余計な HTTP環境変数が出ないようにする。「HTTP_VIA」はクライアントの IP アドレスを表示し、「HTTP_X_FORWARDED_FOR」にはプロクシサーバの情報が載る。別にローカルのアドレスを知られたところでどうってことはないのだが、何となく気持ち悪いので……。

プロクシサーバのホスト名の設定(11 行目)

これがないと起動時に怒られます。

起動!

では、設定が終わったので起動しよう。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.Squid.plist

これで、システムへの登録と最初の起動が完了する。もし squid.conf を変更したときは次のコマンドで終了・再起動を行う。

$ sudo launchctl stop org.macports.Squid

注意すべきなのは、起動するときも同じコマンド、つまり「stop」だと言うことだ。これに気づかず最初はハマった。

OS の設定

最後に、Mac OS X の設定でプロクシを有効にしよう。「システム環境設定」→「ネットワーク」→「詳細」→「プロクシ」と進んで以下の画像のように設定する。

100303-0006.png

「プロクシ設定を使用しないホストとドメイン」は各自の環境に合わせて代えた方がいいだろう。

Time Machineでバックアップしないようにする

これはおまけの設定。Squid のキャッシュをバックアップする必要はないので、「Time Machineでバックアップされないファイルたち | blog.delphinus.dev」で説明した通り、設定ファイルを変更しておく。

$ cd /System/Library/CoreServices/backupd.bundle/Contents/Resources
$ sudo vim StdExclusions.plist

ハイライトした部分を追加する。

    <key>ContentsExcluded</key>
    <array>

〜省略〜

        <string>/System/Library/Caches</string>
        <string>/System/Library/Extensions/Caches</string>
        <string>/opt/local/var/squid/cache</string>
    </array>

コメントを残す