はじめに
このドキュメントでは、ローカルユーザデータベースを使用したセキュアクライアント(AnyConnect)IKEv2/EAP認証を介したアクセスのためのFlexVPNヘッドエンドの設定について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cloud Services Router(CSR)バージョン16.9.2
- Windows 10 で動作する AnyConnect クライアント バージョン 4.6.03049
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
AnyConnect-EAP(または集約認証)を使用すると、FlexVPNサーバはシスコ独自のAnyConnect-EAP方式でAnyConnectクライアントを認証できます。
EAP-Generic Token Card(EAP-GTC)、EAP-Message Digest 5(EAP-MD5)などの標準ベースのExtensible Authentication Protocol(EAP)方式とは異なり、FlexVPNサーバはEAPパススルーモードでは動作しません。
クライアントとのすべてのEAP通信はFlexVPNサーバで終端し、AUTHペイロードの構築に必要なセッションキーはFlexVPNサーバでローカルに計算されます。
FlexVPNサーバは、IKEv2 RFCの要件に従い、証明書を使用してクライアントに対してサーバ自体を認証する必要があります。
ローカル ユーザ認証は Flex Server でサポートされており、リモート認証はオプションです。
これは、リモートアクセスユーザの数が少ない小規模な導入や、外部の認証、許可、アカウンティング(AAA)サーバにアクセスできない環境に最適です。
ただし大規模導入環境や、ユーザ別の属性が必要な状況では、認証と認可に外部 AAA サーバを使用することが推奨されます。
AnyConnect-EAPの実装では、リモート認証、許可、およびアカウンティングにRADIUSを使用できます。
ネットワーク図
設定
ローカルデータベースを使用したユーザの認証と認可
注:ルータのローカルデータベースに対してユーザを認証するには、EAPを使用する必要があります。ただし、EAPを使用するには、ローカル認証方式がrsa-sigである必要があります。そのため、ルータには適切なID証明書が必要であり、自己署名証明書は使用できません。
設定例では、ローカル ユーザ認証、リモート ユーザおよびグループ認可、およびリモート アカウンティングを使用します。
ステップ 1:AAAを有効にし、認証、許可、およびアカウンティング(AAA)リストを設定し、ユーザ名をローカルデータベースに追加します。
aaa new-model
!
aaa authentication login a-eap-authen-local local
aaa authorization network a-eap-author-grp local
!
username test password cisco123
ステップ 2:ルータ証明書を保持するトラストポイントを設定します。この例では、PKCS12ファイルインポートを使用します。その他のオプションについては、『セキュリティおよびVPNコンフィギュレーションガイド、IOS XE 17.x』の「章:PKIの証明書登録の設定」を参照してください。
Router(config)# crypto pki import IKEv2-TP pkcs12 bootflash:IKEv2-TP.p12 password cisco123
ステップ 3:AnyConnect VPNクライアントにアドレスを割り当てるIPローカルプールを定義します。
ip local pool ACPOOL 192.168.10.5 192.168.10.10
ステップ 4:IKEv2ローカル認可ポリシーを作成します。
crypto ikev2 authorization policy ikev2-auth-policy
pool ACPOOL
dns 10.0.1.1
ステップ 5(オプション):目的のIKEv2プロポーザルとポリシーを作成します。設定されていない場合は、スマートデフォルトが使用されます。
crypto ikev2 proposal IKEv2-prop1
encryption aes-cbc-256
integrity sha256
group 14
!
crypto ikev2 policy IKEv2-pol
proposal IKEv2-prop1
手順 6:AnyConnectプロファイルの作成
注:AnyConnectプロファイルはクライアントマシンに配信する必要があります。詳細については、次のセクションを参照してください。
図に示すように、AnyConnectプロファイルエディタでクライアントプロファイルを設定します。
Addをクリックして、VPNゲートウェイ用のエントリを作成します。必ずPrimary ProtocolとしてIPsecを選択してください。ASA gatewayオプションのチェックマークを外す。
プロファイルを保存します。[ファイル] -> [名前を付けて保存]。このプロファイルに相当する XML:
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">false</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<CertificateStoreMac>All</CertificateStoreMac>
<CertificateStoreOverride>false</CertificateStoreOverride>
<ProxySettings>Native</ProxySettings>
<AllowLocalProxyConnections>true</AllowLocalProxyConnections>
<AuthenticationTimeout>12</AuthenticationTimeout>
<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>
<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>
<LocalLanAccess UserControllable="true">false</LocalLanAccess>
<DisableCaptivePortalDetection UserControllable="true">false</DisableCaptivePortalDetection>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<IPProtocolSupport>IPv4,IPv6</IPProtocolSupport>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">ReconnectAfterResume</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="false">Automatic</RSASecurIDIntegration>
<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>
<AutomaticVPNPolicy>false</AutomaticVPNPolicy>
<PPPExclusion UserControllable="false">Disable
<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>
</PPPExclusion>
<EnableScripting UserControllable="false">false</EnableScripting>
<EnableAutomaticServerSelection UserControllable="false">false
<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>
<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>
</EnableAutomaticServerSelection>
<RetainVpnOnLogoff>false
</RetainVpnOnLogoff>
<AllowManualHostInput>true</AllowManualHostInput>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>VPN IOS-XE</HostName>
<HostAddress>vpn.example.com</HostAddress>
<PrimaryProtocol>IPsec
<StandardAuthenticationOnly>true
<AuthMethodDuringIKENegotiation>EAP-AnyConnect</AuthMethodDuringIKENegotiation>
</StandardAuthenticationOnly>
</PrimaryProtocol>
</HostEntry>
</ServerList>
</AnyConnectProfile>
注: AnyConnectでは、デフォルトのIKE IDとして*$AnyConnectClient$*をタイプkey-idとして使用します。ただし、導入のニーズに合わせて、このIDをAnyConnectプロファイルで手動で変更できます。
注:XMLプロファイルをルータにアップロードするには、バージョン16.9.1以降が必要です。古いソフトウェアバージョンを使用している場合は、クライアントでプロファイルのダウンロード機能を無効にする必要があります。詳細については、「AnyConnectダウンローダ機能の無効化」セクションを参照してください。
作成したXMLプロファイルをルータのフラッシュメモリにアップロードし、プロファイルを定義します。
crypto vpn anyconnect profile acvpn bootflash:/acvpn.xml
注:AnyConnect XMLプロファイルに使用されるファイル名は常にacvpn.xmlです。別のファイル名を使用しても、PCに送信されるプロファイルの名前はacvpn.xmlになります。 したがって、ルータ設定で名前を変更しないことを推奨します。
手順 7:AnyConnect-EAPクライアント認証方式のIKEv2プロファイルを作成します。
crypto ikev2 profile AnyConnect-EAP
match identity remote key-id *$AnyConnectClient$*
authentication local rsa-sig
authentication remote anyconnect-eap aggregate
pki trustpoint IKEv2-TP
aaa authentication anyconnect-eap a-eap-authen-local
aaa authorization group anyconnect-eap list a-eap-author-grp ikev2-auth-policy
aaa authorization user anyconnect-eap cached
virtual-template 100
anyconnect profile acvpn
注:aaa authentication eap / anyconnect-eapコマンドでは、リモート認証方式を設定する前に、ローカル認証方式がrsa-sigとして設定されていることを確認します。
ステップ 8:ルータでHTTP-URLベースの証明書検索とHTTPサーバを無効にします。
no crypto ikev2 http-url cert
no ip http server
no ip http secure-server
注:ご使用のルータハードウェアがNGEアルゴリズム(sha-256、aes-gcm、ecdh、ecdsaなど)をサポートしているかどうかを確認するには、『次世代暗号化に関するサポート』を参照してください。サポートしていない場合、トンネル確立の最終段階でハードウェアへのIPSec SAのインストールが失敗します。
ステップ 9:データの保護に使用する暗号化アルゴリズムとハッシュアルゴリズムを定義する
crypto ipsec transform-set TS esp-aes 256 esp-sha256-hmac
mode tunnel
ステップ 10:IPSecプロファイルを作成します。
crypto ipsec profile AnyConnect-EAP
set transform-set TS
set ikev2-profile AnyConnect-EAP
ステップ 11何らかのダミーIPアドレスを使用してループバックインターフェイスを設定します。バーチャルアクセスインターフェイスは、そこからIPアドレスを借ります。
interface loopback100
ip address 10.0.0.1 255.255.255.255
ステップ 12仮想テンプレートを設定します(テンプレートをIKEv2プロファイルに関連付けます)。
interface Virtual-Template100 type tunnel
ip unnumbered Loopback100
ip mtu 1400
tunnel mode ipsec ipv4
tunnel protection ipsec profile AnyConnect-EAP
ステップ 13(オプション):デフォルトでは、クライアントからのすべてのトラフィックはトンネル(フルトンネル)を介して送信されます。スプリットトンネルを設定すると、選択したトラフィックだけがトンネルを通過できるようになります。
ip access-list standard split_tunnel
permit 10.0.0.0 0.255.255.255
!
crypto ikev2 authorization policy ikev2-auth-policy
route set access-list split_tunnel
ステップ 14(オプション):すべてのトラフィックがトンネルを通過する必要がある場合は、リモートクライアントにインターネット接続を許可するようにNATを設定します。
ip access-list extended NAT
permit ip 192.168.10.0 0.0.0.255 any
!
ip nat inside source list NAT interface GigabitEthernet1 overload
!
interface GigabitEthernet1
ip nat outside
!
interface Virtual-Template 100
ip nat inside
例:AnyConnectプロファイルのダウンロード設定
次の例は、FlexVPN AnyConnectプロファイルダウンロード機能を設定する方法を示しています。
注:Anyconnectクライアントマシンでローカルポリシーファイルを変更する必要はありません。IKEv2を使用したAnyConnectプロファイルダウンロード機能を設定すると、VPNダウンローダモジュールが正しく動作します。XMLプロファイルが更新されると、必要なXMLプロファイルがクライアントデバイスで自動的に更新されます。
注:HTTPSサーバとSSLポリシーを一緒に使用しないでください。SSLポリシーをイネーブルにする前に、ip http secure-serverコマンドを削除します。 これらの両方の機能を同時に有効にし、デバイスが着信SSL VPN接続を受信すると、デバイスがクラッシュする可能性があります。
no ip http secure-server
crypto ssl policy ssl-policy
pki trustpoint IKEv2-TP sign
ip address local 10.0.0.1 port 443
no shutdown
crypto ssl profile ssl_prof
match policy ssl-policy
AnyConnectダウンローダ機能を無効にします(16.9.1より前のバージョンのみ)。
この手順は、16.9.1より古いバージョンを使用する場合にのみ必要です。このバージョン以前は、XMLプロファイルをルータにアップロードする機能は使用できませんでした。デフォルトでは、セキュアクライアント(AnyConnect)は、ログインが成功した後にXMLプロファイルのダウンロードを試行します。プロファイルが使用できない場合、接続は失敗します。回避策として、クライアント自体でAnyConnectプロファイルのダウンロード機能を無効にすることができます。これを行うには、次のファイルを変更します。
For Windows:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\AnyConnectLocalPolicy.xml
For MAC OS:
/opt/cisco/anyconnect/AnyConnectLocalPolicy.xml
BypassDownloaderオプションは、次のようにtrueに設定されます。
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectLocalPolicy xmlns="http://schemas.xmlsoap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap/encoding/ AnyConnectLocalPolicy.xsd" acversion="4.6.03049">
<BypassDownloader>true</BypassDownloader>
<EnableCRLCheck>false</EnableCRLCheck>
<ExcludeFirefoxNSSCertStore>false</ExcludeFirefoxNSSCertStore>
<ExcludeMacNativeCertStore>false</ExcludeMacNativeCertStore>
<ExcludePemFileCertStore>false</ExcludePemFileCertStore>
<ExcludeWinNativeCertStore>false</ExcludeWinNativeCertStore>
<FipsMode>false</FipsMode>
<RestrictPreferenceCaching>false</RestrictPreferenceCaching>
<RestrictTunnelProtocols>false</RestrictTunnelProtocols>
<RestrictWebLaunch>false</RestrictWebLaunch>
<StrictCertificateTrust>false</StrictCertificateTrust>
<UpdatePolicy>
<AllowComplianceModuleUpdatesFromAnyServer>true</AllowComplianceModuleUpdatesFromAnyServer>
<AllowISEProfileUpdatesFromAnyServer>true</AllowISEProfileUpdatesFromAnyServer>
<AllowServiceProfileUpdatesFromAnyServer>true</AllowServiceProfileUpdatesFromAnyServer>
<AllowSoftwareUpdatesFromAnyServer>true</AllowSoftwareUpdatesFromAnyServer>
<AllowVPNProfileUpdatesFromAnyServer>true</AllowVPNProfileUpdatesFromAnyServer></UpdatePolicy>
</AnyConnectLocalPolicy>
変更後、AnyConnectクライアントを再起動する必要があります。
AnyConnect XMLプロファイルの配信
AnyConnectの新規インストール(XMLプロファイルの追加なし)では、ユーザはAnyConnectクライアントのアドレスバーにVPNゲートウェイのFQDNを手動で入力できます。これにより、ゲートウェイへのSSL接続が確立されます。デフォルトでは、AnyConnectクライアントはIKEv2/IPsecプロトコルを使用してVPNトンネルを確立しようとしません。これが、FlexVPNゲートウェイとのIKEv2/IPsecトンネルを確立するためにクライアントPCへのXMLプロファイルのインストールが必須である理由です。
プロファイルは、AnyConnectアドレスバーのドロップダウンリストから選択されたときに使用されます。
リストに表示される名前は、AnyConnectプロファイルエディタ – >サーバリスト – >サーバリストエントリの表示名フィールドで指定されます。
XMLプロファイルは、クライアントのオペレーティングシステムに応じて、ディレクトリに手動で配置できます。
For Windows:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile
For MAC OS:
/opt/cisco/anyconnect/profile
プロファイルがGUIに表示されるようにするには、AnyConnectクライアントを再起動する必要があります。AnyConnectウィンドウを閉じるだけでは不十分です。WindowsトレイでAnyConnectアイコンを右クリックし、Quitオプションを選択すると、プロセスを再起動できます。
コミュニケーションフロー
ここをクリック
IKEv2 および EAP エクスチェンジ
確認
ここでは、設定が正常に機能しているかどうかを確認します。
! Check IKEv2 SA parameters
Router# show crypto ikev2 sa detailed
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 192.0.2.1/4500 192.0.2.100/50899 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: RSA, Auth verify: AnyConnect-EAP
Life/Active Time: 86400/758 sec
CE id: 1004, Session-id: 4
Status Description: Negotiation done
Local spi: 413112E83D493428 Remote spi: 696FA78292A21EA5
Local id: 192.0.2.1
Remote id: *$AnyConnectClient$*
Remote EAP id: test <------ username
Local req msg id: 0 Remote req msg id: 31
Local next msg id: 0 Remote next msg id: 31
Local req queued: 0 Remote req queued: 31
Local window: 5 Remote window: 1
DPD configured for 0 seconds, retry 0
Fragmentation not configured.
Dynamic Route Update: disabled
Extended Authentication not configured.
NAT-T is detected outside
Cisco Trust Security SGT is disabled
Assigned host addr: 192.168.10.8. <---- Assigned IP
Initiator of SA : No
! Check the crypto session information
Router# show crypto session detail
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
R - IKE Auto Reconnect, U - IKE Dynamic Route Update
S - SIP VPN
Interface: Virtual-Access1. <----- Virtual interface associated with the client
Profile: AnyConnect-EAP
Uptime: 00:14:54
Session status: UP-ACTIVE
Peer: 192.0.2.100 port 50899 fvrf: (none) ivrf: (none). <----- Public IP of the remote client
Phase1_id: *$AnyConnectClient$*
Desc: (none)
Session ID: 8
IKEv2 SA: local 192.0.2.1/4500 remote 192.0.2.100/50899 Active
Capabilities:N connid:1 lifetime:23:45:06
IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 192.168.10.8
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 89 drop 0 life (KB/Sec) 4607990/2705. <------ Packets received from the client
Outbound: #pkts enc'ed 2 drop 0 life (KB/Sec) 4607999/2705. <------ Packets sent to the client
! Check the actual configuration applied for the Virtual-Acces interface associated with client
Router# show derived-config interface virtual-access 1.
Building configuration...
Derived configuration : 258 bytes
!
interface Virtual-Access1
ip unnumbered Loopback100
ip mtu 1400
ip nat inside
tunnel source 192.0.2.1
tunnel mode ipsec ipv4
tunnel destination 192.0.2.100
tunnel protection ipsec profile AnyConnect-EAP
no tunnel protection ipsec initiate
end
トラブルシュート
このセクションでは、設定のトラブルシューティングに役立つ情報を紹介します。
- ヘッドエンドから収集される IKEv2 デバッグ:
debug crypto ikev2
debug crypto ikev2 packet
debug crypto ikev2 error
- ローカル属性とリモート属性の割り当てを表示するための AAA デバッグ:
debug aaa authorization
debug aaa authentication
- AnyConnectクライアント用の診断およびレポートツール(DART)。
DARTバンドルを収集するには、ドキュメント『Cisco Secure Client(AnyConnectを含む)管理者ガイド、リリース5、章:Cisco Secure Clientのトラブルシューティング』に記載されている手順を実行します。