web-dev-qa-db-ja.com

MacOS / iOSからのPEAP認証を使用したL2TP

最近のセキュリティアドバイザリに続いて、VPNサーバーを再構成していて問題が発生しています。

VPNサービスにWindows2008 R2サーバーを使用し、同じサーバーでRRASとNPSを実行し、以前はプレーンMSCHAPv2を許可していたすべてのトンネルタイプ(PPTP、L2TP、IKEv2、SSTP)に対してPEAP-EAP-MSCHAPV2認証を使用するように構成します。

しかし、Apple製品、MacOSおよびiOSは、この変更後にVPNに接続できません。PEAPトランザクションで使用されるルート証明書をインストールしようとしましたが、変更はありません。

MacOS/iOSがPPTP/L2TPでPEAP-EAP-MSCHAPv2認証をサポートしているかどうかを知っている人はいますか?もしそうなら、それを機能させるためのヒントはありますか? (私はPEAP-EAP-MSCHAPv2がWPA/WPA2エンタープライズでサポートされていることを知っています)

よろしく。

3
Jose

Mac OS XがPEAP-EAP-MSCHAPv2をサポートしていないという公式の確認は見つかりませんでしたが、動作させることもできません(Windows SBS 2003R2およびL2TP-over-ESPとMacOS X10.8クライアントはこちら)。 IASログファイルにログインの試行が表示されていません。 (セキュリティイベントログはあらゆる種類のものでいっぱいなので、あまり詳しく読んでいません。)少なくともISAKMPとIPsec ESPが機能していることを、満足のいくように確認しました。 Macで/var/log/racoon.logを調べたところ、次のようなエントリが見つかりました(ここでは、198.51.100.200がMac、192.0.2.100がSBSです)。

DEBUG: agreed on pre-shared key auth.
INFO: NAT detected: ME PEER
INFO: ISAKMP-SA established 198.51.100.200[4500]-192.0.2.100[4500] spi:0123456789abcdef:0123456789abcdef
INFO: NAT detected -> UDP encapsulation (ENC_MODE 2->61444).
INFO: IPsec-SA established: ESP/Transport 192.0.2.100[4500]->198.51.100.200[4500] spi=01234567(0x012345)
INFO: IPsec-SA established: ESP/Transport 198.51.100.200[4500]->192.0.2.100[4500] spi=89abcdef(0x6789ab)

また、/ var/log /ppp.logも調べました。これには次のようなものが含まれています。

IPSec connection started
IPSec phase 1 client started
IPSec phase 1 server replied
IPSec phase 2 started
IPSec phase 2 established
IPSec connection established
L2TP sent SCCRQ
L2TP received SCCRP
L2TP sent SCCCN
L2TP sent ICRQ
L2TP received ICRP
L2TP sent ICCN
L2TP connection established.

これにより、racoon.logに示されている成功したIPsec接続が要約され、成功したL2TP接続が追加されます(これは理にかなっています-L2TP自体は認証されていません)。次に、Macは予想どおりL2TPを介してPPP接続を構築しようとします。ここで、理解できないエラーが表示され始めます。

lcp_reqci: rcvd unknown option 13
lcp_reqci: rcvd unknown option 23
lcp_reqci: returning CONFREJ.

に続く:

sent [LCP ConfRej id=0x0...
rcvd [LCP ConfAck id=0x1...
rcvd [LCP ConfReq id=0x1 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x1 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x2 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x2 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x3 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x3 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x4 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x4 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x5 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x5 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x6 <mru 1400> <auth eap>...
lcp_reqci: returning CONFREJ.
sent [LCP ConfRej id=0x6 <auth eap>]
rcvd [LCP TermReq id=0x7...
sent [LCP TermAck id=0x7]
Fatal signal 6

上記の「autheap」と「authchapMS-v2」に注意してください。

リモートアクセスポリシーに加えた変更の一部を取り消してみます。

  • すべての暗号化タイプを再度有効にします(no/basic/strong/strongest、最強のみ)
  • すべてのEAPタイプを削除し、MSCHAPv2のみを有効にします(保護されたEAP [PEAP]/EAP-MSCHAPv2でした)

交換全体がIPsecで保護されていることを考えると、実際のリスクについて疑問に思います。誰かがPSKまたはIPsecで使用される証明書にアクセスできるようにクライアントを侵害した場合、PPP接続を認証するためにPEAPしか持っていないことが重要かどうかはわかりません(少なくとも私の場合は脅威モデル)。

更新:RRASサーバーのプロパティとVPNアクセスを制御するIASポリシーの両方でMSCHAPv2を再度有効にし、すべての暗号化タイプを有効にしました。これらの変更を行った後、MacはMSCHAPv2を使用してPPP経由で認証し、L2TP-over-IPsecVPNに再度接続できるようになりました。 IASポリシーでPEAPのオンとオフを切り替えて、PEAPが機能しないことを確認しました。実際、PEAPを有効にすると(MSCHAPv2は無効になります)、認証失敗メッセージが表示され、Mac OSXは次のログを記録します。

MS-CHAP authentication failed: E=649 No dialin permission
sent [LCP TermReq id=0x2 "Failed to authenticate ourselves to peer"]

以前のよりあいまいな動作は、RRAS自体とIASポリシーでMSCHAPv2を無効にしたためだと思いますが、現在のテスト構成ではRRASでMSCHAPv2が有効になっていますが、IASポリシーでは無効になっています。

3