简介
本文档介绍如何配置思科Firepower威胁防御(FTD)版本6.4.0,以便根据思科身份服务引擎(ISE)对VPN用户进行安全评估。
先决条件
要求
Cisco 建议您了解以下主题:
- AnyConnect远程访问VPN
- FTD上的远程访问VPN配置
- 身份服务引擎和状态服务
使用的组件
本文档中的信息基于以下软件版本:
- 思科Firepower威胁防御(FTD)软件版本6.4.0
- 思科Firepower管理控制台(FMC)软件版本6.5.0
- 带Cisco AnyConnect安全移动客户端版本4.7的Microsoft Windows 10
- 带补丁3的思科身份服务引擎(ISE)2.6版
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
网络图和流量流程

1.远程用户使用Cisco Anyconnect进行VPN访问FTD。
2. FTD向ISE发送该用户的RADIUS访问请求。
3.该请求符合ISE上名为FTD-VPN-Posture-Unknown的策略。ISE发送RADIUS Access-Accept,包含三个属性:
4.如果发送DACL,则交换RADIUS访问请求/访问接受以下载DACL的内容
5.当来自VPN用户的流量与本地定义的ACL匹配时,它将重定向到ISE客户端调配门户。ISE调配AnyConnect终端安全评估模块和合规性模块。
6.在客户端上安装代理后,它通过发送探测功能自动搜索ISE。成功检测到ISE后,终端上会检查状态要求。在本例中,代理检查是否安装了任何防恶意软件软件。然后向ISE发送状态报告。
7.当ISE从代理收到状态报告时,ISE更改此会话的状态状态并触发RADIUS CoA类型推送(带新属性)。此时,状态已知,并且已命中另一条规则。
- 如果用户符合,则发送允许完全访问的DACL名称。
- 如果用户不合规,则发送允许有限访问的DACL名称。
8. FTD删除重定向。FTD发送访问请求以从ISE下载DACL。特定DACL将附加到VPN会话。
配置
FTD/FMC
步骤1.为ISE和补救服务器(如果有)创建网络对象组。 导航到对象>对象管理>网络,如图所示。

步骤2.创建重定向ACL。导航至对象>对象管理>访问列表>扩展。单击Add Extended Access List并提供重定向ACL的名称。此名称应与ISE授权结果中的名称相同。

步骤3.添加重定向ACL条目。单击 Add 按钮。阻止流向DNS、ISE和补救服务器的流量,以将其排除在重定向之外。允许其余流量,这将触发重定向(如果需要,ACL条目可能更具体),如图所示。


步骤4.添加ISE PSN节点/节点。导航至对象>对象管理> RADIUS服务器组。单击Add RADIUS Server Group,然后提供名称,启用所有复选框,然后单击加号图标,如图所示。

步骤5.在打开的窗口中,提供ISE PSN IP地址、RADIUS密钥,选择Specific Interface并选择ISE可到达的接口(此接口将用作RADIUS流量的源),然后选择Redirect ACL,如图所示。

步骤6.为VPN用户创建地址池。导航到对象>对象管理>地址池> IPv4池。单击Add IPv4 Pools并填写详细信息,如图所示。

步骤7.创建AnyConnect软件包。导航至对象>对象管理> VPN > AnyConnect文件。单击Add AnyConnect File,提供软件包名称,从Cisco Software Download下载软件包,然后选择Anyconnect Client Image File Type,如图所示。

步骤8.导航至Certificate Objects > Object Management > PKI > Cert Enrollment。单击Add Cert Enrollment(添加证书注册),提供名称,在Enrollment Type中选择Self Signed Certificate(自签名证书)。点击Certificate Parameters选项卡并提供CN,如图所示。


步骤9.启动Remote Access VPN向导。导航至Devices > VPN > Remote Access,然后单击Add,如图所示。

步骤10.提供名称,选中SSL作为VPN协议,选择将用作VPN集中器的FTD,然后单击Next,如图所示。

步骤11.提供连接配置文件名称,选择Authentication/Accounting Servers,选择之前配置的地址池,然后单击Next。
注意:请勿选择授权服务器。它将触发单个用户的两个访问请求(一次使用用户密码,第二次使用密码cisco)。

步骤12.选择之前配置的AnyConnect软件包,然后单击“下一步”,如图所示。

步骤13.选择预期VPN流量的接口,选择之前配置的Certificate Enrollment,然后单击Next,如图所示。

步骤14.检查摘要页面,然后单击“完成”,如图所示。

步骤15.将配置部署到FTD。单击Deploy,然后选择FTD,该FTD将用作VPN集中器,如图所示。

ISE
步骤1.运行状态更新。导航至管理>System >设置>状态>更新,如图所示。

步骤2.上传合规性模块。导航至策略>Policy元素>结果>客户端调配>资源。单击Add,然后从思科站点选择Agent resources(代理资源)

