简介
本文档介绍在由FMC管理的FTD上使用AAA和证书身份验证配置SSL思科安全客户端的步骤。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科Firepower管理中心(FMC)
- 防火墙威胁防御虚拟(FTD)
- VPN身份验证流程
使用的组件
- 思科VMWare Firepower管理中心7.4.1
- 思科防火墙威胁防御虚拟7.4.1
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
随着组织采取更严格的安全措施,将双因素身份验证(2FA)与基于证书的身份验证相结合已成为一种常见做法,可增强安全性并防范未经授权的访问。 可以显著改善用户体验和安全性的功能之一是能够预填思科安全客户端中的用户名。此功能简化了登录过程并增强了远程访问的整体效率。
本文档介绍如何在FTD上将预填充的用户名与Cisco Secure Client集成,以确保用户能够快速安全地连接到网络。
这些证书中包含用于授权目的的公用名称。
- CA : ftd-ra-ca-common-name
- 客户端证书:sslVPNClientCN
- 服务器证书:192.168.1.200
网络图
下图显示本文档示例中使用的拓扑。
网络图
配置
FMC中的配置
步骤1:配置FTD接口
导航到Devices > Device Management,在Interfaces选项卡中编辑目标FTD设备,并为FTD配置内部和外部接口。
对于GigabitEthernet0/0,
- 名称:outside
- 安全区域:outsideZone
- IP地址:192.168.1.200/24
对于GigabitEthernet0/1,
- 名称:inside
- 安全区域:insideZone
- IP地址:192.168.10.200/24
FTD接口
第二步:确认思科安全客户端许可证
导航到设备>设备管理,编辑目标FTD设备,在设备选项卡中确认Cisco安全客户端许可证。
安全客户端许可证
第三步:添加策略分配
导航到Devices > VPN > Remote Access,单击Add按钮。
添加远程访问VPN
输入必要信息,然后单击Next按钮。
- 名称:ftdvpn-aaa-cert-auth
- VPN协议:SSL
- 目标设备:1.x.x.49
策略分配
第四步:连接配置文件的配置详细信息
输入连接配置文件的必要信息,然后点击本地领域项目旁边的+按钮。
- 身份验证方法:客户端证书和AAA
- 身份验证服务器:本地
- Username From Certificate:映射特定字段
- 主字段:CN(公用名)
- 辅助字段:OU(组织单位)
连接配置文件的详细信息
从Add Realm 下拉列表中单击Local,以便添加新的本地领域。
添加本地领域
输入本地领域的必要信息,然后单击Save按钮。
- 名称:LocalRealmTest
- 用户名:sslVPNClientCN
本地领域的详细信息
第五步:为连接配置文件添加地址池
单击IPv4地址池项目旁边的edit按钮。
添加IPv4地址池
输入必要信息以添加新的IPv4地址池。为连接配置文件选择新的IPv4地址池。
- 名称:ftdvpn-aaa-cert-pool
- IPv4地址范围:172.16.1.40-172.16.1.50
- 掩码:255.255.255.0
IPv4地址池的详细信息
第六步:添加连接配置文件的组策略
点击组策略项旁边的+按钮。
添加组策略
输入必要信息以添加新的组策略。选择连接配置文件的新组策略。
- 名称:ftdvpn-aaa-cert-grp
- VPN协议:SSL
组策略详细信息
步骤 7.为连接配置文件配置安全客户端映像
选择secure client image file并单击Next按钮。
选择安全客户端镜像
步骤 8连接配置文件的配置访问和证书
为VPN连接选择Security Zone,然后单击Certificate Enrollment项目旁边的+按钮。
选择安全区域
输入FTD证书的必要信息,并从本地计算机导入PKCS12文件。
- 名称:ftdvpn-cert
- 注册类型:PKCS12文件
添加FTD证书
确认在访问和证书向导中输入的信息,然后单击下一步按钮。
注意:启用解密流量的旁路访问控制策略(sysopt permit-vpn),以使解密的VPN流量不会受到访问控制策略检查。
确认访问和证书中的设置
步骤 9确认连接配置文件的摘要
确认输入的VPN连接信息,然后单击Finish按钮。
确认VPN连接的设置
确认远程访问VPN策略的摘要并将设置部署到FTD。
远程访问VPN策略摘要
在FTD CLI中确认
从FMC部署后,在FTD CLI中确认VPN连接设置。
// Defines IP of interface
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 192.168.1.200 255.255.255.0
interface GigabitEthernet0/1
nameif inside
security-level 0
ip address 192.168.10.200 255.255.255.0
// Defines a pool of addresses
ip local pool ftdvpn-aaa-cert-pool 172.16.1.40-172.16.1.50 mask 255.255.255.0
// Defines a local user
username sslVPNClientCN password ***** encrypted
// Defines Trustpoint for Server Certificate
crypto ca trustpoint ftdvpn-cert
keypair ftdvpn-cert
crl configure
// Server Certificate Chain
crypto ca certificate chain ftdvpn-cert
certificate 22413df584b6726c
3082037c 30820264 a0030201 02020822 413df584 b6726c30 0d06092a 864886f7
......
quit
certificate ca 5242a02e0db6f7fd
3082036c 30820254 a0030201 02020852 42a02e0d b6f7fd30 0d06092a 864886f7
......
quit
// Configures the FTD to allow Cisco Secure Client connections and the valid Cisco Secure Client images
webvpn
enable outside
http-headers
hsts-server
enable
max-age 31536000
include-sub-domains
no preload
hsts-client
enable
x-content-type-options
x-xss-protection
content-security-policy
anyconnect image disk0:/csm/cisco-secure-client-win-5.1.3.62-webdeploy-k9.pkg 1 regex "Windows"
anyconnect enable
tunnel-group-list enable
cache
disable
error-recovery disable
// Bypass Access Control policy for decrypted traffic
// This setting is displayed in the 'show run all' command output
sysopt connection permit-vpn
// Configures the group-policy to allow SSL connections
group-policy ftdvpn-aaa-cert-grp internal
group-policy ftdvpn-aaa-cert-grp attributes
banner none
wins-server none
dns-server none
dhcp-network-scope none
vpn-simultaneous-logins 3
vpn-idle-timeout 30
vpn-idle-timeout alert-interval 1
vpn-session-timeout none
vpn-session-timeout alert-interval 1
vpn-filter none
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
ipv6-split-tunnel-policy tunnelall
split-tunnel-network-list none
default-domain none
split-dns none
split-tunnel-all-dns disable
client-bypass-protocol disable
vlan none
address-pools none
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1406
anyconnect firewall-rule client-interface public none
anyconnect firewall-rule client-interface private none
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method none
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression none
anyconnect dtls compression none
anyconnect modules value none
anyconnect ask none default anyconnect
anyconnect ssl df-bit-ignore disable
// Configures the tunnel-group to use the aaa & certificate authentication
tunnel-group ftdvpn-aaa-cert-auth type remote-access
tunnel-group ftdvpn-aaa-cert-auth general-attributes
address-pool ftdvpn-aaa-cert-pool
default-group-policy ftdvpn-aaa-cert-grp
// These settings are displayed in the 'show run all' command output. Start
authentication-server-group LOCAL
secondary-authentication-server-group none
no accounting-server-group
default-group-policy ftdvpn-aaa-cert-grp
username-from-certificate CN OU
secondary-username-from-certificate CN OU
authentication-attr-from-server primary
authenticated-session-username primary
username-from-certificate-choice second-certificate
secondary-username-from-certificate-choice second-certificate
// These settings are displayed in the 'show run all' command output. End
tunnel-group ftdvpn-aaa-cert-auth webvpn-attributes
authentication aaa certificate
pre-fill-username client
group-alias ftdvpn-aaa-cert-auth enable
在VPN客户端中确认
步骤1:确认客户端证书
导航到证书-当前用户>个人>证书,检查用于身份验证的客户端证书。
确认客户端证书
双击客户端证书,导航到详细信息,检查主题的详细信息。
客户端证书的详细信息
第二步:确认CA
导航到证书-当前用户>受信任的根证书颁发机构>证书,检查用于身份验证的CA。
- 颁发者:ftd-ra-ca-common-name
确认CA
验证
步骤1:启动VPN连接
在终端上,启动Cisco安全客户端连接。用户名从客户端证书提取,您需要输入密码进行VPN身份验证。
注意:用户名提取自本文档中客户端证书的CN(公用名)字段。
启动VPN连接
第二步:确认FMC中的活动会话
导航到分析>用户>活动会话,检查VPN身份验证的活动会话。
确认活动会话
第三步:在FTD CLI中确认VPN会话
在FTD (Lina) CLI中运行show vpn-sessiondb detail anyconnect命令以确认VPN会话。
ftd702# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : sslVPNClientCN Index : 7
Assigned IP : 172.16.1.40 Public IP : 192.168.1.11
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-128 DTLS-Tunnel: (1)AES-GCM-256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA256 DTLS-Tunnel: (1)SHA384
Bytes Tx : 14780 Bytes Rx : 15386
Pkts Tx : 2 Pkts Rx : 37
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : ftdvpn-aaa-cert-grp Tunnel Group : ftdvpn-aaa-cert-auth
Login Time : 02:38:22 UTC Mon Jun 17 2024
Duration : 0h:01m:22s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : cb00718200007000666fa19e
Security Grp : none Tunnel Zone : 0
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 7.1
Public IP : 192.168.1.11
Encryption : none Hashing : none
TCP Src Port : 50035 TCP Dst Port : 443
Auth Mode : Certificate and userPassword
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : win
Client OS Ver: 10.0.15063
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Windows 5.1.3.62
Bytes Tx : 7390 Bytes Rx : 0
Pkts Tx : 1 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
SSL-Tunnel:
Tunnel ID : 7.2
Assigned IP : 172.16.1.40 Public IP : 192.168.1.11
Encryption : AES-GCM-128 Hashing : SHA256
Ciphersuite : TLS_AES_128_GCM_SHA256
Encapsulation: TLSv1.3 TCP Src Port : 50042
TCP Dst Port : 443 Auth Mode : Certificate and userPassword
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : Windows
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 5.1.3.62
Bytes Tx : 7390 Bytes Rx : 2292
Pkts Tx : 1 Pkts Rx : 3
Pkts Tx Drop : 0 Pkts Rx Drop : 0
DTLS-Tunnel:
Tunnel ID : 7.3
Assigned IP : 172.16.1.40 Public IP : 192.168.1.11
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: DTLSv1.2 UDP Src Port : 56382
UDP Dst Port : 443 Auth Mode : Certificate and userPassword
Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes
Client OS : Windows
Client Type : DTLS VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 5.1.3.62
Bytes Tx : 0 Bytes Rx : 13094
Pkts Tx : 0 Pkts Rx : 34
Pkts Tx Drop : 0 Pkts Rx Drop : 0
第四步:确认与服务器的通信
从VPN客户端向服务器发出ping命令,确认VPN客户端与服务器之间的通信成功。
Ping成功
在FTD (Lina) CLI中运行capture in interface inside real-time命令以确认数据包捕获。
ftd702# capture in interface inside real-time
Use ctrl-c to terminate real-time capture
1: 03:39:25.729881 172.16.1.40 > 192.168.10.11 icmp: echo request
2: 03:39:25.730766 192.168.10.11 > 172.16.1.40 icmp: echo reply
3: 03:39:26.816211 172.16.1.40 > 192.168.10.11 icmp: echo request
4: 03:39:26.818683 192.168.10.11 > 172.16.1.40 icmp: echo reply
5: 03:39:27.791676 172.16.1.40 > 192.168.10.11 icmp: echo request
6: 03:39:27.792195 192.168.10.11 > 172.16.1.40 icmp: echo reply
7: 03:39:28.807789 172.16.1.40 > 192.168.10.11 icmp: echo request
8: 03:39:28.808399 192.168.10.11 > 172.16.1.40 icmp: echo reply
故障排除
您可以在Lina引擎的调试系统日志和Windows PC上的DART文件中找到有关VPN身份验证的信息。
这是Lina引擎中的调试日志示例。
// Certificate Authentication
Jun 17 2024 02:38:03: %FTD-7-717029: Identified client certificate within certificate chain. serial number: 6EC79930B231EDAF, subject name: CN=sslVPNClientCN,OU=sslVPNClientOU,O=Cisco,L=Tokyo,ST=Tokyo,C=JP.
Jun 17 2024 02:38:03: %FTD-6-717028: Certificate chain was successfully validated with warning, revocation status was not checked.
Jun 17 2024 02:38:03: %FTD-6-717022: Certificate was successfully validated. serial number: 6EC79930B231EDAF, subject name: CN=sslVPNClientCN,OU=sslVPNClientOU,O=Cisco,L=Tokyo,ST=Tokyo,C=JP.
// Extract username from the CN (Common Name) field
Jun 17 2024 02:38:03: %FTD-7-113028: Extraction of username from VPN client certificate has been requested. [Request 5]
Jun 17 2024 02:38:03: %FTD-7-113028: Extraction of username from VPN client certificate has completed. [Request 5]
// AAA Authentication
Jun 17 2024 02:38:22: %FTD-6-113012: AAA user authentication Successful : local database : user = sslVPNClientCN
Jun 17 2024 02:38:22: %FTD-6-113009: AAA retrieved default group policy (ftdvpn-aaa-cert-grp) for user = sslVPNClientCN
Jun 17 2024 02:38:22: %FTD-6-113008: AAA transaction status ACCEPT : user = sslVPNClientCN
这些调试可以从FTD的诊断CLI运行,CLI提供可用于对配置进行故障排除的信息。
- debug crypto ca 14
- debug webvpn anyconnect 255
- debug crypto ike-common 255
参考
在FTD上配置AnyConnect远程访问VPN
为移动访问配置基于Anyconnect证书的身份验证