简介
本文档介绍如何将ASA配置为VPN网关通过管理VPN隧道接受来自AnyConnect安全移动客户端的连接。
先决条件
要求
Cisco 建议您了解以下主题:
- 通过自适应安全设备管理器(ASDM)配置VPN
- 基本自适应安全设备(ASA)CLI配置
- X509证书
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科ASA软件版本9.12(3)9
- 思科ASDM软件版本7.12.2
- Windows 10与Cisco AnyConnect安全移动客户端4.8.03036版
注意:从Cisco软件下载下载AnyConnect VPNanyconnect-win*.pkg or anyconnect-macos*.pkg
Web部署软件包(仅限注册客户)。将AnyConnect VPN客户端复制到要下载到远程用户计算机的ASA的闪存中,以与ASA建立SSL VPN连接。有关详细信息,请参阅ASA配置指南的安装AnyConnect客户端部分。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
管理VPN隧道可确保在客户端系统启动时连接到企业网络,而不仅仅是在最终用户建立VPN连接时。您可以在办公室外终端(尤其是用户通过VPN不经常连接到办公室网络的设备)上执行补丁管理。需要企业网络连接的终端OS登录脚本也受益于此功能。
AnyConnect Management Tunnel允许管理员在用户登录之前将AnyConnect连接起来,而无需用户干预。AnyConnect管理隧道可与受信任网络检测结合使用,因此仅当终端位于外部并与用户发起的VPN断开连接时才会触发。AnyConnect管理隧道对最终用户是透明的,并在用户启动VPN时自动断开。
操作系统/应用 |
最低版本要求 |
ASA |
9.0.1 |
ASDM |
7.10.1 |
Windows AnyConnect版本 |
4.7.00136 |
macOS AnyConnect版本 |
4.7.01076 |
Linux |
不支持 |
管理隧道的运行
AnyConnect VPN代理服务在系统启动时自动启动。它检测到管理隧道功能已启用(通过管理VPN配置文件),因此它会启动管理客户端应用以启动管理隧道连接。管理客户端应用使用管理VPN配置文件中的主机条目发起连接。然后VPN隧道会照常建立,但有一个例外:管理隧道连接期间不会执行软件更新,因为管理隧道对用户是透明的。
用户通过AnyConnect UI启动VPN隧道,这将触发管理隧道终端。管理隧道终止后,用户隧道的建立会照常继续。
用户断开VPN隧道,从而触发管理隧道的自动重建。
限制
- 不支持用户交互
- 仅支持通过计算机证书存储区(Windows)进行的基于证书的身份验证
- 实施严格的服务器证书检查
- 不支持专用代理
- 不支持公共代理(在未从浏览器检索本地代理设置的平台上支持ProxyNative值)
- 不支持AnyConnect自定义脚本
注意:有关详细信息,请参阅关于管理VPN隧道。
配置
本节介绍如何将Cisco ASA配置为VPN网关,以通过管理VPN隧道接受来自AnyConnect客户端的连接。
通过ASDM/CLI在ASA上进行配置
步骤1:创建AnyConnect组策略。导航至Configuration > Remote Access VPN > Network (Client) Access > Group Policies
。单击。Add
注意:建议创建仅用于AnyConnect管理隧道的新AnyConnect组策略。
第二步:为组Name
“策略”提供。分配/创建Address Pool
。选择Tunneling Protocols
和SSL VPN Client
/或IPsec IKEv2
,如图所示。
第三步: 导航至Advanced > Split Tunneling
。如图Policy
Tunnel Network List Below
,配置Network List
as并选择。
注意:如果未为IP协议(IPv4和IPv6)推送客户端地址,则设置必须Client Bypass Protocol
,以使对应的流量不会受到管理隧道的中断enabled
。要配置,请参阅步骤4。
第四步: 导航至Advanced > AnyConnect Client
。 设置为.Client Bypass Protocol
Enable
单击OK
“保存”,如图所示。
第五步:如本图所示,点击Apply
,将配置推送到ASA。
组策略的CLI配置:
ip local pool VPN_Pool 192.168.10.1-192.168.10.100 mask 255.255.255.0
!
access-list VPN-Split standard permit 172.16.0.0 255.255.0.0
!
group-policy AnyConnect_MGMT_Tunnel internal
group-policy AnyConnect_MGMT_Tunnel attributes
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-network-list value VPN-Split
client-bypass-protocol enable
address-pools value VPN_Pool
第六步:创建AnyConnect连接配置文件导航至Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profile
。 单击。Add
注意:建议创建仅用于AnyConnect管理隧道的新AnyConnect连接配置文件。
步骤 7.为连接Name
配置文件提供一个,并将Authentication Method
设置为Certificate only
。选择在第Group Policy
1步中创建的名称。
注意:确保ASA上存在来自本地CA的根证书。 导航到Configuration > Remote Access VPN > Certificate Management > CA Certificates
以添加/查看证书。
注意:确保同一本地CA颁发的身份证书存在于计算机证书存储区(适用于Windows)和/或系统密钥链(适用于macOS)中。
步骤 8导航至Advanced > Group Alias/Group URL
。单击Add
下Group URLs
,然后添加URL
。确保Enabled
已选中。单击OK
“保存”,如图所示。
如果使用IKEv2,请确保IPsec (IKEv2) Access
在用于AnyConnect的接口上已启用。
步骤 9单击Apply
将配置推送到ASA。
连接配置文件(隧道组)的CLI配置:
tunnel-group AnyConnect_MGMT_Tunnel type remote-access
tunnel-group AnyConnect_MGMT_Tunnel general-attributes
default-group-policy AnyConnect_MGMT_Tunnel
tunnel-group AnyConnect_MGMT_Tunnel webvpn-attributes
authentication certificate
group-url https://asa.example.com/AnyConnect_MGMT_Tunnel enable
步骤 10确保在ASA上安装受信任证书并绑定到用于AnyConnect连接的接口。导航到Configuration > Remote Access VPN > Advanced > SSL Settings
,添加/查看此设置。
注意:请参阅在ASA上安装身份证书。
SSL信任点的CLI配置:
ssl trust-point ROOT-CA outside
创建AnyConnect管理VPN配置文件
步骤1: 创建AnyConnect客户端配置文件。导航至Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile
。单击Add
,如图所示。
第二步:提供Profile Name
。选择Profile Usage
AnyConnect Management VPN profile
。选择在步骤Group Policy
1中创建的。单击OK
,如图所示。
第三步:选择已创建的配置文件,然后单击Edit,如图所示。
第四步:导航至Server List
。单击Add
以添加新的服务器列表条目,如图所示。
第五步:提供Display Name
。添加FQDN/IP address
ASA的。提供User Group
作为隧道组名称。Group URL
会自动填充和FQDN
User Group
。单击。OK
注意:FQDN/IP地址+用户组必须与步骤8中配置AnyConnect连接配置文件时提到的组URL相同。
注意:将IKEv2用作协议的AnyConnect也可用于建立到ASA的管理VPN。确保Primary Protocol
在步骤IPsec
5中设置为。
第六步:如图所示,点击保存OK
(Save)。
步骤 7.单Apply
击将配置推送到ASA,如图所示。
添加AnyConnect管理VPN配置文件后的CLI配置。
webvpn
enable outside
hsts
enable
max-age 31536000
include-sub-domains
no preload
no anyconnect-essentials
anyconnect image disk0:/anyconnect-win-4.8.02045-webdeploy-k9.pkg 1
anyconnect profiles AnyConnect_MGMT_Profile disk0:/anyconnect_mgmt_profile.vpnm
anyconnect enable
tunnel-group-list enable
cache
disable
error-recovery disable
!
group-policy AnyConnect_MGMT_Tunnel internal
group-policy AnyConnect_MGMT_Tunnel attributes
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-network-list value VPN-Split
client-bypass-protocol enable
address-pools value VPN_Pool
webvpn
anyconnect profiles value AnyConnect_MGMT_Profile type vpn-mgmt
AnyConnect客户端计算机上的AnyConnect管理VPN配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="false">false</UseStartBeforeLogon>
true
<ShowPreConnectMessage>false</ShowPreConnectMessage>
Machine
System
true
<ProxySettings>IgnoreProxy</ProxySettings>
<AllowLocalProxyConnections>true</AllowLocalProxyConnections>
<AuthenticationTimeout>30</AuthenticationTimeout>
--- Output Omitted ---
<CaptivePortalRemediationBrowserFailover>false</CaptivePortalRemediationBrowserFailover>
<AllowManualHostInput>false</AllowManualHostInput>
</ClientInitialization>
AnyConnect_MGMT_Tunnel
asa.example.com
AnyConnect_MGMT_Tunnel
</AnyConnectProfile>
注意:如果用户AnyConnect VPN配置文件中使用了受信任网络检测(TND),则建议匹配管理VPN配置文件中相同的设置,以获得一致的用户体验。根据应用到用户VPN隧道配置文件的TND设置触发管理VPN隧道。 此外,管理VPN配置文件中的TND Connect操作(仅在管理VPN隧道处于活动状态时实施)始终应用于用户VPN隧道,以确保管理VPN隧道对最终用户透明。
注意:在任何最终用户PC上,如果管理VPN配置文件启用了TND设置,且用户VPN配置文件缺失,则它会考虑TND的默认首选项设置(在AC客户端应用中的默认首选项中禁用),以代替缺失的用户VPN配置文件。这种不匹配可能导致意外/未定义的行为。
默认情况下,TND设置在默认首选项中禁用。
要克服AnyConnect客户端应用中的默认首选项硬编码设置,最终用户PC必须拥有两个VPN配置文件,一个用户VPN配置文件和一个AC管理VPN配置文件,并且两者必须具有相同的TND设置。
管理VPN隧道连接和断开背后的逻辑是,为了建立管理VPN隧道,AC代理使用用户VPN配置文件TND设置,并且对于断开管理VPN隧道,它检查管理VPN配置文件TND设置。
AnyConnect管理VPN配置文件的部署方法
- 使用ASA连接配置文件成功完成用户VPN连接,以便从VPN网关下载AnyConnect管理VPN配置文件。
注意:如果用于管理VPN隧道的协议是IKEv2,则需要通过SSL建立第一个连接(为了从ASA下载AnyConnect管理VPN配置文件)。
(可选)配置自定义属性以支持全隧道配置
默认情况下,管理VPN隧道需要包括隧道配置的分割以避免对用户发起的网络通信的影响。在用于管理隧道连接的组策略中配置自定义属性时,可以覆盖此属性。
步骤1:导航至Configuration > Remote Access VPN > Network (Client) Access > Advanced > AnyConnect Custom Attributes
。 单击,如图所示。
步骤 2将自定义属性Type设置为ManagementTunnelAllAllowed
并提供一Description
项。单击OK
,如图所示。
第三步: 导航至Configuration > Remote Access VPN > Network (Client) Access > Advanced > AnyConnect Custom Attribute Names
。单击,如图所示。
第四步:选择Type作为ManagementTunnelAllAllowed
。 将Name设置为true
。单Add
击提供自定义属性值,如图所示。
第五步:将Value设置为true
。单击OK
,如图所示。
第六步:导航至Configuration > Remote Access VPN > Network (Client) Access > Group Policies
。选择Group Policy。 点Edit
击,如图所示。
步骤 7.如图所示,导航至Advanced > Split Tunneling
。将策略配置为Tunnel All Networks
。
步骤 8导航至Advanced > Anyconnect Client > Custom Attributes
。单击Add
,如图所示。
步骤 9 选择Attribute type作为ManagementTunnelAllAllowed
并选择Value作为 true
。单击 OK
,如图所示。
步骤 10单击Apply
,将配置推送到ASA,如图所示。
添加自定义属性ManagementTunnelAllAllowed
后,CLI配置:
webvpn
enable outside
anyconnect-custom-attr ManagementTunnelAllAllowed description ManagementTunnelAllAllowed
hsts
enable
max-age 31536000
include-sub-domains
no preload
no anyconnect-essentials
anyconnect image disk0:/anyconnect-win-4.8.02045-webdeploy-k9.pkg 1
anyconnect profiles AnyConnect_MGMT_Profile disk0:/anyconnect_mgmt_profile.vpnm
anyconnect enable
tunnel-group-list enable
cache
disable
error-recovery disable
!
anyconnect-custom-data ManagementTunnelAllAllowed true true
!
group-policy AnyConnect_MGMT_Tunnel internal
group-policy AnyConnect_MGMT_Tunnel attributes
vpn-tunnel-protocol ikev2 ssl-client
split-tunnel-policy tunnelall
client-bypass-protocol enable
address-pools value VPN_Pool
anyconnect-custom ManagementTunnelAllAllowed value true
webvpn
anyconnect profiles value AnyConnect_MGMT_Profile type vpn-mgmt
验证
使用命令验证ASA CLI上的管理VPN隧道连show vpn-sessiondb detail anyconnect
接。
ASA# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : vpnuser Index : 10
Assigned IP : 192.168.10.1 Public IP : 10.65.84.175
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES-GCM-256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA384
Bytes Tx : 17238 Bytes Rx : 1988
Pkts Tx : 12 Pkts Rx : 13
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : AnyConnect_MGMT_Tunnel Tunnel Group : AnyConnect_MGMT_Tunnel
Login Time : 01:23:55 UTC Tue Apr 14 2020
Duration : 0h:11m:36s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : c0a801010000a0005e9510ab
Security Grp : none
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
--- Output Omitted ---
DTLS-Tunnel:
Tunnel ID : 10.3
Assigned IP : 192.168.10.1 Public IP : 10.65.84.175
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: DTLSv1.2 UDP Src Port : 57053
UDP Dst Port : 443 Auth Mode : Certificate
Idle Time Out: 30 Minutes Idle TO Left : 18 Minutes
Client OS : Windows
Client Type : DTLS VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03036
Bytes Tx : 17238 Bytes Rx : 1988
Pkts Tx : 12 Pkts Rx : 13
Pkts Tx Drop : 0 Pkts Rx Drop : 0
验证ASDM上的管理VPN隧道连接。
导航到Monitoring > VPN > VPN Statistics > Sessions。按AnyConnect客户端过滤以查看客户端会话。
验证客户端计算机上的管理VPN隧道连接:
故障排除
新的UI统计行(管理连接状态)可用于排除管理隧道连接问题的故障。以下是常见的错误状态:
已断开连接(禁用):
- 此功能已禁用。
- 确保管理VPN配置文件已通过用户隧道连接(要求您将管理VPN配置文件添加到用户隧道组策略)部署至客户端,或通过手动上传配置文件实现带外部署。
- 确保管理VPN配置文件配置有包含隧道组的单个主机条目。
已断开连接(受信任网络):
已断开连接(用户隧道处于活动状态):
已断开连接(进程启动失败):
已断开连接(连接失败):
- 建立管理隧道时遇到连接故障。
- 确保证书身份验证在隧道组中配置,组策略中不存在标语,并且服务器证书必须受信任。
已断开连接(无效的VPN配置):
- 从VPN服务器收到无效的分割隧道或客户端旁路协议配置。
- 根据文档检查管理隧道组策略中的配置。
已断开连接(软件更新挂起):
已断开连接:
收集DART以进一步排除故障。
相关信息