logo头像
Snippet 博客主题

Cisco ISE Posture 结合 SSLVPN

本文于 735 天之前发表,文中内容可能已经过时。

描述了思科ISE Posture结合ASA SSLVPN的使用场景。员工使用AnyConnect拨号到公司内网时,需要通过思科ISE Posture检测,检测通过才能访问内网,否则网络访问受到限制。

一、Cisco ISE Posure介绍

1.1、Posture简介

思科的ISE Posture提供了网络准入的功能,也就是当员工的电脑只有满足合规条件时才能接入到公司网络。这里合规条件可以针对Windows和MacOS自定义各种类型的条件,以Windows为例,条件可以是:系统必须开启防火墙;系统必须开启BitLocker;系统必须拥有最新的补丁等。满足这些条件才能接入到公司网络。这里网络可以是有线无线、VPN。这次实验场景就是当员工使用AnyConnect SSLVPN接入到公司网络时,Posture模块只会允许满足条件的电脑接入网络。

另外思科针对SSLVPN准入,也可以利用HostScan进行扫描,HostScan可以集成在AnyConnect模块中,不需要客户端安装单独的软件模块,但是检测的能力不如安装了Posture模块的客户端。针对HostSan的准入检测,后续会在其他实验演示。

1.2、Posture部署模式介绍

Posture的关键是需要收集到客户端的系统信息,那么客户端上必须要有某种采集信息的代理,ISE2.4提供了3种类型的部署方式:

1.2.1 AnyConnect

这种是最常用的安装方式,会在客户端上安装Posure软件模块,安装之后AnyConnect UI会多出一个模块。这种部署方式支持Posture所有的检测功能,本次实验也是这种部署方式。需要注意的是,这种部署方式需要ISE拥有Apex授权,AnyConnect拥有Apex授权。

image-20210202120044778

1.2.2 Stealth AnyConnect(隐形模式)

Stealth AnyConnect和AnyConnect模式几乎一样,也会在客户端上安装软件模块。如果你单独安装Stealth AnyConnect,那么它是没有UI界面的,所以叫隐形模式。但是如果你安装了AMP或者VPN模块,那么客户度会显示UI界面。所以如果你要用在SSLVPN准入上,这种模式不太适合,因为必然会出现UI界面。这种模式更加适合企业内网无线或者有线的准入,但是不想让用户看见UI界面的场景。

1.2.3 Temporal Agent(临时客户端)

Temporal Agent是一个比较新的特性,它不会在客户端电脑上永久安装软件,但是显然检测能力是不如上面两种模式的。比较适合给访客和供应商作为临时的监测方式。

1.2.4 Windows Posture 支持检测特性

Temporal Agent Stealth AnyConnect AnyConnect
Posture Conditions Supported Conditions:
• AM Installation
• Firewall Installation
• Application Inventory
• Hardware Inventory
• USB Check
• AV Installation
• AV version / date
• AS Installation
• AS version / date
• Application / File Check
• Service packs / Hotfixes
• Process / Registry Check
Supported Conditions:
• AM Installation
• Firewall Installation
• Application Inventory
• Hardware Inventory
• USB Check
• AV Installation
• AV version / date
• AS Installation
• AS version / date
• Application / File Check
• Service packs / Hotfixes
• Process / Registry Check
• Patch Management
• Disk Encryption
• Service Condition
• Registry Condition
• Dictionary Condition
Supported Conditions:
• AM Installation
• Firewall Installation
• Application Inventory
• Hardware Inventory
• USB Check
• AV Installation
• AV version / date
• AS Installation
• AS version / date
• Application / File Check
• Service packs / Hotfixes
• Process / Registry Check
• Patch Management
• Disk Encryption
• Service Condition
• Registry Condition
• Dictionary Condition
Remediation Actions Manual Remediations Partial Automatic Remediation:
File, Link, WSUS Show UI, PM activate UI,
Message Text. Manual remediation not supported.
Both Automatic and Manual Remediation supported
Passive Reassessment None Supported Supported

