この記事はWindowsクライアントでのVPN 接続についてですが、まずは OSX Server の話を少々。
OSX Server で寄せられるトラブルの中に Windows7~10 から L2TP/IPsec VPN 接続ができないというものがあるようで、アップル曰く、「Windows が IPSec NAT Traversal を処理するデフォルトの方法に問題があります」とのことです。
参考:http://support.apple.com/kb/HT5078?viewlocale=ja_JP
ということで、 Mac Server での VPN だけではなく、 10 や~7、 Vista など XP 以降の Windows クライアントから繋がらないという現象は多いようです。
NAT Traversal を制御する
VPN 接続時のクライアント側でエラーもいろいろとあるとは思いますが、多いのは 619 ・ 809 ・ 789 あたりでしょうか。
809 の場合はクライアントからの通信が VPN サーバーまで行き着いていません。
クライアント機での設定の他、ルータ・ファイヤーウォール・ NAT などが原因の可能性もありますので、念のためにチェックしてみましょう。
問題がなければ、レジストリより Windows IPSec NAT Traversal の動作を変更します。
※レジストリの変更はパソコンが起動しなくなる恐れもありますので、くれぐれも注意が必要です。
「レジストリエディタ」により下記レジストリキーを追加します。
「 HKEY_LOCAL_MACHINE 」→「 SYSTEM 」→「 CurrentControlSet 」→「 services 」→「 PolicyAgent 」を展開します。
「 PolicyAgent 」の中に新規で「 AssumeUDPEncapsulationContextOnSendRule 」を DWORD32 ビット値で作成します。値は基本的には2を入力します。
パソコンを再起動します。
ちなみに値は0~2で設定でき、下記のように使い分けるようです。
0→NAT トラバーサル無効
1→NAT トラバーサル有効(クライアントが NAT 機器の背後にある場合)
2→NAT トラバーサル有効(サーバーとクライアントの両方が NAT 機器のにある場合)
ここまでで、 619 ・ 809 エラーは回避できると思います。
ローカルセキュリティポリシーの変更
789 は「はじめのネゴエーションでのセキュリティエラー」でクライアント側のセキュリティ設定によるものが多いようです。
このエラーで接続できない場合は「ローカルセキュリティポリシー」にて LAN Manager 認証レベルの変更が必要です。
「ローカルセキュリティポリシー」→「ネットワークセキュリティ: LAN Manager 認証レベル」→ドロップダウンリストで、「 LM と NTLM を送信する~ネゴシエーションの場合、 NTLMv2セッション セキュリティを使う」を選択します。
また、「ネットワークセキュリティ: NTLM SSP ベース (セキュア RPC を含む) のクライアント向け最小セッション」の「 128 ビット暗号化が必要」のチェックボックスを解除します。
この LAN Manager の認証レベルはレジストリーで設定することもできます。
「 HKEY_LOCAL_MACHINE 」→「 SYSTEM 」→「 CurrentControlSet 」→「 Control 」→「 Lsa 」
「 LmCompatibilityLevel 」レジストリキーを DWORD32 ビット値で作成し、1の値を入力すると上記、 GUI 「ローカルセキュリティポリシー」での「 LM と NTLM を送信する~ネゴシエーションの場合、 NTLMv2セッション セキュリティを使う」と同じです。
※Windows Vista 以降の Home Premium の場合は基本的に「ローカルセキュリティポリシー」自体がありませんので、この方法でレジストリーを追加する必要があります。
ちなみに「 LmCompatibilityLevel 」では0~5の設定ができ、数字が大きいほどセキュリティレベルが高くなります。
前述のアップルの解説でも値は1にということなのですが、わたしの環境では実際に3でも OSX Server の L2TP/IPsec に接続可能ですので、どうも環境によって異なるように思えます。
また、 VPN でアクセスに限らず、ネットワーク上には Windows 以外に Mac ・ UNIX ・ NAS などが混在している場合があります。
これらの機器と Windows クライアントとは基本的に SMB というプロトコルを使って通信しますが、ここにも LAN Manager 認証レベルが関わってきます。
それらの Samba バージョンによっては Windows からアクセスできないという現象が見られ、この場合はセキュリティレベルの調整が必要となってきます。