web-dev-qa-db-ja.com

strongswan IKEv2 VPN + RADIUS Active DirectoryドメインでのNPSによる認証

サーバー証明書を使用してeap-mschapv2認証でstrongswanを実行できました。ここで、Windows 2012 R2サーバーで実行されているNPSでeap-radiusプラグインを使用して、Active Directoryに対して認証したいと思います。

ドメインコントローラーで、新しいユーザーとリモートアクセス用のグループ(VPN_USERS)を作成しました。

VPNサーバーでsyslogをチェックアウトすると、次のようになります。

vpn charon: 08[IKE] received cert request for "C=US,O=CR-51 Test,CN=Root CA" 
...
vpn charon: 09[CFG] selected peer config 'ikev2-vpn'
...
vpn charon: 09[IKE] authentication of 'vpn.cr-51-test.local' (myself) with pre-shared key
...
vpn charon: 09[ENC] generating IKE_AUTH response 1 [ IDr AUTH EAP/REQ/ID ]
...
vpn charon: 09[IKE] successfully created shared key MAC 
....
vpn charon: 11[JOB] deleting half open IKE_SA after timeout

Windows 10クライアントでは、接続試行中に次のエラーが発生します。

dialed a connection named IKEv2 which has failed. The error code returned on failure is 13801.

EventviewerのNPSサーバーには、ネットワークポリシーサーバーがユーザーへのアクセスを拒否し、アクセスを許可するか、NPSがアクセスを制御できるようにADでユーザーのダイヤルイン設定を変更することを提案するエントリがあります。これは元々、NPSがアクセスを制御できるように設定されていましたが、アクセスを許可するように設定しても失敗します。

また、NPSをセットアップした後、ドメイン管理者アカウント以外のドメインコントローラーのアカウントでログインできません。

現在の構成はこちら

ipsec.conf:

config setup
  charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
  uniqueids=no

conn ikev2-vpn
  auto=add
  compress=no
  type=tunnel
  keyexchange=ikev2
  fragmentation=yes
  forceencaps=yes


  ike=aes256-sha1-modp1024,3des-sha1-modp1024!
  esp=aes256-sha1,3des-sha1-modp1024!

  dpdaction=clear
  dpddelay=300s
  rekey=no

  left=%any
  leftauth=pubkey
  [email protected]
  leftcert=/etc/ipsec.d/certs/vpn.cr-51-test.local.crt.pem
  leftsendcert=always
  leftsubnet=0.0.0.0/0
  lefthostaccess=yes
  leftfirewall=yes

  right=%any
  rightid=%any
  rightauth=eap-radius
  rightgroups="CN=VPN_USERS/CN=Users"
  rightsourceip=10.10.0.0/24
  rightdns=192.150.150.10
  rightsendcert=never
  rightfirewall=yes

 eap_identity=%identity

/etc/strongswan.d/charon/eap-radius.conf:

(私が変更したセクションだけ)

load = yes
...
secret = testpass
server = 192.150.150.20

ipsec.secrets:

vpn : RSA "/path/to/key"
: PSK "testpass"

NPS構成:

NPSサーバーがドメインに登録されています。

Freindly name: vpn
Addresss (IP or DNS): 192.150.150.11
Shared secret: testpass

接続要求ポリシー

Type of network access server: Remote Access Server(VPN-Dialup)

Conditions:
  NAS Port Type: VPN
  Client Friendly Name: vpn

ネットワークアクセスポリシー

Type of network access server: vpn

 Conditions:
   NAS Port Type: VPN
   Client Friendly Name: vpn
   User Groups: VPN_USERS

 Constraints:
   Authentication Methods: EAP-MSCHAP v2
   NAS Port Type: VPN

更新

NPSエラー

ログ名:セキュリティソース:Microsoft-Windows-Security-Auditing日付:6/22/2018 5:25:02 PMイベントID:6273タスクカテゴリ:ネットワークポリシーサーバーレベル:情報キーワード:失敗の監査ユーザー:N/Aコンピューター:nps.cr-51-test.local説明:ネットワークポリシーサーバーがユーザーへのアクセスを拒否しました。

詳細については、ネットワークポリシーサーバーの管理者に問い合わせてください。

ユーザー:セキュリティID:CR-51-TEST\tuserアカウント名:[email protected]アカウントドメイン:CR-51-TEST完全修飾アカウント名:CR-51-TEST\tuser

クライアントマシン:セキュリティID:NULL SIDアカウント名:-完全修飾アカウント名:-OS-バージョン:-呼び出されたステーションの識別子:192.250.250.11 [4500]呼び出しステーションの識別子:192.173.1.90 [4500]