步骤3.从思科软件下载下载AnyConnect,然后将其上传到ISE。导航至策略>Policy元素>结果>客户端调配>资源。单击Add,然后选择Agent Resources From Local Disk。在类别下选择思科提供的包,选择AnyConnect package from local disk,然后单击提交。

步骤4.创建AnyConnect状态配置文件。导航至策略>Policy元素>结果>客户端调配>资源。单击Add并选择AnyConnect Posture Profile。填写名称和状态协议。在*Server name rules put*下,将任何虚拟IP地址放在Discovery host下,如图所示。


步骤5.导航至Policy > Policy Elements > Results > Client Provisioning > Resources,然后创建AnyConnect Configuration。单击Add并选择AnyConnect Configuration。选择AnyConnect Package,提供配置名称,选择Compliance Module,选中诊断和报告工具,选择安全评估配置文件,然后单击保存。

步骤6.导航至Policy > Client Provisioning,然后创建Client Provisioning Policy(客户端调配策略)。单击Edit,然后选择Insert Rule Above,提供名称,选择OS,然后选择AnyConnect Configuration,该配置在上一步中创建。

步骤7.在Policy > Policy Elements > Conditions > Posture > Anti-Malware Condition下创建Posture Condition。在本示例中,使用预定义的“ANY_am_win_inst”,如图所示。

步骤8.导航至Policy > Policy Elements > Results > Posture > Remediation Actions,然后创建Posture Remediation。在本例中,跳过它。补救操作可以是文本消息。
步骤9.导航至Policy > Policy Elements > Results > Posture > Requirements,然后创建Posture Requirements。使用预定义要求Any_AM_Installation_Win。

步骤10.在Policies > Posture下创建Posture Policies。使用适用于Windows操作系统的任何防恶意软件检查的默认状态策略。

步骤11.导航至Policy > Policy Elements > Results > Authorization > Downloadable ACLS,并为不同的状态创建DACL。
在本例中:
- 状态未知DACL — 允许流向DNS、PSN和HTTP及HTTPS流量的流量。
- 安全评估不合规DACL — 拒绝访问私有子网并仅允许互联网流量。
- 允许所有DACL — 允许状态兼容状态的所有流量。



步骤12.为状态未知、状态不合规和状态合规状态创建三个授权配置文件。为此,请导航至Policy > Policy Elements > Results > Authorization > Authorization Profiles。在状态未知配置文件中,选择状态未知DACL,选中Web重定向,选择客户端调配,提供重定向ACL名称(在FTD上配置),然后选择如图所示的门户。



在状态不兼容配置文件中,选择DACL以限制对网络的访问,如图所示。


在状态兼容配置文件中,选择DACL以允许完全访问网络,如图所示。


步骤13.在策略>策略集>默认>授权策略下创建授权策略。使用状态状态和VNP隧道组名称作为条件。

验证
使用本部分可确认配置能否正常运行。
在ISE上,第一个验证步骤是RADIUS实时日志。导航至操作> RADIUS实时日志。此时,用户Alice已连接,并且已选择预期的授权策略,如图所示。

授权策略FTD-VPN-Posture-Unknown匹配,因此,FTD-VPN-Profile被发送到FTD,如图所示。

状态挂起。

“结果”部分显示哪些属性已发送到FTD。

在FTD上,为了验证VPN连接,SSH到设备,执行系统支持diagnostic-cli,然后执行show vpn-sessiondb detail anyconnect。从此输出中,验证从ISE发送的属性是否已应用于此VPN会话。
fyusifov-ftd-64# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : alice@training.example.com
Index : 12
Assigned IP : 172.16.1.10 Public IP : 10.229.16.169
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA1
Bytes Tx : 15326 Bytes Rx : 13362
Pkts Tx : 10 Pkts Rx : 49
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : DfltGrpPolicy Tunnel Group : EmployeeVPN
Login Time : 07:13:30 UTC Mon Feb 3 2020
Duration : 0h:06m:43s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : 000000000000c0005e37c81a
Security Grp : none Tunnel Zone : 0
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 12.1
Public IP : 10.229.16.169
Encryption : none Hashing : none
TCP Src Port : 56491 TCP Dst Port : 443
Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 23 Minutes
Client OS : win
Client OS Ver: 10.0.18363
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.7.01076
Bytes Tx : 7663 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
SSL-Tunnel:
Tunnel ID : 12.2
Assigned IP : 172.16.1.10 Public IP : 10.229.16.169
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-RSA-AES256-GCM-SHA384
Encapsulation: TLSv1.2 TCP Src Port : 56495
TCP Dst Port : 443 Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 23 Minutes
Client OS : Windows
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.7.01076
Bytes Tx : 7663 Bytes Rx : 592
Pkts Tx : 5 Pkts Rx : 7
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Filter Name : #ACSACL#-IP-PostureUnknown-5e37414d
DTLS-Tunnel:
Tunnel ID : 12.3
Assigned IP : 172.16.1.10 Public IP : 10.229.16.169
Encryption : AES256 Hashing : SHA1
Ciphersuite : DHE-RSA-AES256-SHA
Encapsulation: DTLSv1.0 UDP Src Port : 59396
UDP Dst Port : 443 Auth Mode : 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 4.7.01076
Bytes Tx : 0 Bytes Rx : 12770
Pkts Tx : 0 Pkts Rx : 42
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Filter Name : #ACSACL#-IP-PostureUnknown-5e37414d
ISE Posture:
Redirect URL : https://fyusifov-26-3.example.com:8443/portal/gateway?sessionId=000000000000c0005e37c81a&portal=27b1bc...
Redirect ACL : fyusifovredirect
fyusifov-ftd-64#
可以验证客户端调配策略。导航至操作>报告>终端和用户>客户端调配,如图所示。

