Windows10からIX2215へのL2TP/IPsec VPN接続に失敗するときにやったこと

はじめに

NECVPNルータであるUNIVERGE IXシリーズにL2TP/IPsec機能を設定した際、MaciPhoneからは接続できるのにWindows10からは接続できなかった(「セキュリティ層でリモートコンピュータと互換性のあるパラメーターをネゴシエートできなかったため、L2TP接続に失敗しました」というエラー)。IX2215だけではなくIX2105とかでも同じだと思う。

適当に調べるとレジストリを変更してNAT越えに対応する記事が非常に多かったが、それでは解決しなかった。

そこでWindows10上でパケットキャプチャを行いVPN接続ができない原因を調査した。

結論

IXのリファレンス通りにやるとIPsecの鍵交換時に必要なプロポーザルが足りないようだった。 AES 256bit, SHA-1 2048bit(DH group 14)をIX側で使用するように設定すると通った。 config的には

Router(config)# ike proposal ike4 encryption aes-256 hash sha group 2048-bit

を打ち込めば接続できた。

環境

  • IX2215: IX Series IX2215 (magellan-sec) Software, Version 9.4.17
  • Windows10 Pro 1803(ビルド 17134.345)

原因の調査

Wiresharkのフィルタに udp.port == 4500 or udp.port == 500 を入れるといい感じに鍵交換のパケットだけが見られる。

まず最初のパケット(クライアント→VPNサーバ)を見てみる。 その中でも1枚めの画像の赤線の部分の中にプロポーザルが格納されている。 f:id:jackson58:20181111201433p:plain Security Associationの中身。 f:id:jackson58:20181111201553p:plain

Proposal transforms にはプロポーザルの数が格納されており、その後に具体的な内容が格納されている(Payload: Transform (3) #1, #2, #3...)。

私の環境では以下のプロポーザルが格納されていた。

  • AES-CBC 256-bit, SHA ECP 384-bit
  • AES-CBC 128-bit, SHA ECP 256-bit
  • AES-CBC 256-bit, SHA DH Group 14(2048-bit)
  • 3DES-CBC, SHA DH Group 14(2048-bit)
  • 3DES-CBC, SHA DH Group 2(1024-bit)

IXのリファレンスでは以下のようになっていた。

  • AES-CBC 256-bit, SHA DH Group 2(1024-bit)
  • AES-CBC 128-bit, SHA DH Group 2(1024-bit)
  • 3DES-CBC, SHA DH Group 2(1024-bit)

今回の環境下でのIXではハッシュアルゴリズムとしてSHAのECPが設定できないようなので、IX側にAES-CBC 256-bit, SHA DH Group 14(2048-bit)が使えるように設定をすればいいようだった。

また、Windows10側でのVPN接続は以下のように設定した。 f:id:jackson58:20181111202944p:plain

「データの暗号化」の部分で 暗号化が必要(サーバが拒否する場合は切断します)にしたところ、「ローカル コンピュータでは、要求されたデータの暗号化の種類はサポートされません。」というエラーが発生した。

余談

意外なところにIPsecの細かなパラメータ設定するところがあったのが発見でした。