NAS:NAS IPv4アドレス:192.250.250.11 NAS IPv6アドレス:-NAS識別子:strongSwan NASポートタイプ:仮想NASポート:4

RADIUSクライアント:クライアントフレンドリー名:vpnクライアントIPアドレス:192.250.250.11

認証の詳細:接続要求ポリシー名:すべてのユーザーにWindows認証を使用しますネットワークポリシー名:-認証プロバイダー:Windows認証サーバー:nps.cr-51-test.local認証タイプ:EAP EAPタイプ:-アカウントセッション識別子:-ログ結果:アカウンティング情報がローカルログファイルに書き込まれました。理由コード:48理由:接続要求が、構成されているネットワークポリシーと一致しませんでした。

イベントXml:6273 1 0 12552 0 0x8010000000000000 531セキュリティnps.cr-51-test.local S-1-5-21-2365315230-2476318153-1929964036-1111 [email protected] CR-51-TEST CR -51-TEST\tuser S-1-0-0---192.250.250.11 [4500] 192.173.1.90 [4500] 192.250.250.11-strongSwan Virtual 4 vpn 192.250.250.11すべてのユーザーにWindows認証を使用-Windows nps.cr -51-test.local EAP--48接続要求が、構成されたどのネットワークポリシーとも一致しませんでした。アカウンティング情報はローカルログファイルに書き込まれました。

strongswanエラー

enter image description here

3
0B51D14N

そこで、NPSサーバーでVPN接続用に作成したポリシーを無効にし、NPSが最小限の制約で作成したデフォルトのポリシーを変更し、strongswan vpn経由でActive Directoryユーザーを正常に認証することができました。これらのポリシーは、テストの開始点として問題ないはずです。

Strongswan VPNサーバー上

Ecdsaがipsec.confで提案したように、leftauth=pubkeyを設定しました。

NPSについて

  • Connection Request Policesで、Use Windows authentication for all usersポリシーを有効にします。
  • Network Policesルーティングとリモートアクセスサーバーへの接続を無効にします
  • ネットワークポリシーの下で他のアクセスサーバーへの接続を有効にする
  • 右クリック他のアクセスサーバーへの接続を選択してプロパティ
  • 他のアクセスサーバーへの接続ポリシーを変更します。

NPS 1
確実にGrant accessが選択されている

NPS 2 許可EAP-MSCHAPv2

それが必要かどうかはわかりませんが、strongswanがログで文句を言っていたため、ipsec.confファイルで設定したrightgroupsパラメータもコメント化しました。

0
0B51D14N

EAPと事前共有キー認証の組み合わせは、 RFC 7296 に従って厳密に有効ではありません。

通常、これらの方法は非対称であり(サーバーに対してユーザーを認証するために設計されています)、相互に異なる場合があります。このため、これらのプロトコルは通常、レスポンダに対してイニシエータを認証するために使用され、イニシエータに対するレスポンダの公開鍵署名ベースの認証と組み合わせて使用​​する必要があります。

StrongSwanなどの一部の実装では構成が許可されていますが、他の多くの構成では許可されておらず、証明書によるサーバーの認証が要求されます。

すでに証明書と秘密鍵を持っているように見えるので、leftauth=pubkey。クライアントにすでにCA証明書がインストールされている場合。

1
ecdsa

NPSサーバーへのすべての種類の接続を単に許可するよりも堅牢なソリューションを探している人のために、変更が必要なシンプルな設定があり、strongSwanと完全に連携します。

これがすべてを変える理由については、なぜだかわかりません。これは単に、ウィザードで作成されたポリシーが、クライアント(VPNサーバー)がOEM標準ハードウェアであることを前提としているためだと考えています。このハードウェアには、「リモートアクセスサーバー(VPNダイヤルアップ)」。本当にその時点まで、誰かがそれについて明確な説明があれば、本当にありがたいです。回答を変更するか、コメントを残してください。ありがとう。

したがって、最初からやり直すには、[NPS(ローカル)]ルートノードをクリックし、次にメインウィンドウで[VPNまたはダイヤルアップの構成]をクリックします。通常どおりに手順を実行します。ウィザードが完了すると、指定した名前で2つのポリシーが作成されます。 1つは「接続要求ポリシー」、もう1つは「ネットワークポリシー」にあります。両方のポリシーの[概要]タブの[ネットワーク接続方法]セクションで、[ネットワークアクセスサーバーの種類]が[リモートアクセスサーバー(VPNダイヤルアップ)]に設定されています。このオプションを「未指定」に変更します。そして、それだけです。クライアントに適切にアクセスをリクエストさせるには、この変更を加えることだけが必要です。その後、両方のポリシーが考慮されます。

それが役に立てば幸い。

0
David