1.2.5 macOS Posture 支持检测特性

Temporal Agent Stealth AnyConnect AnyConnect
Posture Conditions Unsupported Conditions:
• Service Condition-macOS
—System Daemon check
• Service Condition-macOS
—Daemon or User Agent check
• PM—Up to Date check
• PM—Enabled check
• DE—Encryption Location based check
Supported Conditions:
• AM Installation
• Firewall Enabled
• Application Inventory
• Hardware Inventory
• AV Installation
• AV version / date
• AS Installation
• AS version / date
• Application Check
• Plist Check
• File Check
• Patch Management
• Service packs / Hotfixes
• Disk Encryption
• Service Condition
• Dictionary Condition
Supported Conditions:
• AM Installation
• Firewall Enabled
• Application Inventory
• Hardware Inventory
• AV Installation
• AV version / date
• AS Installation
• AS version / date
• Application Check
• Plist Check
• File Check
• Patch Management
• Service packs / Hotfixes
• Disk Encryption
• Service Condition
• Dictionary Condition
Remediation Actions Not Supported Unsupported: Manual, Launch program,
File condition, Patch management, USB
Unsupported: Manual, Launch program,
File condition, Patch management, USB
Passive Reassessment Not Supported Not Supported Not Supported

二、实验介绍

2.1、实验注意事项

  • ISE Posture功能需要Apex授权,这里实验环境使用ISE的默认90天测试授权。
  • ASA AnyConnect也需要有Apex授权,这里实验环境依然用的自带测试授权。
  • 客户端需要信任ISE Posture的证书,如果ISE是自签名证书,客户端需要导入ISE证书
  • 建议管理员离线为用户安装好ISE Posure模块,可以避免很多问题。如果重定向到安装页面,让用户自行下载会遇到各种用户无法处理的问题。

2.2、实验需求

用户使用AnyConnect拨号时,需要满足下面条件才能接入,如果不满足合规条件,用户只能访问到隔离网络内的补丁服务器。如果用户电脑未安装Posture模块,当用户首次拨号成功后,页面会重定向到Posture安装页面,用户可以自行下载模块进行安装。

  • Windows必须开启防火墙功能。
  • Windows必须开启了BitLocker功能。
  • Windows在C盘根目录下必须要有test.txt文件。
  • Windows必须安装最新的补丁文件。

2.3、实验环境介绍

本次实验在vSphere环境下进行,ASAv和ISE均是默认的测试授权,ASAv测试授权有限速100k的问题,所以客户端打开Posture重定向网页比较困难,这里我为客户度手动安装Posture客户端。当客户端为通过合规检查时,只能访问ISE、AD、Update Server,不能访问其他服务器。通过合规检测之后允许访问所有网络。

image-20210202165836290

2.4、实验步骤

配置整体分为2个部分,ISE Posture的配置和ASA SSLVPN的配置,这里聚焦的核心是ISE Posture配置。

2.4.1 ISE 配置步骤

  1. 配置Posture推送策略:当用户未安装Posture客户端拨入VPN时,需要为不同的系统推送不同的Posure Agent。
  2. 定义合规检测策略:也就是定义客户端具体需要满足的策略,只有满足这些对应的策略才能接入网络。如果用户账号具有管理员权限也可以定义修复策略,例如Posture自动为客户端打开防火墙。
  3. 配置授权策略:ISE为3种状态的客户端给与不同的授权。Unknown状态,重定向到客户端下载页面。Compliant状态,正常授权。Noncompliant状态,授权ACL限制网络访问。

2.4.2 ASA配置步骤

