ちっぷす: Mac OS XをHTTPプロキシーサーバーにする
June 12, 2014
November 2, 2010
November 2, 2005
材料
- 2014年の構成
- サーバー
- Mac OS X Server 10.7.5 (intel 版) メモリ 16GB, 起動ディスク 1TB
- 最新版の Xcode は Mac OS X 10.7.5 には対応してないので、
ここから version 9.9.8 の intel 用コンパイル済みバイナリ (macosxi-dg)
をもらってくる
- クライアント
- OS X 10.9.3 Mavericks についてくる ssh (OpenSSH_6.2p2)
- 2010年の構成
- サーバー
- Mac OS X Server 10.5.8 (PPC 版) メモリ 2GB, 起動ディスク 500GB
- Xcode 3.1.4 (Mac OS X 10.5 用)
delegated のコンパイル済みバイナリを使う場合は不要
- delegate9.9.7.tar.gz
(コマンドラインから ftp コマンドでもらってくるのが楽)
- クライアント
- 2005年の構成
2014年版
もらってきた macosxi-dg をデスクトップにでも置いて、
sudo mv ˜/Desktop/macosxi-dg /usr/local/bin/delegated
などとして使う。
delegate の起動パラメータで ADMIN オプションが必須になったようなので、
設定ファイルに
ADMIN="root@host.domain"
みたいに自分のメールアドレスを指定する行を書き加える。
Mac OS X 10.7 では、delegated
起動時にそのポートへの許可を求めるウィンドウは出てこない。
リモートで CUI で起動できる。
2010年版
いつも使ってるパソコンから、それとは違う LAN セグメント上
(もしくはネットワーク的にも地理的にも離れたところ)
にあるパソコンをプロキシーサーバーにして、
ウェブアクセス (HTTP &HTTPS) は全部そのサーバー経由にするための手順。
サーバーの準備
以下、管理者ユーザーで手順を確認している (root ではない)。
サーバーの IP アドレスを 123.456.78.90、
クライアントの IP アドレスを 987.654.32.10
とする。
なお、delegate を起動すると OS がウィンドウを出すので、
サーバー側 Mac OS X の GUI を操作できる環境が必要。
- サーバーで、delegate をコンパイルする。Tar ball を展開して、make 一発。
configure なし。make しはじめると、
管理者の連絡先 e-mail アドレスを指定するところがある。
- パスの通ったディレクトリに、delegate9.9.7/src/delegated をコピー。
- delegated の設定ファイルを適当なところに置く。˜/.delegate/ とか。
ファイル名は任意。内容は以下のような具合。
SERVER=http
RELAY=proxy,delegate
PERMIT="http,https,ftp:*:987.654.32.10"
REMITTABLE="http,https,ftp"
こうすると、プロキシーをサービスするのは http, https, ftp のみになり、
クライアント 987.654.32.10 だけがこのプロキシーサービスを使えるようになる。
なお、REMITTABLE を指定せず (この行を削除する)、PERMIT
の最初の : の前を * にすると、SERVER=http
を指定したときのデフォルト設定により http, https, ftp, gopher, wais
のプロキシーをやるようになる。このとき、HTTPS はポート番号 443番と 563
番に限定される。
- で delegate デーモンを起動する。上の設定ファイルを param.txt とし、
ポート番号 13579 で HTTP プロキシーサービスを行うとすると、こんな感じ。
/usr/local/bin/delegated -P13579 +=$HOME/.delegate/param.txt
これでサービス開始。すると、サーバー側でログインしている画面 (GUI)
に右のようなウインドウが現れるので、「許可」をクリック。
- サービスの停止と再起動
- 止めるとき /usr/local/bin/delegated -P13579 -Fkill
- 再起動するときは、上の起動のコマンドラインのどこかに
-r を入れればよい。
- DeleGate はかなり個性的でかつ多機能なので、詳細については
delegate manual、
tutorial
などを参照されたい。
クライアントの準備
Mac OS X の「システム環境設定」で、プロキシーサーバーを指定する。
- 「システム環境設定」を起動し、
ウィンドウの上の方の「全てを表示」をクリックして、
「ネットワーク」をクリックする
- プロキシーを使いたいネットワーク設定を選ぶ。内蔵Ethernetとか、AirMac
とか、そんな名前のことが多い。で、「詳細…」をクリックする。
- 「プロキシ」タブをクリックする。
- 「構成するプロトコルを選択:」の下にリストアップされているプロトコルのうち、
「Webプロキシ (HTTP)」のチェックボックスをクリックして、
チェックが入った状態にする。
- 出てきた「Webプロキシサーバ」のところに 123.456.78.90
(またはサーバーのホスト名) を入れ、その横の:の右側にはサービスのポート番号
13579 を記入する。
- プロキシを通さずにアクセスしたいサイトがあったら、
そのホスト名、またはドメインの前に*.を付けたものを
「プロキシ設定を使用しないホストとドメイン」に記入する。たとえば
*.go.jp のような感じ。
- そのウィンドウの下部にある「OK」をクリックする。
- 以降、たとえば Safari からのウェブページ閲覧は、123.456.78.90
を経由して行われる。
サーバー側を上述の設定にしておくと、HTTP も HTTPS
も同じポートで受け付けるので、「保護された Web プロキシ (HTTPS)」
にもチェックを入れて同じポート番号を指定すれば、HTTPS
もプロキシー経由になる。
参考 URL
2005年版
参考文書。
deligateをコンパイルしてインストールする。
- bzip2 -dc delegate8.11.5.tar.bz2 | tar xf -
(管理者のメイルアドレスを決めておく)
- cd delegate8.11.5 && make &&
sudo cp src/delegated /usr/local/bin
起動
- /usr/local/bin/delegated -P8080 SERVER=http
ポート8080でHTTPリクエストを受けるサーバーを起動。
- delegated -P8080 -Fkill
ポート8080でHTTPリクエストを受けるサーバーを停止。
- delegated +=http://server/path/of/parameters.txt
設定ファイルを読み込んで起動。
課題
目的は、産総研内にプロキシーサーバーを設置して、
そこを経由してwebアクセスするようにすることで、産総研内の IP
アドレスで契約しているオンラインジャーナルを自宅から読めるようにすることだった。
しかし自宅から産総研内にアクセスするにはVPNサーバーを経由しなければならず、
こいつのおかげで当初の目的は達せられない。