概要
このドキュメントでは、Windows 10/11に組み込みクライアントでFlexVPNを設定する設定手順について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Windows組み込みVPNクライアント
- Cisco IOS® XE FlexVPNの設定
- OpenSSLの基本設定
使用するコンポーネント
この設定ガイドは、次のハードウェアとソフトウェアのバージョンに基づいています。
- Windows 10およびWindows 11
- Cisco IOS XE 16.12.4
- OpenSSL認証局(CA)v1.1.0g
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
CAの前提条件
CAでは、必要な拡張キー使用法(EKU)を証明書に埋め込むことができるようにする必要があります。たとえば、IKEv2サーバでは、 Server Auth EKU
が必要ですが、クライアント証明書は Client Auth EKU
を参照。 ローカル展開では、以下を使用できます。
- Cisco IOS CAサーバ:Cisco Bug ID CSCuc82575のため、自己署名証明書は使用できません。
- OpenSSL CA サーバ-
openssl.cnf
extendedKeyUsage = serverAuth, clientAuthが設定されている必要があります。このファイルは通常、パス内にあります。 /etc/ssl/
を参照。
- Microsoft CA Server:一般に、必要に応じて証明書を正確に署名するように設定できるため、これが推奨されます。
ネットワーク図
トポロジラボ
コンフィギュレーション
CAの設定
CAとしてのルータ
Cisco IOS CAサーバを使用する場合は、EKUを割り当てる最新のCisco IOSソフトウェアリリースを使用していることを確認してください。
IOS-CA# show run | section crypto pki
crypto pki server IOS-CA
issuer-name cn=IOS-CA.cisco.com,ou=TAC,o=cisco
grant auto
eku server-auth client-auth
CAとしてのOpenSSL
OpenSSL CAはopenssl.cnfファイルに基づいています。OpenSSLサーバの「config」ファイルには次のものが必要です。
keyUsage = nonRepudiation, digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
ルータIOS XE/IOSの設定
OpenSSLの場合はpkcs12証明書をインポートする
証明書の [EKU] フィールドが、Cisco IOS の場合は「Server Authentication」に、クライアントの場合は「Client Authentication」に設定されている必要があります。通常、同じ CA を使用して、クライアントとサーバの両方の証明書に署名します。この場合、「Server Authentication」と「Client Authentication」の両方がそれぞれ、受け入れ可能なサーバ証明書とクライアント証明書に表示されます。
CA が IKEv2 サーバで Public Key Cryptography Standards(PKCS)#12 形式で証明書をクライアントとサーバに発行する場合や、証明書失効リスト(CRL)が到達可能または使用可能でない場合は、証明書を設定する必要があります。
crypto pki trustpoint FlexRootCA
revocation-check none
PKCS#12 証明書をインポートするには、次のコマンドを入力します。
copy ftp://user:***@OpenSSLServer/p12/FlexRootCA.p12* flash:/
crypto pki import FlexRootCA pkcs12 flash:/FlexRootCA.p12 password
!! Note: FlexRootCA.p12 is a pkcs12 format certificate that has CA Certificate bundled in it.
OpenSSLでpkcs12をbase64に変換し、証明書を端末にインポートすることもできます。
openssl base64:ikev2.p12:ikev2.pemの出力
cat ikev2.pem —> base64出力をコピーします。
crypto pki trustpoint FlexRootCA
enrollment terminal
revocation-check none
crypto pki import FlexRootCA pkcs12 terminal password
***paste the base64 output from the cat ikev2.pem here***
quit --> when the paste ends you need to type quit to finish
CAサーバとしてルータに証明書を要求する
Cisco IOS CA サーバが自動的に証明書を認可する場合、証明書を受信するために、次の例のように IKEv2 サーバを CA サーバ URL で設定する必要があります。
crypto pki trustpoint FlexRootCA
enrollment url http://
:80
subject-name cn=ikev2.cisco.com,ou=TAC,o=cisco
revocation-check none
eku server-auth client-auth
トラストポイントを設定する際、次の手順を実行する必要があります。
- 次のコマンドを使用して、CAを認証します。
crypto pki authenticate FlexRootCA
- 次のコマンドを使用して、IKEv2サーバをCAに登録します。
crypto pki enroll FlexRootCA
証明書認証を使用したFlexVPN IKEv2の設定
IKEv2の設定例を次に示します。
aaa authorization network winclient local
ip local pool mypool 172.16.0.101 172.16.0.250
!! Certificate MAP to match Remote Certificates, in our case the Windows Clients
crypto pki certificate map winclient_map 10
subject-name co ou = tac
!! One of the proposals that Windows 10/11 Built-In Client Likes
crypto ikev2 proposal winclient
encryption aes-cbc-256
integrity sha1
group 2
crypto ikev2 policy winclient
proposal winclient
!! IKEv2 Local Authorization Policy. Split-Tunneling does not work, as was
!! the case in good old l2tp over IPSec.
crypto ikev2 authorization policy winclient_author
pool mypool
crypto ikev2 profile winclient-rsa
match certificate winclient_map
identity local fqdn ikev2.cisco.com
authentication local rsa-sig
authentication remote rsa-sig
pki trustpoint FlexRootCA
aaa authorization group cert list winclient winclient_author
virtual-template 1
crypto ipsec transform-set aes256-sha1 esp-aes 256 esp-sha-hmac
crypto ipsec profile winclient_ikev2
set transform-set aes256-sha1
set ikev2-profile winclient-rsa
interface Virtual-Template1 type tunnel
ip unnumbered Loopback0
tunnel mode ipsec ipv4
tunnel protection ipsec profile winclient_ikev2
仮想テンプレートのIP unnumberedは、IPsec接続に使用されるローカルアドレス以外の任意のアドレスにする必要があります。(ハードウェアクライアントを使用する場合は、IKEv2設定ノードを介してルーティング情報を交換し、ハードウェアクライアントで再帰的なルーティングの問題を作成します)。
注:IOS XEバージョン17.06.01a Cisco Bug ID CSCwa76260 およびCisco Bug ID CSCwa80474は、Windows組み込みクライアントがデフォルトのdhグループとしてgroup2を使用するため、クライアントの適切な機能に干渉します。修正済みリリースにアップグレードすると、今後廃止される暗号方式が削除される予定であることを通知されますが、それらは引き続き動作します。Additional Information:
IKEv2 Windows組み込みクライアントの設定
Windows 10組み込みクライアント
1.次に移動します。 Settings > Network & Internet > VPN
をクリックし、をクリックまたは選択 Add a VPN Connection
次の図に示すように、
Windows VPNの設定
2. VPNプロバイダーをWindows (組み込み)、接続名、サーバー名またはアドレス、VPNの種類、およびサインイン情報の種類(認証)として構成し、 Save
図に示すように。
WindowsによるVPN設定の追加
3. [アダプターのオプションの変更]をクリックし、右クリックするか、というアダプターを選択します FlexVPN-IOS
を参照。移動先 Properties > Security
および選択 Use machine certificates
次の図に示すように、
Windowsアダプタオプション
証明書をマシン証明書ストアにインポートした後、FlexVPN-IOSプロファイルを接続する準備が整いました。
Windows 11組み込みクライアント
1.次に移動します。 Settings > Network & internet > VPN
をクリックするか、Add VPNを選択します。
Windows 11 VPNの設定
2. VPNプロバイダーをWindows (組み込み)、接続名、サーバー名またはアドレス、VPNの種類、およびサインイン情報の種類(認証)として構成し、保存します:
Windows 11 VPN接続設定
3.クリック Network & Internet
もう一度、ネットワークの詳細設定をクリックし、 More network adapter options
次の図に示すように、
Windows 11のアダプタオプションへのパス
FlexVPN-IOSというアダプタを右クリックまたは選択し、[プロパティ]に移動して、 Security
Use machine certificatesを選択します。
Windows 11アダプタのオプション
証明書をマシン証明書ストアにインポートした後、FlexVPN IOS プロファイルにできるようになります。
クライアント証明書の取得
クライアント証明書には、次の要素が必要です。
- クライアント証明書に「Client Authentication」の EKU があります。また、CAはPKCS#12証明書を提供します。クライアントPKCS12証明書は、ローカルマシンの個人証明書ストアに入る必要があります
Windows PKCS12証明書のインストール
1. pfxまたはp12証明書を開きます。
[Store Location Local Machine]をクリックまたは選択します。
証明書インポートウィザードの手順1
2.図に示すように、p12またはpfxのパスを指定します。
証明書インポートウィザードの手順2
3.図に示すように、秘密キーのパスワードを入力します。
証明書インポートウィザードの手順3
注:キーをエクスポート可能としてマークすることはオプションです。
4.クリックまたは選択 Place all certificates in
個人用ストア:
証明書インポートウィザードの手順4
pkcs12には通常、チェーン全体、CA、および中間証明書が含まれます。その場合は、CAが信頼されたルート認証局ストアにインストールされていることを確認する必要があります。
Windows CA証明書のインストール
CAが信頼されたルート認証局(CA)ストアにない場合は、次の手順を使用してインストールします。
1. CA pemまたはcrtファイルを開き、図に示すように証明書のインストールをクリックまたは選択します。
CA Certificate
CAが信頼されたルート認証局ストアにない場合は、「This CA Root certificate is not trusted....」というメッセージが表示されます。
2. 「格納場所のローカル・マシン:」をクリックまたは選択します。
CA証明書インポートウィザードの手順1
3.クリックまたは選択 Place all certificates in the following store
と Trusted Root Certification Authorities
ストア:
CA証明書インポートウィザードの手順2
4.証明書のインポートウィザードを完了します。
CA証明書インポートウィザードの手順3
証明書のインストールは、常に次のコマンドで確認できます Windows Key+R
およびオープン mmc.exe
または certlm.msc
を参照。
重要事項
- 次の両方のステートメントが適用される場合は、「IPSec IKE intermediate」(OID = 1.3.6.1.5.5.8.2.2)をEKUとして使用する必要があります。
- IKEv2 サーバが Windows 2008 Server である。
- IKEv2接続に複数のサーバ認証証明書が使用されています。これが当てはまる場合、1 つの証明書に「Server Authentication」の EKU と「IPSec IKE Intermediate」の EKU の両方を配置するか、これらの EKU を証明書間で配布します。少なくとも1つの証明書に「IPSec IKE Intermediate」EKUが含まれていることを確認してください。
詳細については、『IKEv2 VPN接続のトラブルシューティング』を参照してください。
- FlexVPN の展開では、EKU で「IPSec IKE Intermediate」を使用しないでください。使用した場合、IKEv2 クライアントで IKEv2 サーバ証明書が取得されません。その結果、IKE_SA_INIT 応答メッセージで IOS からの CERTREQ に応答できないため、13806 エラー ID で接続が失敗します。
- Subject Alternative Name(SAN)は不要ですが、証明書に含まれている場合には受け入れ可能です。
- Windows 10/11クライアント証明書ストアで、マシン信頼ルート認証局ストアの証明書の数が最も少ないことを確認します。50程度を超えるペイロードがある場合、Cisco IOSは、Windows 10/11ボックスからの既知のすべてのCAの証明書識別名(DN)を含むCert_Reqペイロード全体の読み取りに失敗する可能性があります。その結果、ネゴシエーションが失敗し、クライアントで接続タイムアウトが表示されます。
確認
ここでは、設定が正常に機能しているかどうかを確認します。
CSR1Kv# show crypto ikev2 session detail
IPv4 Crypto IKEv2 Session
Session-id:6, Status:UP-ACTIVE, IKE count:1, CHILD count:1
Tunnel-id Local Remote fvrf/ivrf Status
1 10.0.3.1/4500 192.168.56.1/4500 none/none READY
Encr: AES-CBC, keysize: 256, Hash: SHA96, DH Grp:2, Auth sign: RSA, Auth verify: RSA
Life/Active Time: 86400/5s 7 sec
CE id: 1007, Session-id: 6
Status Description: Negotiation done
Local spi: 3A330D1951062E50 Remote spi: 222ED6C38002E26D
Local id: ikev2.cisco.com
Remote id: ou=TAC,o=Cisco,c=BE,cn=Winclient
Local req msg id: 0 Remote req msg id: 2
Local next msg id: 0 Remote next msg id: 2
Local req queued: 0 Remote req queued: 2
Local window: 5 Remote window: 1
DPD configured for 0 seconds, retry 0
NAT-T is not detected
Cisco Trust Security SGT is disabled
Assigned host addr: 172.16.0.105
Initiator of SA : No
Child sa: local selector 0.0.0.0/0 - 255.255.255.255/65535
remote selector 172.16.0.105/0 - 172.16.0.105/65535
ESP spi in/out: 0xB01348F5/0x142CEC36
AH spi in/out: 0x0/0x0
CPI in/out: 0x0/0x0
Encr: AES-CBC, keysize: 128, esp_hmac: SHA96
ah_hmac: None, comp: IPCOMP_NONE, mode tunnel
CSR1Kv#show crypto ipsec sa peer 192.168.56.1
interface: Virtual-Access1
Crypto map tag: Virtual-Access1-head-0, local addr 10.0.3.1
protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (172.16.0.105/255.255.255.255/0/0)
current_peer 192.168.56.1 port 4500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 223, #pkts encrypt: 223, #pkts digest: 223
#pkts decaps: 315, #pkts decrypt: 315, #pkts verify: 315
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 10.0.3.1, remote crypto endpt.: 192.168.56.1
plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1
current outbound spi: 0x142CEC36(338488374)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xB01348F5(2954053877)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2017, flow_id: CSR:17, sibling_flags FFFFFFFF80000048, crypto map: Virtual-Access1-head-0
sa timing: remaining key lifetime (k/sec): (4607961/2461)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x142CEC36(338488374)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2018, flow_id: CSR:18, sibling_flags FFFFFFFF80000048, crypto map: Virtual-Access1-head-0
sa timing: remaining key lifetime (k/sec): (4607987/2461)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
トラブルシュート
次のデバッグを使用して、FlexVPN接続と証明書のネゴシエーションのトラブルシューティングを行うことができます。
debug crypto condition peer <remove client public ip>
debug crypto ikev2
debug cry pki messages
debug cry pki transactions
Windowsクライアントでは、Windowsログのイベントビューアとアプリケーションを確認できます。VPN接続イベントでは、ソースRasClientが使用されます。たとえば、
RasClientのWindowsイベントビューアログ