早くも12月末日(大晦日)で書くのをさぼっていたのがモロバレですがようやく調べたいことを調べる時間が出来たので。今更な事ですが、Windowsのプロクシサーバーを立てたいなーと考えていました。
事の発端はブログを公開しているSaaSであるLolipopから一通のメールを貰いました。
自分自身、管理者画面に入ることは稀ではあるので多分アタックなのでしょうね。アタック自体は特に問題が無いのですが、厄介な事は管理者画面のアクセス禁止法方がhtaccessによるというもの。IPアドレス制限 or DNS逆引きによる解決となるので例えば、PC・携帯(MVNO、キャリアなど)複数のアクセス手段を持つ場合には非常に設定が面倒なのです。
これを一本化するのであれば私の場合はVPNがあるので、VPN経由のHTTP-Proxyさせれば自宅IPのみフィルタすれば安全なわけですよね。とは思いつつもここ数年でのWindowsにおけるプロクシ事情はさっぱりなのでざっと調べてみました。
- Forefront Threat Management Gateway (TMG) … [有償] 次期バージョンが無く、2015年までのサポートだけが決まっている状態
- Squid … 昔からおなじみの通称イカ。非常に高レスポンスを誇るProxyサーバー
- DeleGate … 日本製の多機能(POP, IMAP, etc…)Proxyサーバー
- WinGate … [有償] アクティビティモニタは勿論、アンチウィルス(Kaspersky)やVPNインテグレーションを幅広くサポート
の4つが有力そうです。ぶっちゃけやりたいことなんて上記の通り相手側(Loliop)から見たIPが自宅のIPになればいいのでどれでもいいと言えば良いです。って事で日本製のDeleGateの導入。
1. 公式サイトからダウンロード
DeleGateの公式サイトからバイナリでのダウンロードをします。展開場所はどこでも良いようなのですが、VPNサーバー上にサービスとして展開するので C:\Windows\DeleGate にしました。よってパッケージまでのパスは C:\Windows\DeleGate\DGROOT になります。
2. 構成ファイルの作成
今回はHTTPのみのプロクシを行えば良いのですが、ログも一応は吐いて欲しいしローテーションもして欲しいので以下のファイルを準備します。confファイルはbinディレクトリからの指定となるようなのでフォルダ分けをして C:\Windows\DeleGate\DGROOT\bin\conf\http.conf としています。そして肝心の中身はこんな感じ。
ADMIN=root@localhost # mail-address of the administrator of this DeleGate
SERVER=http # the protocol DeleGate speaks with its clients
-P8080 # the entrance port on which DeleGate waits clients
LOGDIR=${DGROOT}/log # directory under which logfiles are located
LOGFILE=${LOGDIR}/HTTP/${PORT}.log.[date+%d] #
3. サービスの登録と実行
構成ファイルを指定して実行すると(場合によっては3つの)以下が聞かれます。
C:\Windows\DeleGate\DGROOT\bin>con32-dg9_9_13.exe +=conf/http.conf
- [既にサービス登録されている場合] 既存のサービスを削除するか?
- 新しいサービスとして登録するか?
- スタートアップサービスとして登録するか?
基本的には全て”y”と答えて問題ありません。上記が完了したら自動起動されているはずなのでservices.mscから DeleGate Server –P8080 が実行されていることを確認します。
4. ファイヤーウォールの設定
Windows Serverの場合は場合によってポートを開放しないとローカルホストのみしかProxyできませんので、Windows Firewallに対して穴を空けます。ポートの指定でもよいのですが、HTTP以外に空ける場合、ポートの変更したい場合を加味してプログラムに対してアクセスを許可します。
対象のプログラムを許可する以外には特にすることはありません。セキュリティを気にするのであればプロファイルをドメイン・プライベートに絞っておきましょう。
5. プロクシの確認
というわけで、プロクシ経由でアクセスできるかどうか確認します。お好きなブラウザでプロクシ先を今回設定したPCのIP + ポート番号に向けてあげるだけです。
というわけで、全ての準備が整いました。後はiPhoneからのVPN設定でプロクシを設定してあげれば、VPN経由でIPが自宅IPによるWebアクセスが可能でしょう!、というはずでした・・・・。
が、非常に残念なことにVPN接続をしてから通常のHTTPアクセス(safari上)をすると自宅のゲートウェイを通っているっぽいです。(=プロクシをする必要が無し)
VPN接続環境は以下の通り。
- サーバー: Wiindows Server 2012 R2 (L2TP)
- クライアント: iPhone 5s (OCNモバイルONE, iOS 7.0.6)
また、DeleGateログは以下の通り
- Wi-Fi + プロクシ無し : ログは流れない + Lolipopアクセス可能
- Wi-Fi + プロクシ有り : ログ有り+ Lolipopアクセス可能
- 3G のみ : Lolipopアクセス不可能
- 3G + VPN + プロクシ無し : ログは流れない + Lolipopアクセス可能
- 3G + VPN + プロクシ有り : ログ有り + Lolipopアクセス可能
VPNのプロクシ設定自体は生きているっぽいので正しいのですが・・・、目的の為にProxyを立てた意味は皆無だったようです。まぁ、2chまとめとかで邪魔な広告だったりiOSアプリでもトラッキングとかでユーザーが意図しない情報が盗られてはいるのでプロクシサーバーがあるに越したことはないでしょう。
というわけで、年末滑り込みのネタでしたとさ。