2011年06月12日(日)
フレッツ光プレミアム+AirMac Extreme+Mac OS XでVPN環境を構築したときのオレメモ [Mac鯖管理]
Mac OS X ServerにはVPNサーバ機能がビルトインされているけど,クライアント版にはザンネンながら設定用のインターフェイスがナイのですね(VPN接続機能はもちろんある)。サービス自体は標準で組み込まれているので,コマンドラインでごにょごにょすればコストをかけずにVPNサーバを立ち上げることは(たぶん)可能だけど,正直面倒なのでここではシェアウェアに多少の“お布施”を払いつつ,フレッツ光プレミアム+AirMac Extreme+Mac OS Xというマイ自宅のネットワークでVPN環境を構築したときの自分メモを書いておきます。
※参考にされる場合は,とーぜんながらat your own riskでヨロシク。
はじめに
Apple純正ワイヤレスルータことAirMac Extreme(以下ベースステーション)の現行バージョンには,あいにくVPNサーバ機能が内蔵されていないンですな。ただ,VPNパススルーはサポートされているので,LAN側のPCでVPNサーバを立ち上げ,しかるべきポートマッピングをしてやければ,外部からVPN接続することは可能です。
ただ,フレッツ光でインターネットに接続する場合,通常CTUと呼ばれる装置がルータ機能を担うため,ベースステーションはブリッジ接続(スイッチングハブ的な使い方)になってしまい,VPN接続に必要なネットワーク設定ができないのデス。そのため,CTUの設定画面からPPPoE機能を有効化し,ベースステーション本体からPPPoE接続するように設定を変えてみたのですが,私の環境だとどうやってもうまく動かないのですねー。また,ひかり電話も使っているので,CTUのルータ機能(というかDHCPサーバ機能)を切るのもマズかろうということで,こちらのサイトの情報を参考に,CTUで受けた(ひかり電話以外の)すべてのパケットをLAN側のベースステーションに転送するようにCTUの設定を変えてみました。VPNサーバを含むLAN側のマシンはベースステーションのLANポートに接続することになるため,見かけ上多段NAT構成になるのですが,とりあえず目をつぶることにします(^ ^;)。文章だけだと分かりにくいので,環境構築後の機器の配置図をチャートに書いてみました。ざっとこんな感じ。
手順
1. CTUがベースステーションに割り当てる IPアドレスを固定化するため,WebブラウザからCTU設定ページを開き,TOP>詳細設定>DHCPサーバ機能設定(LAN側固定IP払い出し)から,ベースステーションのMACアドレスと固定割り当てしたいIPアドレスを指定します(本例では192.168.24.3に払い出している)。ベースステーションのMACアドレスは,本体の裏蓋を見るか,AirMac ユーティリティ.app>AirMac>概要>Ethernet IDを確認してくださいな。
2. 同じくCTU設定ページのTOP>詳細設定>静的アドレス変換設定(ポート指定)から,ポートマッピング設定を行います。下図を参考に,1.で払い出しの指定を行ったベースステーションの(WAN側)IPアドレスに,すべてのプロトコルとすべてのボート番号(0〜0)を転送するよう設定します。
設定が終わったら,TOPページから『設定反映』ボタンをクリックするのをお忘れなく。
3. 続いてAirMac ユーティリティ.app(/アプリケーション/ユーティリティ)を立ち上げ,設定を行うベースステーションを選択し,『手動設定』ボタンをクリックします。さらにインターネット>インターネット接続> を開き,以下の設定を行います。
- 接続方法:Ethernet
- Ethernet WANポート:自動(デフォルト)
- 接続共有:パブリック IP アドレスを共有
4. インターネット>TCP/IP では,以下のように設定します。
※ベースステーションに割り当てた払い出しIPアドレスが異なる場合は,適当に読み替えてください。
- IPアドレス:192.168.24.3
- サブネットマスク:255.255.255.0
- ルーターアドレス:192.168.24.1
- DNS サーバ:192.168.24.1
5. インターネット>DHCP の設定はお好みですが,私の場合,以下のように設定しています。
- DHCPの開始アドレス:10.0.1.51 ※深い意味はナイ
- DHCPの終了アドレス:10.0.1.100 ※同上
- DHCP リース:4時間
- DHCP メッセージ:<空白>
- LDAP サーバ:<空白>
- DHCP の予約:10.0.1.2(VPNサーバ用)
6. 詳細>ポートマッピング を開き,『編集』ボタンをクリックし,VPNサーバへのポート変換設定を行います。VPN接続にPPTPプロトコルを使用する場合は,パブリック/プライベート TCPポートに“1723”を指定します。
- サービス:未選択
- パブリック UDP ポート:<空白>
- パブリック TCP ポート:1723
- プライベート IP アドレス:10.0.1.2 ※適宜読み替える
- プライベート UDP ポート:<空白>
- プライベート TCP ポート:1723
なお,よりセキュアなL2TPプロトコルを使う場合は,以下のポートマッピング設定を行います。ただし,MobileMeの“どこでも MyMac”機能を使用している場合は,ポート番号が干渉するかもしれません(ので,今回はPPTPで接続することに)。
- サービス:未選択
- パブリック UDP ポート:500, 1701, 4500
- パブリック TCP ポート:<空白>
- プライベート IP アドレス:10.0.1.2 ※適宜読み替える
- プライベート UDP ポート:500, 1701, 4500
- プライベート TCP ポート:<空白>
7. ここまで設定したら,CTUのLANポートからAirMacのWANポートにLANケーブルが刺さっていることと,VoIPアダプタ以外のLAN側の機器がベースステーションのLANポートないしWi-Fiで接続されていることを確認し,『アップデート』ボタンをクリックします。
8. LAN側のマシンからインターネットに繋がらない場合は,システム環境設定>ネットワーク を開き,Ethernet(またはAirMac)>詳細>TCP/IP から『DHCP リースを更新』ボタンをクリックし,IPアドレスの割当をクリアします。また,DNSサーバのIPアドレスが“10.0.1.1”(ベースステーションのLAN側のIPアドレス)になっていることもチェックしてください。
【余談】
このネットワーク構成に変更してから,一部のサイトの接続が極端に遅くなる現象が発生してしまいました。私の環境だけの問題かもしれませんが,気になる場合は,システム環境設定>ネットワーク>Ethernet(またはAirMac)>詳細>Ethernet の「構成」を“手動”に変更し,MTU値を“1438”に変更してみてください(※フレッツ光プレミアムの場合)。また,DNSサーバのIPアドレスの欄に,プロバイダのDNSサーバのアドレスを指定するのも有効かもしれません(ただし,プロバイダのDNSサーバを入力すると,CTU設定ページに繋がらなくなる)。
9. 引き続きVPNサーバの設定を行います。こちらのサイトよりiVPNというVPNラッパーアプリをダウンロードし,さっさとシェアウェア代14.99ポンド≒約2千円(執筆時点では9.99ポンドにディスカウント中)を払います(笑)。というのも,残念なことに試用版がナイのですよ。また,明記されていませんがライセンス番号入力時にアクティベーションがかかるようですね。
んでもって,VPNサーバにするマシン上でiVPN.appを立ち上げ,シリアルナンバーを入力します。
10. 管理者パスワードを入力したら,以下のように設定します。
- “PPTP”を選択(L2TPもお好みで)
- “User custom account”を選択し,『Edit Account』からVPN接続時に使用するユーザー名/パスワード を設定
- “Allow 40-bit encryption keys”のチェックを外す
- VPN接続時に割り当てるIPアドレス:10.0.1.201〜254 ※設定は環境に応じて適当に
- “Basic DNS”を選択し,DNSサーバのIPアドレスを入力 ※プライマリ/セカンダリDNSサーバはデフォルト(OpenDNS?)のままでも問題ありませんが,私はプロバイダのDNSサーバを指定しています
11. 設定が終わったら,ウインドウ上部の『ON』ボタンをクリックし,VPNサーバを起動します。稼働状況は,左上の『LOG』ボタンから確認できます。
12. プロバイダから割り当てられるIPアドレスが固定でない場合は,VPN接続先のアドレスを一意に指定できず不便なので,ダイナミックDNSサービスを利用します。ここでは,(現在のところ)無料で利用でき,ユーザーの評判も高いMyDNS.JPを例に取り上げます。
ます,MyDNS.JPサイトにアクセスし,“REGISTER”からユーザー登録を行います。すると,登録時に入力したメールアドレス宛にログインIDとパスワードが送られてくるので,MyDNS.JPサイトにログインします。
13. 次に“DOMAIN INFO”を開き,ダイナミックDNSで使用するドメイン名を指定します。
- ドメイン名:<ユーザー指定>.MYDNS.JP
- MXレコード:<省略可>
- ホスト名1:* ※ワイルドカードを指定するとどのサブドメイン名でもアクセスできる
- ホスト名2〜5:<省略可>
14. 確認ボタンをクリックし,ドメイン情報が更新されたことを確認します。なお,DNSサーバへの変更内容の反映には数分かかるようです。
15. VPN接続を行いたいクライアントマシン上で設定を行います。ここでは,Mac OS X 10.6(Snow Leopard)の例を挙げます。
システム環境設定>ネットワーク を開き,ウインドウ左下の『+』マークをクリックし,VPNインターフェイスを追加します。設定項目は以下を参考にしてください。
- 構成:デフォルト
- サーバアドレス:<任意の文字列>.<13.で指定したドメイン名>.mydns.jp
- アカウント:10.で設定したユーザー名
- 暗号化:最大(128ビットのみ)
- 認証設定:10.で設定したパスワードを入力
16. 『接続』ボタンをクリックし,VPN接続できることを確認します。
※同一LANにあるVPNサーバには接続できないみたいなので,別のネットワークから試してみてください。
17. MyDNS.JP のDDNSサービスは,ブラウザから(MyDNS.JPに)ログインするか,MyDNS.JPが提供するダミーのPOP or FTPサーバにアクセスすることでIPアドレスが更新されますが,1週間アクセスがないとURLが応答しなくなります。また,1ヶ月間(MyDNS.JPに)アクセスがないとユーザー登録情報自体が削除されるので,1日1回程度自動的に MyDNS.JP へアクセスし,BASIC認証するシェルスクリプトをVPNサーバに組み込んでおきます。
まず,任意の場所に myDNSUpdate.sh といった名前のファイルを作り,以下に示すごく簡単なシェルスクリプトを書きます。
#!/bin/bash # myDNSUpdate.sh # variables MASTER_ID="<MyDNS.JPのMasterID>" PASSWORD="<MyDNS.JPのPassword>" LOGIN_URL="http://www.mydns.jp/login.html" LOG_FILE="~/myDNS.log" curl -u $MASTER_ID:$PASSWORD $LOGIN_URL > $LOG_FILE
※MASTER_IDとPasswordは,MyDNS.JP から発行されたものを各自入力してください。
18. シェルスクリプトに実行権限を付与し,ターミナルから実行してみます。実行するとホームディレクトリにmyDNS.logなるファイルが作成されるので,任意のエディタで開き,ファイルの中央付近の「login_status」が「1」になっていることと,「REMOTE_ADDR」にプロバイダから割り当てられた現在のIPアドレスが表示されていることを確認してください。このシェルスクリプトを実行すれば,MyDNS側のIPアドレスの紐付けが更新されるので,あとはcronなどで1日1回程度自動実行するようにすればOKです。
※このシェルスクリプトはエラー処理も何もないので,適宜改造してくださいな。もちろん動作保証はありませんので。
PCに限らず,iPhoneなどのスマートフォンからもVPN接続はできますが,力尽きたので今回は説明を省略します(ググればいくらでも情報は見つかるし)。
なお,現在VPNを利用したパーソナルなディザスタ・リカバリ環境を構築中です。また,検証が終わったら当サイトに手順をアップしますので〜。
追記
Firewallの説明は意図的に省きますた。AirMac Extremeは手動でパケットフィルタリング設定を行うことができないため,Firewall機能がちゃんと動作しているのか不安になることもあるのだけど,メーカーのサイトに「AirMac Extremeはファイアウォールを内蔵し…」と書かれているので信じることにします(^ ^;)。ま,CTU側のFirewall設定を残しているし,大丈夫でしょう。
Posted by 神海 螢 / コウミ ケイ at 2011年06月12日(日) 13時43分 コメント ( 0 )