L2TP-VPN に Windows 7 で接続する
CLIENT
.auto-style1 {
border-style: solid;
border-width: 1px;
}
Windows 7 から L2TP-VPN に接続する
CentOS 6.0 で L2TP-VPN サーバを構築する で用意した L2TP-VPN サーバーに Windows 7 (x64) から接続する方法です。
Windows 7 から接続する場合には、【コントロールパネル】の【ネットワークとインターネット】にある【ネットワークと共有センター】を開き、"新しい接続またはネットワークのセットアップ" を行います。
接続オプションで "職場に接続します - 職場へのダイヤルアップまたは VPN 接続をセットアップします。" を選択して次へ進んだら、新しい接続を作成して、"インターネット接続 (VPN)" を設定します。
そして "インターネットアドレス" に L2TP-VPN を構築したサーバーのドメイン名または IP アドレスを設定します。"接続先の名前" には何か判りやすい名前を付けておくことができます。
また、L2TP の詳細設定を行うために、"今は接続しない。自分が後で接続できるようにセットアップのみを行う" にチェックを入れておきます。
次へ進むと、ユーザー名とパスワードの入力画面が表示されます。
ユーザー名とパスワードのところには "/etc/ppp/chap-secrets" で登録したものを指定します。ドメインのところは空欄のままで大丈夫です。
【作成】ボタンをクリックすると、接続が作成されました。
そうしたらいったん【閉じる】を押します。
このようにすると、"ネットワークとインターネット" の一覧に、今作成したネットワークが表示されています。
今回の L2TP での接続には、もう少し設定を調整する必要があるため、ひき続き "ネットワークと共有センター" の "アダプターの設定の変更" を開きます。
登録されているネットワークアダプターの一覧が表示されたら、その中から、先ほど登録した VPN 接続をダブルクリックして開きます。
接続の設定画面が表示されたら、そこの【プロパティ】ボタンをクリックします。
プロパティを開いたら【セキュリティ】タブを開いて、"VPN の種類" で "IPsec を利用したレイヤー 2 トンネリングプロトコル (L2TP/IPSec)" を選択します。
そしてそのすぐ下にある【詳細設定】ボタンをクリックします。
詳細プロパティが表示されたら、"認証に事前共有キーを使う" にチェックを入れて、キーのところには "/etc/ipsec.d/default.secrets" ファイルに記載したパスワードを指定します。
これで、設定はひとまず完了です。
ローカルネットワーク内の L2TP-VPN サーバーや、クライアントとサーバーの両方にグローバル IP が割り当てられている環境であれば、これで接続することができるようになったと思います。
L2TP-VPN サーバーやクライアントが NAT で保護されている場合
ただ、L2TP-VPN サーバーかクライアントのどちらか、または両方が、ファイアーウォールに保護されるなどで、アクセスに NAT(アドレス変換)が必要な場合には、Windows ではレジストリの変更が必要になるようです。
レジストリキーの場所は、Windows XP では "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec" になりますが、Windows Vista や 7 の場合には "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent" になります。
ここに "AssumeUDPEncapsulationContextOnSendRule" という名前の "REG_DWORD" 値を作成して、次のように、値を設定します。
- 0 NAT トラバーサルを無効にします。何も指定しなかった場合はこれが選択されているものとします。
- 1 NAT トラバーサルを有効にします。片一方が NAT の背後の場合に設定するそうです。
- 2 NAT トラバーサルを有効にします。サーバとクライアントの両方が NAT の背後にある場合に使用するそうです。
これらから、適切な値を設定して Windows を再起動すれば、設定した動作モードが有効になります。
なお、今回の自分の環境では、L2TP-VPN サーバーがファイアーウォールで守られていて、インターネット側からは静的 NAT で接続できるようになっていました。また、クライアント環境では、NAPT (IP Masquerade) によるアドレス変換が行われていました。
この環境下で、"AssumeUDPEncapsulationContextOnSendRule" の値を "2" に設定して Windows を再起動したところ、無事 L2TP 接続ができるようになりました。