せっかく 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認証
/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 の設定でプロクシを有効にしよう。「システム環境設定」→「ネットワーク」→「詳細」→「プロクシ」と進んで以下の画像のように設定する。
「プロクシ設定を使用しないホストとドメイン」は各自の環境に合わせて代えた方がいいだろう。
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>