ASA上需要注意必须启用CoA(Change of Authorization)功能。CoA提供了在身份验证通过之后更改授权信息的机制,这个场景中,当客户端从不合规状态变为合规状态后,ISE会下发新的授权信息到ASA上。思科使用UDP 1700端口,RFC5176使用UDP 3799端口。

  1. ASA基础配置,本次实验并不讲解ASA的基础配置操作。
  2. ASA SSLVPN配置,这里会主要介绍关于与Posture结合的特殊配置。

三、ISE Posture 配置

3.1、配置ISE Posture推送策略

  • 为客户端推送Posture模块默认是禁用的,ISE会依据授权来判断是否推送,这里保持默认即可。

image-20210202194448505

  • 从Cisco网站下载最新的文件。

image-20210202194550988

下载最新的Windows合规检测模块。

image-20210202194614554

  • AnyConnect现在是单独产品线,不能通过在线直接下载。AnyConnect官网下载地址,文件名称为anyconnect-win-4.9.05042-webdeploy-k9.pkg现在下载AnyConnect需要有CCO权限才能下载,最新版的AnyConnect不太容易找到,但是旧版本还是比较容易找到的,这里只需要4.x版本即可,并不需要最新版本。

image-20210202194637927

通过本地上传AnyConnect客户端到ISE。

image-20210202194721888

  • 创建AnyConnect Posture Profile,里面定义了Posture的一些参数,可以影响客户端Posture的UI和行为。

image-20210202194749515

  • 这里开启Enable Rescan Button,客户端UI上会出现允许客户端重新扫描。

image-20210202194808186

允许客户端访问所有网站。

image-20210202194852062

  • 创建AnyConnect Configure

image-20210202194908981

  • 选择AnyConnect客户端文件、合规性检测文件、ISE Posture配置文件。

image-20210202195025904

  • 创建Client Provisioning Policy

image-20210202195142737

3.2、定义合规检测策略

  • 定义Window Patch检测策略,Posture模块可以通过Windows Update Agent或者System Center Configuration Manager Client(SCCM Client)方式检测客户端Patch是否合规。如果选择Windows Update Agent方式检测,那么需要确保客户端VPN拨号之后能访问Window更新服务器,如果企业内部署了WSUS等服务器,需要让客户端能访问到WSUS服务器。如果选择SCCM Client方式检测,同样需要确保客户端能和SCCM的DP分发点通信。
  • 这里可以有3种类型的监测方式,Installation表示客户端是否安装了对应的程序,Enabled表示客户端是否激活了程序,Up to Date表示客户端是否拥有最新的文件。这3种监测方式时间递增,监测是否安装速度非常快,监测是否拥有最新的补丁文件速度会慢很多。如果你选择Up to Date,那么你还可以选择监测具体哪类安全级别的补丁需要安装。一般选择Important & critical即可。

image-20210203163822897

image-20210203173302707

  • 配置C盘必须开启BitLocker。这里检测Windows系统,使用4.x以后的合规性检测模块,加密厂商选择微软。BitLocker检测可以检测指定的盘符,也可以指定全盘开启。

image-20210203141137573

  • 配置文件检测策略,这里检测指定目录下文件是否存在。还可以检测文件的创建时间、SHA-256值等信息。

image-20210203141154787

  • 可以利用ISE自带的防火墙检测条件。

image-20210203141223315

  • 这里定义防火墙的Remediation策略,即当用户电脑不合规之后Posture采取的动作,例如可以给用户发送文本消息告诉用户具体哪个地方未合规。也可以配置响应的动作,自动帮助客户端修复。这里Posture可以自动帮助客户端打开防火墙策略,但是需要用户使用管理员账号登录,也就是用户账号要有权限能开启防火墙。

    image-20210203162102844

  • 这里定义Window Patch不合规时自动修复。

    image-20210203141242764

  • 配置合规条件,调用上面定义的各种条件。当BitLocker和文件检测未通过时,给客户端文本提示信息;当防火墙和Patch检测未通过时,Posture模块进行自动修复。

image-20210203164615696

  • 创建Posture Policy,调用合规条件。

![image-20210224172153707](../image/Cisco ISE Posture with SSLVPN/image-20210224172153707.png)

3.3、配置授权策略

需要为3种不同状态的客户端下发不同的授权:

  1. 未安装Posture模块的客户端下发重定向授权,让客户端根据向导安装Posture模块;
  2. 合规性检测未通过的客户端下发DACL限制网络访问,未通过检测的客户端一般只允许访问DNS、补丁服务器等。
  3. 合规性检测通过的客户端下发正常访问授权。
  • 为没有安装Posture的客户端创建授权策略。

image-20210202220525317

选择网页重定向模板为Client Provisioning(Posture),这里使用默认的模板,你也可以去修改模板或者创建新的模板。下发重定向ACLPosture_Redirect_ACL,这里只是推送了重定向ACL的名字所以需要在ASA上创建同名的重定向ACL内容

image-20210202220533253

  • 创建DACL,限制未合规的客户端访问网络。

image-20210202220537813

一般只允许访问DNS服务、补丁服务器,不允许访问其他内网服务器。这个ACL内容会直接推送到ASA上,并不需要在ASA上创建同名的ACL列表。DACL名字Posture_NonCompliant_ACL

ACL内容

1
2
3
4
permit udp any any eq domain
permit ip any host 172.20.29.150
permit ip any host 172.20.29.190
deny ip any any log

image-20210202220542286

  • 创建授权策略,调用DACL。

image-20210202220546039

  • ISE可以下发group-policy授权到ASA上,需要注意的是推送的只是group-policy名字,所以在ASA上创建的group-policy需要与ISE下发的名字完全一致。

image-20210202220550156

  • 创建网络设备,配置ASA的Radius共享密钥。

image-20210202220555097

  • ISE创建本地用户用于AnyConnect拨号认证。

image-20210202220605316

  • ISE创建Policy Set,这里的Conditions可以自己定义。

image-20210202220558483

  • 创建授权策略,这里条件内一定要包含PostureStatus信息,依据3种不同的PostureStatus状态给客户端对应的授权。这里我还加了一个检测条件Cisco-VPN3000·CVPN3000/ASA/PIX7x-Client-Type类型为AnyConnect-Client-SSL-VPN这个表示客户端必须使用AnyConnect客户端拨号。

image-20210203110122703


四、ASA 配置

4.1、ASA 基础配置

  • 这里ASA是空配状态进行的,进行了地址初始化,配置了SSH登录,配置了ASDM登录。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
interface GigabitEthernet0/0
nameif inside
security-level 100
ip address 172.20.29.145 255.255.255.0
!
interface GigabitEthernet0/1
nameif outside
security-level 0
ip address 52.94.8.18 255.255.255.0

aaa authentication ssh console LOCAL
ssh 0.0.0.0 0.0.0.0 inside

http server enable 8443
http 0 0 inside
aaa authentication http console LOCAL
username admin password cisco privilege 15

route inside 0.0.0.0 0.0.0.0 172.20.29.1 1
  • 通过ASDM上传AnyConnect文件到磁盘下。
1
2
3
4
asa# dir

Directory of disk0:/
83 -rwx 76380273 13:33:46 Feb 02 2021 anyconnect-win-4.9.05042-webdeploy-k9.pkg

4.1、SSLVPN 配置

  • 配置webvpn,激活AnyConnect拨号。
1
2
3
4
webvpn
enable outside
anyconnect image disk0:/anyconnect-win-4.9.05042-webdeploy-k9.pkg
anyconnect enable
  • 当客户端访问内网时,地址转换为ASA的inside接口地址。(这并不是必须的操作,这里只是为了省略解决内网路由的问题,否则内网服务器需要有路由能到客户端地址段)
1
2
3
object network anyconnect_pool_object
subnet 192.168.100.0 255.255.255.0
nat (outside,inside) source dynamic anyconnect_pool_object interface
  • ASA CoA和重定向列表,这应该是最不同于传统SSLVPN的配置。

    COA:当ISE感知到客户端从非合规状态变为合规状态时会下发新的授权,ASA只有启用的CoA功能才能使用新的授权信息。

    重定向列表:初看上去很难理解具体的含义,这里你需要重新理解ACL的permitdeny的含义。这里的deny表示抓取到的流量不会被重定向,permit表示抓取的流量会被重定向。这里的含义是去往DNS、ISE、DC的流量不会被重定向,客户端可以正常去往这些地址。但是其他所有流量都会被重定向。这里重定向列表一定要明白具体含义,否则很容易出现无限循环重定向到ISE页面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
aaa-server ISE protocol radius
authorize-only
interim-accounting-update periodic 1
merge-dacl before-avpair
dynamic-authorization

aaa-server ISE (inside) host 172.20.29.140
key cisco
authentication-port 1812

access-list Posture_Redirect_ACL extended deny udp any any eq domain
access-list Posture_Redirect_ACL extended deny ip any host 172.20.29.140
access-list Posture_Redirect_ACL extended deny ip any host 172.20.29.150
access-list Posture_Redirect_ACL extended permit ip any any
  • 下面就是SSLVPN的常规配置了,这里使用了SSLVPN的默认tunnel-group
1
2
3
4
5
6
7
8
9
10
11
12
13
ip local pool sslvpn_client_pool 192.168.100.100-192.168.100.200 mask 255.255.255.255

group-policy employee-group-policy internal
group-policy employee-group-policy attributes
dns-server value 172.20.29.150
vpn-tunnel-protocol ssl-client
default-domain value liuqianglong.com
address-pools value sslvpn_client_pool

tunnel-group DefaultWEBVPNGroup general-attributes
authentication-server-group ISE
authorization-server-group ISE


五、AnyConnect 拨号测试

5.1、客户端安装Posture模块

  • 这里ASA没有配置隧道分隔,所以客户端所有流量都会经过AnyConnect,AnyConnect会主动触发一个HTTP流量去访问http://www.msftconnecttest.com/redirect,触发页面重定向到ISE Posture下载页面。如果配置了隧道分隔,需要用户主动访问一个内网服务器触发重定向,才会显示下面的页面。这里跟随向导前进即可。

image-20210203100542156

  • 检测是否安装AnyConnect Posture模块。

image-20210202230820562

  • 下载这个临时代理软件,这个并不是最终的ISE Posture模块,下载之后记得备份这个代理软件,因为如果安装不成功这个临时代理会自动删除,你又需要重新下载一次

image-20210202230824047

  • 这里客户端和ISE在进行证书认证,所以如果你的ISE是自签名证书,那么需要导出ISE的自签名证书,导入到客户端才能顺利通过认证。我这里的ISE实验环境显然是自签名证书,所以需要进行导入证书操作。

    检查BitLockerFile时不会检查证书,当检查FirewallWindows Patch时需要检查证书。

image-20210203102315830

  • 客户端一定要信任ISE证书之后再进行后面的操作,否则你可能会看到各种报错界面。这是其中一种报错界面。如果客户端已经信任ISE Posture证书了,那么可以忽略后面导入证书的操作。

image-20210202230856654

  • 如果出现这个报错也是客户端不信任ISE Posture证书导致的。The requirement cannot be evaluated since you are connected to an untrusted server. Please contact your system adminitrator.

image-20210203111206901

5.2、客户端导入ISE证书

  • 在ISE上导出自签名证书,导出的是.pem文件,你可以用各种方式将文件传输到客户端上,客户端上修改文件后缀为.cer即可安装证书。

image-20210203102353356

  • 客户端需要将证书同时导入到当前用户本地计算机

image-20210202231040224

  • 导入到「受信任的根证书颁发机构」。

image-20210202231049114

  • 导入之后客户端会信任ISE Posure证书,即可正常通信。

image-20210202231054050

  • 代理软件继续下载ISE Posture模块。

image-20210202230844482

  • 因为ASAv测试license限速100k,所以这里我离线手动安装ISE Posture模块,在线下载Posture模块速度太慢。这个下载链接依然需要CCO账号,与上面AnyConnect下载是同一个链接。

image-20210202231429752

  • 安装成功后AnyConnect UI多出一个System Scan模块。

image-20210202231553823

  • 拨号成功后,Posure会下载ISE提供的Windows合规扫描模块。

image-20210202231659403

5.3、客户端合规性检测

5.3.1 合规性监测失败页面展示

  • 客户端未开启防火墙提示页面。

image-20210203111528177

  • 客户端C盘根目录下没有test.txt这个文件提示页面。

image-20210203111530992

  • 客户端C盘未开启BitLocker提示页面。

image-20210203111534066

  • 当Window Update未通过时,因为配置了Remediation,所以系统会尝试下载最新的Patch文件。这里一定要确认客户端能访问Window Update服务器,在前面配置检测策略时已经详细说过了。

image-20210203124507472

image-20210203135855038

5.3.2 客户端进行合规检查时授权信息

  • 此时客户端正在检查BitLocker是否开启,一共有5分钟的监测时间,在此期间内客户端状态为Unknow,此时客户端流量受到重定向列表管控。

image-20210203182220133

  • 查看用户获取的具体授权信息,最后一行可以看到用户获取的重定向列表。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
asa# show vpn-sessiondb detail anyconnect

filter Filter criteria
sort Sort Criteria
| Output modifiers
<cr>
asa# show vpn-sessiondb detail anyconnect

Session Type: AnyConnect Detailed

Username : ssluser Index : 36
Assigned IP : 192.168.100.101 Public IP : 52.94.8.10
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 : 63439 Bytes Rx : 21404
Pkts Tx : 128 Pkts Rx : 174
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : employee-group-policy Tunnel Group : DefaultWEBVPNGroup
Login Time : 10:13:17 UTC Wed Feb 3 2021
Duration : 0h:00m:46s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac141d9100024000601a773d
Security Grp : none
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1

AnyConnect-Parent:
Tunnel ID : 36.1
Public IP : 52.94.8.10
Encryption : none Hashing : none
TCP Src Port : 49367 TCP Dst Port : 443
Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes
Client OS : win
Client OS Ver: 10.0.19041
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.9.05042
Bytes Tx : 7699 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0

SSL-Tunnel:
Tunnel ID : 36.2
Assigned IP : 192.168.100.101 Public IP : 52.94.8.10
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: TLSv1.2 TCP Src Port : 49379
TCP Dst Port : 443 Auth Mode : userPassword
Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes
Client OS : Windows
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.9.05042
Bytes Tx : 16382 Bytes Rx : 7801
Pkts Tx : 39 Pkts Rx : 67
Pkts Tx Drop : 0 Pkts Rx Drop : 0

DTLS-Tunnel:
Tunnel ID : 36.3
Assigned IP : 192.168.100.101 Public IP : 52.94.8.10
Encryption : AES256 Hashing : SHA1
Ciphersuite : AES256-SHA
Encapsulation: DTLSv1.0 UDP Src Port : 58772
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.9.05042
Bytes Tx : 39358 Bytes Rx : 13603
Pkts Tx : 84 Pkts Rx : 107
Pkts Tx Drop : 0 Pkts Rx Drop : 0

ISE Posture:
Redirect URL : https://ise26.liuqianglong.com:8443/portal/gateway?sessionId=ac141d9100024000601a773d&portal=27b1bc30-...
Redirect ACL : Posture_Redirect_ACL
  • 可以查看重定向列表的流量匹配情况。
1
2
3
4
5
6
7
8
asa# show access-list
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096)
alert-interval 300
access-list Posture_Redirect_ACL; 4 elements; name hash: 0xcadb04ea
access-list Posture_Redirect_ACL line 1 extended deny udp any any eq domain (hitcnt=4294) 0x99c9a32c
access-list Posture_Redirect_ACL line 2 extended deny ip any host 172.20.29.140 (hitcnt=2184) 0x2bb72c86
access-list Posture_Redirect_ACL line 3 extended deny ip any host 172.20.29.150 (hitcnt=0) 0xaf71d144
access-list Posture_Redirect_ACL line 4 extended permit ip any any (hitcnt=5) 0xd1910f22
  • 在客户端上测试网络连通性,此时客户端只能访问DNS、172.20.29.140、172.20.29.150的流量,除此之外的HTTP流量都会被重定向到ISE上。也就是只能访问重定向列表deny的流量。

image-20210203182636274

5.3.3 客户端未通过合规性检测时的授权信息

  • 此时合规性检测失败。

image-20210203182846345

  • ASA上查看用户授权信息,最后一行可以看到DACL信息,此时客户端访问网络受到DACL的限制。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
asa# show vpn-sessiondb detail anyconnect

Session Type: AnyConnect Detailed

Username : ssluser Index : 36
Assigned IP : 192.168.100.101 Public IP : 52.94.8.10
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 : 69643 Bytes Rx : 34502
Pkts Tx : 172 Pkts Rx : 240
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : employee-group-policy Tunnel Group : DefaultWEBVPNGroup
Login Time : 10:13:17 UTC Wed Feb 3 2021
Duration : 0h:02m:44s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac141d9100024000601a773d
Security Grp : none
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1

AnyConnect-Parent:
Tunnel ID : 36.1
Public IP : 52.94.8.10
Encryption : none Hashing : none
TCP Src Port : 49367 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.19041
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Windows 4.9.05042
Bytes Tx : 7699 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0

SSL-Tunnel:
Tunnel ID : 36.2
Assigned IP : 192.168.100.101 Public IP : 52.94.8.10
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: TLSv1.2 TCP Src Port : 49379
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.9.05042
Bytes Tx : 16382 Bytes Rx : 7801
Pkts Tx : 39 Pkts Rx : 67
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Filter Name : #ACSACL#-IP-Posture_NonCompliant_ACL-601a74eb

DTLS-Tunnel:
Tunnel ID : 36.3
Assigned IP : 192.168.100.101 Public IP : 52.94.8.10
Encryption : AES256 Hashing : SHA1
Ciphersuite : AES256-SHA
Encapsulation: DTLSv1.0 UDP Src Port : 58772
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.9.05042
Bytes Tx : 45562 Bytes Rx : 26701
Pkts Tx : 128 Pkts Rx : 173
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Filter Name : #ACSACL#-IP-Posture_NonCompliant_ACL-601a74eb
  • 在ISE上可以看到通过CoA机制下发的DACL信息。

image-20210203183045240

  • 此时DACL未放行的流量,客户端无法通信。

image-20210203183232741

5.3.4 客户端通过合规性检测后的授权

  • 这里我在测试时,关闭了检测Patch,因为客户端通过ASA100k的速度下载Windows更新的速度太慢,很难出效果(我在生产环境测试可以正常工作)。同时也关闭了BitLocker检测,Window开启BitLocker是一个漫长的过程(同样在生产环境测试过可以正常工作)。这2项我都在生产环境中成功部署了,检测和修复是没有问题的。因为我们生产环境中部署了SCCM,我测试了SCCM Client检测方式也可以正常工作。
  • 这里ISE只授权了group-policy,所以客户端会受到group-policy的权限控制。

image-20210203143047722

5.3.5 ISE查看客户端合规日志

  • 这里可以看到客户端Posture检测是否通过。

image-20210203183749290

  • Posture检测通过。

image-20210203183851476

  • 未通过Posture检测。

image-20210203183902256


六、参考资料