可以检查从AnyConnect发送的状态报告。导航至操作>报告>终端和用户>终端安全评估。

要查看状态报告的更多详细信息,请单击详细信息,如图所示。



在ISE上收到报告后,状态更新。在本示例中,状态为兼容,CoA推送由新属性集触发,如图所示。



在FTD上验证是否为VPN会话删除了新的重定向ACL和重定向URL,并应用了PermitAll DACL。
fyusifov-ftd-64# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : alice@training.example.com
Index : 14
Assigned IP : 172.16.1.10 Public IP : 10.55.218.19
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA1
Bytes Tx : 53990 Bytes Rx : 23808
Pkts Tx : 73 Pkts Rx : 120
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : DfltGrpPolicy Tunnel Group : EmployeeVPN
Login Time : 16:58:26 UTC Mon Feb 3 2020
Duration : 0h:02m:24s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : 000000000000e0005e385132
Security Grp : none Tunnel Zone : 0
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 14.1
Public IP : 10.55.218.19
Encryption : none Hashing : none
TCP Src Port : 51965 TCP Dst Port : 443
Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Client OS : win
Client OS Ver: 10.0.18363
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.7.01076
Bytes Tx : 7663 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
SSL-Tunnel:
Tunnel ID : 14.2
Assigned IP : 172.16.1.10 Public IP : 10.55.218.19
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-RSA-AES256-GCM-SHA384
Encapsulation: TLSv1.2 TCP Src Port : 51970
TCP Dst Port : 443 Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Client OS : Windows
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.7.01076
Bytes Tx : 7715 Bytes Rx : 10157
Pkts Tx : 6 Pkts Rx : 33
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Filter Name : #ACSACL#-IP-PermitAll-5e384dc0
DTLS-Tunnel:
Tunnel ID : 14.3
Assigned IP : 172.16.1.10 Public IP : 10.55.218.19
Encryption : AES256 Hashing : SHA1
Ciphersuite : DHE-RSA-AES256-SHA
Encapsulation: DTLSv1.0 UDP Src Port : 51536
UDP Dst Port : 443 Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : Windows
Client Type : DTLS VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.7.01076
Bytes Tx : 38612 Bytes Rx : 13651
Pkts Tx : 62 Pkts Rx : 87
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Filter Name : #ACSACL#-IP-PermitAll-5e384dc0
fyusifov-ftd-64#
故障排除
本部分提供了可用于对配置进行故障排除的信息。
有关详细的状态流程和AnyConnect和ISE故障排除,请检查以下链接: ISE 2.2版和2.2版的终端安全评估样式比较。
当配置了吐口隧道时,常见问题之一。在本示例中,使用默认组策略,该策略隧道化所有流量。如果仅通过隧道传输特定流量,则AnyConnect探测(enroll.cisco.com和发现主机)除通向ISE和其他内部资源的流量外,还必须通过隧道。
要检查FMC上的隧道策略,首先,检查哪个组策略用于VPN连接。导航至Devices > VPN Remote Access,如图所示。

然后,导航至Objects > Object Management > VPN > Group Policy,然后单击Group Policy configured for VPN,如图所示。

另一个常见问题是,当VPN用户的返回流量使用不正确的NAT条目进行转换时。要解决此问题,应按适当顺序创建身份NAT。
首先,检查此设备的NAT规则。导航至Devices > NAT,然后单击Add Rule以创建新规则,如图所示。

在打开的窗口中,在“接口对象”选项卡下,选择安全区。在本示例中,如图所示,NAT条目从ZONE-INSIDE创建到ZONE-OUTSIDE。

在“转换”选项卡下,选择原始数据包和转换后的数据包详细信息。由于它是身份NAT,因此源和目标保持不变:

在Advanced选项卡下,勾选如下图所示的复选框:
