简介
本文档介绍如何在ISE中配置安全评估无代理,以及在终端中运行无代理脚本需要什么。
先决条件
要求
Cisco 建议您了解以下主题:
- 身份服务引擎(ISE)。
- 状态。
- PowerShell和SSH
- Windows 10或更高版本。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 身份服务引擎(ISE)3.3版本。
- 软件包CiscoAgentlessWindows 5.1.6.6
- Windows 10
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
ISE终端安全评估执行客户端评估。客户端从ISE接收终端安全评估要求策略,执行终端安全评估数据收集,将结果与策略进行比较,并将评估结果发送回ISE。
然后,ISE根据状况报告确定设备是否合规。
无代理状态是一种状态方法,从客户端收集状态信息并在完成时自动删除自身,无需最终用户执行任何操作。无代理安全评估使用管理权限连接到客户端。
入门指南
先决条件:
-
客户端必须通过其IPv4或IPv6地址到达,并且该IP地址必须在RADIUS记账中可用。
-
客户端必须通过其IPv4或IPv6地址从思科身份服务引擎(ISE)访问。此外,此IP地址必须在RADIUS记账中可用。
-
当前支持Windows和Mac客户端:
-
外壳登录的客户端凭证必须具有本地管理员权限。
-
运行状态源更新以获取最新客户端,如配置步骤中所述。请检查:
-
对于MacOS,请确保在sudoers文件中更新此条目,以避免终端上的证书安装失败:请检查:
ALL = (ALL) NOPASSWD: /usr/bin/security, /usr/bin/osascript
-
对于MacOS,配置的用户帐户必须是管理员帐户。MacOS的无代理安全评估不适用于任何其他帐户类型,即使您授予了更多权限。要查看此窗口,请单击Menuicon(
)并选择Administration
-
如果Windows客户端中的端口相关活动因Microsoft的更新而发生更改,您必须重新配置Windows客户端的无代理状态配置工作流程。
支持的终端安全评估条件
-
文件条件,使用USER_DESKTOP和USER_PROFILE文件路径的条件除外
-
服务条件,但macOS上的系统守护程序和守护程序或用户代理检查除外
-
申请条件
-
外部数据源条件
-
复合条件
-
防恶意软件情况
-
修补程序管理条件,EnabledandUp To Datecondition检查除外
-
防火墙条件
-
磁盘加密条件,基于加密位置的条件检查除外
-
注册表条件,使用HCSK作为根键的条件除外
不支持的状况条件
配置ISE
更新状态馈送
建议先更新状态馈送,然后再开始配置状态。
在Cisco ISE GUI中,点击菜单图标(
(E) 然后选择Work Centers > Posture > Settings > Software Updates > Update Now。
更新状态馈送
状态无代理配置流程
必须配置状态无代理,因为下一个配置需要第一个配置,依此类推。注意到补救不在流程中;但是,本文档稍后将介绍配置补救的替代方法。
无代理配置流程
无代理状态配置
状态条件
状况条件是我们安全策略中定义合规端点的规则集。其中一些项目包括安装防火墙、防病毒软件、防恶意软件、修补程序、磁盘加密等。
在Cisco ISE GUI中,点击菜单图标(
(E) 然后选择Work Centers > Posture > Policy Elements > Conditions,点击Add,并创建一个或多个使用Agentless posture识别要求的Posture条件。创建Condition后,单击Save。
在此场景中,使用以下参数配置了一个名为“Agentless_Condition_Application”的应用条件:
•操作系统:Windows全部
此条件适用于任何版本的Windows操作系统,确保不同Windows环境之间的广泛兼容性。
·检查依据:Process
系统监控设备内的进程。您可以选择选择Process或Application;在本例中,选择了Process。
•进程名:有线自动配置
Wired AutoConfig进程是兼容模块将签入设备的进程。此过程负责配置和管理有线网络连接,包括IEEE 802.1X身份验证。
·应用程序操作员:正在运行
合规性模块验证设备上当前是否正在运行有线AutoConfig进程。您可以选择运行或不运行。在此实例中,选择Running以确保进程处于活动状态。
无代理条件
状况要求
状态要求是一组复合条件或仅一个可与角色和操作系统链接的条件。连接到网络的所有客户端必须满足状况评估期间的强制性要求,才能在网络上成为合规客户端。
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择Work Centers > Posture > Policy Elements > Requirement。点击向下箭头并选择Insert new Requirement,然后创建一个或多个使用无代理状态的PostureRequirement。创建Requirement后,单击Done,然后单击Save。
在本例中,使用以下条件配置了名为“Agentless_Requirement_Application”的应用要求:
•操作系统:Windows全部
此要求适用于任何版本的Windows操作系统,确保它适用于所有Windows环境。
·状态类型:无代理
此配置是为无代理环境设置的。可用选项包括Agent、Agent Stealth、Temporal Agent和Agentless。在此场景中,无代理被选中。
•条件:Agentless_Condition_Application
这指定ISE终端安全评估模块和合规性模块将在设备进程内检查的条件。所选条件为Agentless_Condition_Application。
·补救措施:
由于此配置适用于无代理环境,因此不支持补救操作,此字段将灰显。
无代理要求
状态策略
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择Work Centers > Posture > Posture Policy。点击向下箭头并选择Insert new Requirement,并创建一个或多个为该状态要求使用无代理状态的支持的Posture策略规则。 Posture Policy创建后,单击Done,然后单击Save。
在此场景中,名为“Agentless_Policy_Application”的终端安全评估策略已使用以下参数配置:
•规则名称:Agentless_Policy_Application
这是此配置示例中安全评估策略的指定名称。
•操作系统:Windows全部
该策略设置为适用于Windows操作系统的所有版本,确保不同Windows环境的广泛兼容性。
·状态类型:无代理
此配置是为无代理环境设置的。可用选项包括Agent、Agent Stealth、Temporal Agent和Agentless。在本场景中,Agentless已被选中。
·其他条件:
在本配置示例中,尚未创建其他条件。但是,您可以选择配置特定条件,以确保只有目标设备受此安全评估策略约束,而不是网络上的所有Windows设备。这对于网络分段特别有用。
状态无代理策略
客户端调配
第1步 — 下载资源
要开始配置客户端调配,您必须首先下载所需的资源并在ISE中可用,以便稍后在客户端调配策略中使用它们。
向ISE添加资源的方法有两种:思科站点的代理资源和本地磁盘上的代理资源。由于您正在配置无代理,因此需要从思科站点通过代理资源进行下载。
注意:要从思科站点使用此代理资源,ISE PAN需要互联网访问。
相关资源
来自思科站点的座席资源
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择Work Centers > Posture > Client Provisioning > Resources。点击Add,从Cisco站点选择Agent Resources,点击Save。
从思科站点,您只能下载合规性模块。系统显示要下载的两个最新合规性模块。资源包CiscoAgentlessWindows 5.1.6.6已选择用于此配置示例,这仅适用于Windows设备。
.
来自思科站点的座席资源
第2步 — 配置客户端调配策略
配置状况代理时,您需要两种不同的资源(AnyConnect或安全客户端和合规性模块),
将Agent Configuration下的两个资源与Agent Posture Profile一起映射,以便您可以在客户端调配策略中使用此Agent Configuration。
但是,在配置状态无代理时,无需配置代理配置或代理状态配置文件,而是仅从思科站点的代理资源下载无代理软件包。
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择工作中心(Work Centers)>状态(Posture)>客户端调配(Client Provisioning)>客户端调配策略(Client Provisioning Policy)。点击向下箭头,然后选择在上面插入新策略(Insert new policy above)或下面插入新策略(Insert new policy below),在上面复制(Duplicate above)或下面复制(Duplicate below):
- 规则名称:Agentless_Client_Provisioning_Policy
此关键字指定客户端调配策略的名称。
这样可以确保该策略适用于Windows操作系统的所有版本。
- 其他条件:本示例中未配置任何特定条件。但是,您可以配置条件,确保只有所需设备与此客户端调配策略匹配,而不是与网络中的所有Windows设备匹配。这对于网络分段特别有用。
示例:如果使用Active Directory,可以将Active Directory组纳入策略以细化受影响的设备。
- 结果:选择适当的程序包或配置代理。由于您正在配置无代理环境,请选择之前从Agent Resources from Cisco site下载的CiscoAgentlessWindows 5.1.6.6软件包。此无代理软件包包含运行状态无代理所需的所有必需资源(无代理软件和合规性模块)。
•点击保存
无代理客户端调配策略
注意:确保只有一个客户端调配策略满足任何给定身份验证尝试的条件。如果同时评估多个策略,可能会导致意外行为和潜在冲突。
无代理授权配置文件
在Cisco ISE GUI中,点击菜单图标(
)并选择Policy > Policy Elements > Results > Authorization > Authorization Profiles并创建一个Authorization Profile,用于评估无代理状态的结果。
无代理授权配置文件
替代补救方法(可选)
无代理流中不支持补救。为解决此问题,您可以实施自定义热点门户,以增强用户关于端点合规性的感知。当终端被识别为不合规时,可将用户重定向到此门户。此方法可确保用户了解其端点的合规性状态,并可采取适当操作来纠正任何问题。
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择Work Centers > Guest Access > Portals & Components > Guest Portals。单击Create > Select Hotspot Guest Portal > Continue: 。在本配置示例中,热点门户命名为Agentless_Warning。
热点访客门户
在门户设置中,您可以自定义向最终用户显示的消息以符合您的特定要求,这只是自定义门户视图的一个示例:
故障状态无代理
补救授权配置文件(可选)
在Cisco ISE GUI中,点击菜单图标(
)并选择Policy > Policy Elements > Results > Authorization > Authorization Profiles并创建Authorization Profile进行补救。
补救授权规则
无代理授权规则
在Cisco ISE GUI中,点击菜单图标 (
(E) 并选择Policy > Policy Setand expand Authorization Policy。启用并配置以下三个授权策略:
注意:这些授权规则必须按指定顺序配置,以确保安全评估流程正常运行。
Unknown_Compliance_Redirect:
•条件:
配置Network_Access_Authentication_Passed和Compliance_Unknown_Devices,将结果设置为Agentless Posture。此条件触发无代理流量。
·示例条件:
配置Active Directory(AD)组条件以分段流量。
Compliance_Unknown_Devices条件必须配置为初始状态未知。
·授权配置文件:
将Agentless_Authorization_Profile分配给此授权规则,以确保设备通过无代理状态流。此条件包含无代理流,以便符合此配置文件的设备可以启动无代理流。
未知授权规则
NonCompliant_Devices_Redirect:
•条件:将Network_Access_Authentication_Passed和Non_Compliant_Devices的结果设置为DenyAccess。或者,也可以使用补救选项,如本示例所示。
·示例条件:
配置AD组条件以分段流量。
当安全评估状态不合规时,必须配置Compliance_Unknown_Devices条件以分配有限资源。
·授权配置文件:
将Remediation_Authorization_Profile分配给此授权规则,以通过热点门户通知不合规设备其当前状态或拒绝访问。
不合规授权规则
Compliant_Devices_Access:
•条件:
将Network_Access_Authentication_Passed和Compliant_Devices的结果设置为PermitAccess。
·示例条件:
配置AD组条件以分段流量。
必须配置Compliance_Unknown_Devices条件,以便向合规设备授予适当的访问权限。
·授权配置文件:
将PermitAccess分配给此授权规则,以确保合规设备具有访问权限。您可以自定义此简档以满足贵组织的需求。
合规授权规则
所有授权规则
授权规则
配置终端登录凭证
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择Administration > Settings > Endpoint Scripts > Login Configuration,然后配置客户端凭证以登录到客户端。
这些相同的凭证由终端脚本使用,因此思科ISE可以登录到客户端。
对于Windows设备,仅配置两个第一个选项卡(Windows域用户和Windows本地用户)
😞
配置思科ISE必须使用的域凭证通过SSH登录客户端。单击Plusicon,然后根据需要输入多个Windows登录。对于每个域,请在Domain、Username和Passwordfield中输入所需的值。如果配置域凭据,则会忽略Windows Local Usertab中配置的本地用户凭据。
如果您管理通过Active Directory域使用无代理状态评估的Windows终端,请确保提供域名以及具有本地管理权限的凭据。
Windows域用户
配置思科ISE用于通过SSH访问客户端的本地帐户。本地帐户必须能够运行Powershell和Powershell远程。
如果您不通过Active Directory域管理使用无代理状态评估的Windows终端,请确保提供具有本地管理权限的凭据。
Windows本地用户
验证帐户
要验证您的Windows域用户和Windows本地用户帐户,以便您可以在“终端登录凭证”下准确地添加相应数据,请使用此程序:
Windows本地用户:使用GUI(设置应用)单击WindowsStart按钮,选择Settings(齿轮图标),单击Accounts,然后选择Your info:
验证帐户
注意:对于MacOS,您可以参考MAC本地用户。但是,在此配置示例中,您将不会看到MacOS配置。
要查看Mac OS帐户名称,请在终端中运行以下命令whoami
:
设置
在Cisco ISE GUI中,点击菜单图标(
(E) 并选择Administration > Settings > Endpoint Scripts > Settings,然后configureMax retry attempts for OS identification,Delay between retries for OS identification等。这些设置决定了确认连接问题的速度。例如,只有在所有重试未用尽之后,日志才会显示PowerShell端口未打开的错误。
此屏幕截图显示默认值设置:
终端脚本设置
当客户端使用无代理状态进行连接时,您可以在实时日志中看到它们。
Windows终端的配置和故障排除
注意:下面是一些建议供您在Windows设备上检查并应用;但是,如果遇到诸如用户权限、PowerShell访问等问题,您必须参考Microsoft文档或与Microsoft支持部门联系……
检验和故障排除必备条件
测试到端口5985的TCP连接
对于Windows客户端,必须打开端口5985以访问客户端上的powershell。运行此命令以确认到端口5985的TCP连接: Test-NetConnection -ComputerName localhost -Port 5985
此屏幕截图中所示的输出表明到localhost上的端口5985的TCP连接失败。这意味着使用端口5985的WinRM(Windows远程管理)服务未运行或未正确配置。
Connection failed to WinRM
创建入站规则以允许端口5985上的PowerShell
第1步 — 在Windows GUI中,转至搜索栏,键入Windows Firewall with Advanced Security,单击该栏并选择Run as administrator > Inbound Rules > New Rule > Rule Type > Port > Next:
新入站规则 — 端口
第2步 — 在Protocols and Ports下,选择TCP和Specify local ports,键入端口号5985(PowerShell远程处理的默认端口),然后单击Next:
协议和端口
第3步 — 在Action > Select Allow the connection > Next下:
操作
第4步 — 在Profile下,选中Domain、Private和Public复选框,然后单击Next:
配置文件
第5步 — 在Name下,输入规则的名称,例如Allow PowerShell on Port 5985,然后单击Finish:
名称
外壳登录的客户端凭证必须具有本地管理员权限
外壳登录的客户端凭据必须具有本地管理员权限。要确认是否具有管理员权限,请检查以下步骤:
在Windows GUI中,转至“设置”(Settings)>“计算机管理”(Computer Management)>“本地用户和组”(Local Users and Groups)>“用户”(Users)>“选择用户帐户”(Select the User Account)(在本示例中,无代理帐户已选中)> 成员,帐户必须具有Administrators Group。
本地管理员权限
正在验证WinRM侦听程序
确保为端口5985上的HTTP配置WinRM侦听程序:
C: \Windows\system32> winrm enumerate winrm/config/listener
Listener
Address = *
Transport = НТТР
Port = 5985
Hostname
Enabled = true
URLPrefix = wsman
CertificateThumbprint
C: \Windows\system32>
启用PowerShell远程处理WinRM
确保服务正在运行且配置为自动启动,请执行以下步骤:
# Enable the WinRM service
Enable-PSRemoting -Force
# Start the WinRM service
Start-Service WinRM
# Set the WinRM service to start automatically
Set-Service -Name WinRM -StartupType Automatic
预期输出:
C: \Windows\system32> Enable-PSRemoting -Force
WinRM is already set up to receive requests on this computer.
WinRM has been updated for remote management.
WinRM firewall exception enabled.
-Configured LocalAccountTokenFilterPolicy to grant administrative rights remotely to local users.
C: \Windows\system32> Start-Service WinRM
C: \Windows\system32> Set-Service -Name WinRM -StartupType Automatic
Powershell必须是v7.1或更高版本。客户端必须具有cURL v7.34或更高版本:
如何检查Windows上的PowerShell和cURL版本
确保您使用的是适当版本的PowerShell; cURL对于状态无代理程序至关重要:
检查PowerShell版本
在 Windows 上:
1. Open PowerShell:
·按Win + X并选择Windows PowerShell或Windows PowerShell(管理员)。
2.执行命令:$PSVersionTable.PSVersion
·此命令输出系统上安装的PowerShell的版本详细信息。
检查cURL版本
在 Windows 上:
1.打开命令提示符:
·按Win + R,键入cmd,然后单击Enter。
2.执行命令: curl --version
·此命令显示系统上安装的cURL版本。
用于检查Windows设备上的PowerShell和cURL版本的输出
C: \Windows\system32> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- -----
7 1 19041 4291
C: \Windows\system32>
C: \Windows\system32>
C: \Windows \system32>curl --version
curl 8.4.0 (Windows) libcurl/8.4.0 Schannel WinIDN
Release-Date: 2023-10-11
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
ftps http https
Features: AsynchNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
c: \Windows\system32>
其他配置
此命令将计算机配置为信任特定远程主机进行WinRM连接: Set-Item WSMan:\localhost\Client\TrustedHosts -Value
C: \Windows\system32> Set-Item WSMan:\localhost\Client\TrustedHosts -Value x.x.x.x
WinRM Security Configuration.
This command modifies the TrustedHosts list for the WinRM client. The computers in the TrustedHosts list cannot be authenticated. The client can send credential information to these computers. Are you sure that you want to modify this list?
[Y] Yes [N] No [S] Suspend [?] Help (default is "y"): Y
PS C: \Windows \system32> -
带有-Authentication Negotiate和-Credential参数的test-wsman cmdlet是验证远程计算机上WinRM服务的可用性和配置的强大工具: test-wsman -Authentication Negotiate -Credential
MacOS
Powershell必须是v7.1或更高版本。客户端必须具有cURL v7.34或更高版本:
在macOS上:
1.开放终端:
·您可以在Applications > Utilities中找到Terminal。
2.执行命令: pwsh -Command '$PSVersionTable.PSVersion'
注意:注意:·确保已安装PowerShell核心(pwsh)。如果没有,您可以通过Homebrew安装它(请确保您已安装Himebrew): brew install --cask powershell
在macOS上:
1.开放终端:
·您可以在Applications > Utilities中找到Terminal。
2.执行命令: curl --version
·此命令必须显示系统上安装的cURL版本。
对于MacOS客户端,访问SSH的端口22必须打开才能访问客户端
分步指南:
1.打开系统首选项:
·从Apple菜单导航到系统首选项。
2.启用远程登录:
·转到共享。
·选中Remote Login(远程登录)旁边的框。
·确保将Allow access for选项设置为相应的用户或组。选择All users允许在Mac上具有有效帐户的任何用户通过SSH登录。
3.验证防火墙设置:
·如果启用了防火墙,您需要确保它允许SSH连接。
·转到System Preferences > Security & Privacy > Firewall。
·单击Firewall Options按钮。
·检查Remote Login或SSH是否已列出并允许。如果未列出,请点击Add按钮(+)进行添加。
4.通过终端打开端口22(如有必要):
·从Applications > Utilities打开Terminal应用程序。
·使用pfctl命令检查当前防火墙规则并确保端口22处于打开状态:sudo pfctl -sr | grep 22
·如果端口22未打开,您可以手动添加规则以允许SSH:echo "pass in proto tcp from any to any port 22" | sudo pfctl -ef -
5.测试SSH访问:
·从其他设备打开终端或SSH客户端。
·尝试使用其IP地址连接到macOS客户端:ssh username@<macOS-client-IP>
·将username替换为相应的用户帐户,并将<macOS-client-IP>替换为macOS客户端的IP地址。
对于MacOS,请确保在sudoers文件中更新此条目,以避免终端上的证书安装失败:
在管理macOS终端时,确保无需密码提示即可执行特定管理命令至关重要。
先决条件
· macOS计算机上的管理员访问权限。
·基本熟悉终端命令。
更新Sudoers文件的步骤
1.开放终端:
·您可以在Applications > Utilities中找到Terminal。
2.编辑Sudoers文件:
·使用visudo命令可安全地编辑sudoers文件。这可确保在保存文件之前捕获到任何语法错误。sudo visudo
·系统将提示您输入管理员密码。
3.查找相应章节:
·在Visudo编辑器中,导航到定义用户特定规则的部分。通常情况下,这是文件的底部。
4.添加所需的条目:
·添加此行,向指定用户授予在不使用密码的情况下运行security和osascript命令的权限: ALL = (ALL) NOPASSWD: /usr/bin/security, /usr/bin/osascript
·将<macadminusername>替换为macOS管理员的实际用户名。
5.保存并退出:
·如果使用默认编辑器(nano),请按Ctrl + X退出,然后按Y确认更改,最后按Enter保存文件。
·如果使用vi或vim,请按Esc,键入:wq,然后按Enter保存并退出。
6.验证更改:
·为确保更改生效,可以运行需要更新sudo权限的命令。例如:
sudo /usr/bin/security find-certificate -a
sudo /usr/bin/osascript -e 'tell application "Finder" to display dialog "Test"'
·无需提示输入密码即可执行这些命令。