簡介
本文檔介紹如何在ISE中配置終端安全評估無代理,以及終端中運行無代理指令碼需要什麼。
必要條件
需求
思科建議您瞭解以下主題:
- 身份服務引擎(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作為根鍵的條件除外
不支援的狀態條件
-
補救
-
寬限期
-
定期重新評估
-
Acceptable Use-policy
配置ISE
更新狀態饋送
建議先更新狀態饋送,然後再開始配置狀態。
在Cisco ISE GUI中,按一下Menuicon(
) 然後選擇Work Centers > Posture > Settings > Software Updates > Update Now。
更新狀態饋送
狀態無代理配置流程
必須配置狀態無代理,因為下一個配置需要第一個配置,依此類推。注意到補救不在流中;但是,本文檔稍後將介紹配置補救的替代方法。
無代理配置流
無代理狀態配置
狀態條件
狀態條件是我們安全策略中定義合規端點的規則集。其中一些專案包括安裝防火牆、防病毒軟體、防惡意軟體、修補程式、磁碟加密等。
在Cisco ISE GUI中,按一下Menuicon(
) 然後選擇Work Centers > Posture > Policy Elements > Conditions,點選Add,然後建立一個或多個使用Agentless posture識別需求的Posture條件。Condition建立後,按一下Save。
在此案例中,使用以下引數配置了名為「Agentless_Condition_Application」的應用程式條件:
·作業系統:Windows全部
此條件適用於任何版本的Windows作業系統,確保不同的Windows環境之間具有廣泛的相容性。
·檢查者:程序
系統監控裝置內的進程。您可以選擇選擇Process或Application;在本例中,選擇了Process。
·進程名稱:有線自動配置
Wired AutoConfig進程是進程相容模組將簽入裝置。此過程負責配置和管理有線網路連線,包括IEEE 802.1X身份驗證。
·應用程式操作員: running
合規性模組驗證裝置上當前是否正在運行有線AutoConfig進程。您可以選擇選擇Running或Not Running。在此例項中,選擇了Running以確保進程處於活動狀態。
無代理條件
狀態要求
姿勢要求是一組複合條件或僅一個可與角色和作業系統連結的條件。連線到網路的所有客戶端必須在狀態評估期間滿足強制性要求,才能在網路上實現合規性。
在Cisco ISE GUI中,按一下Menuicon(
) 並選擇Work Centers > Posture > Policy Elements > Requirement。按一下下箭頭並選擇Insert new Requirement,然後建立一個或多個使用Agentless posture的PostureRequirement。建立Requirement後,按一下Done,然後按一下Save。
在本例中,使用以下條件配置了一個名為「Agentless_Requirement_Application」的應用程式要求:
·作業系統:Windows全部
此要求適用於任何版本的Windows作業系統,確保它適用於所有Windows環境。
·終端安全評估型別:無代理
為無代理環境設定此配置。可用選項包括Agent、Agent Stealth、Temporal Agent和Agentless。在此案例中,選擇了Agentless。
•狀況:Agentless_Condition_Application
這指定ISE終端安全評估模組和合規性模組將在裝置進程內檢查的條件。所選條件為Agentless_Condition_Application。
·補救操作:
由於此配置用於無代理環境,因此不支援補救操作,並且此欄位呈灰色顯示。
無代理要求
狀態策略
在Cisco ISE GUI中,按一下Menuicon(
) 並選擇Work Centers > Posture > Posture Policy。按一下向下箭頭,然後選擇Insert new Requirement,然後建立一個或多個支援的Posture Policy規則,該規則對該Posture Requirement使用無代理狀態。 Posture Policy建立後,按一下Done,然後按一下Save。
在此場景中,名為「Agentless_Policy_Application」的Posture Policy已使用以下引數配置:
·規則名稱:Agentless_Policy_Application
這是此配置示例中安全評估策略的指定名稱。
·作業系統:Windows全部
該策略設定為應用於所有Windows作業系統版本,確保不同Windows環境的廣泛相容性。
·終端安全評估型別:無代理
為無代理環境設定此配置。可用選項包括Agent、Agent Stealth、Temporal Agent和Agentless。在此案例中,Agentless已被選中。
·其他條件:
在此配置示例中,尚未建立其他條件。但是,您可以選擇配置特定條件,以確保只有目標裝置受此終端安全評估策略的約束,而不是網路中所有的Windows裝置。這對於網路分段特別有用。
狀態無代理策略
使用者端布建
步驟1 — 下載資源
要開始配置客戶端調配,您必須首先下載所需的資源並在ISE中可用,以便您以後可以在客戶端調配策略中使用這些資源。
向ISE新增資源有兩種方式:思科站點的代理資源和本地磁碟上的代理資源。由於您正在配置無代理,因此需要從思科站點訪問代理資源進行下載。
附註:要從思科站點使用此代理資源,ISE PAN需要網際網路訪問。
資源
來自思科站點的代理資源
在Cisco ISE GUI中,按一下Menuicon(
) 並選擇Work Centers > Posture > Client Provisioning > Resources。按一下Add,從Cisco站點選擇Agent Resources,按一下Save。
您只能從思科網站下載Compliance Module。系統顯示要下載的兩個最新合規性模組。資源包CiscoAgentlessWindows 5.1.6.6已選擇用於此配置示例,這僅適用於Windows裝置。
.
來自思科站點的代理資源
第2步 — 配置客戶端調配策略
配置終端安全評估代理時,需要兩種不同的資源(AnyConnect或安全客戶端和合規性模組),
將Agent Configuration下的兩個資源與Agent Posture Profile一起對映,以便可以在客戶端調配策略中使用此Agent Configuration。
但是,在配置狀態無代理時,不需要配置代理配置或代理狀態配置檔案,而只需從思科站點的代理資源下載無代理軟體包。
在Cisco ISE GUI中,按一下Menuicon(
) 並選擇Work Centers > Posture > Client Provisioning > Client Provisioning Policy。按一下下箭頭,然後選擇Insert new policy above或Insert new policy below,Duplicate above orDuplicate below:
- 規則名稱:Agentless_Client_Provisioning_Policy
這指定客戶端調配策略的名稱。
這可確保該策略應用於所有Windows作業系統版本。
- 其他條件:本示例中未配置任何特定條件。但是,您可以配置條件以確保只有所需裝置與此客戶端調配策略匹配,而不是網路中所有的Windows裝置。這對於網路分段尤其有用。
範例:如果您使用的是Active Directory,可以將Active Directory組納入策略以縮小受到影響的裝置。
- 結果:選擇適當的程式包或配置代理。由於您是為無代理環境進行配置,因此請選擇以前從思科站點的代理資源下載的CiscoAgentlessWindows 5.1.6.6包。此無代理程式包包含運行狀態無代理程式所需的所有資源(無代理軟體和合規性模組)。
·單擊「保存」
無代理客戶端調配策略
附註:請確保只有一個客戶端調配策略滿足任何給定身份驗證嘗試的條件。如果同時評估多個策略,則可能會導致意外行為和潛在衝突。
無代理授權設定檔
在Cisco ISE GUI中,按一下Menuicon(
)並選擇Policy > Policy Elements > Results > Authorization > Authorization Profiles並建立一個Authorization Profile,用於評估無代理狀態的結果。
無代理授權配置檔案
使用補救的替代方案(可選)
無代理程式流中不支援補救。為此,您可以實施自定義熱點門戶以增強使用者關於端點合規性的意識。當終端被識別為不合規時,可將使用者重定向到此門戶。此方法可確保使用者瞭解其端點的合規性狀態,並可採取適當操作來糾正任何問題。
在Cisco ISE GUI中,按一下Menuicon(
) 並選擇Work Centers > Guest Access > Portals & Components > Guest Portals。單擊Create > Select Hotspot Guest Portal > Continue:。在此配置示例中,熱點門戶命名為Agentless_Warning。
熱點訪客門戶
在門戶設定中,您能夠自定義向終端使用者顯示的消息以符合您的特定要求,這只是自定義門戶檢視的一個示例:
故障狀態無代理
修正授權設定檔(可選)
在Cisco ISE GUI中,按一下Menuicon(
)並選擇Policy > Policy Elements > Results > Authorization > Authorization Profiles並為您的補救建立AuthorizationProfile。
修正授權規則
無代理授權規則
在Cisco ISE GUI中,按一下Menuicon (
) 並選擇Policy > Policy設定並展開Authorization Policy。啟用和配置以下三個授權策略:
附註:這些授權規則必須按指定順序配置,以確保狀態流正常運行。
Unknown_Compliance_Redirect:
•狀況:
將Network_Access_Authentication_Passed和Compliance_Unknown_Devices配置為無代理狀態。此條件觸發無代理流。
·示例條件:
配置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:
•狀況:
將結果集配置為PermitAccess的Network_Access_Authentication_Passed和Compliant_Devices。
·示例條件:
配置AD組條件以分段流量。
必須配置Compliance_Unknown_Devices條件,才能授予相容裝置適當的訪問許可權。
·授權配置檔案:
將PermitAccess分配給此授權規則,以確保合規裝置具有訪問許可權。您可以自定義此配置檔案以滿足貴組織的需求。
合規授權規則
所有授權規則
授權規則
配置終端登入憑據
在Cisco ISE GUI中,按一下Menuicon(
) 並選擇Administration > Settings > Endpoint Scripts > Login Configuration,然後配置客戶端憑據以登入到客戶端。
終端指令碼使用這些相同的憑證,以便思科ISE可以登入到客戶端。
對於Windows裝置,只配置兩個第一個頁籤(Windows域使用者和Windows本地使用者)
😞
配置思科ISE通過SSH登入到客戶端時必須使用的域憑證。按一下Plusicon,然後根據需要輸入多個Windows登入名。對於每個域,在Domain、Username和Passwordfield中輸入必需的值。如果配置域憑據,則會忽略在Windows本地使用者頁籤中配置的本地使用者憑據。
如果您管理通過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中,按一下Menuicon(
) 並選擇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)(在本例中,選擇了「無代理帳戶」)>「成員」(Member of),帳戶必須具有Administrators組。
本地管理員許可權
正在驗證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(Admin)。
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選單導航至System Preferences。
2. 啟用遠端登入:
·轉到共用。
· 選中Remote Login旁邊的框。
·確保將Allow access for選項設定為相應的使用者或組。選擇All users將允許在Mac上具有有效帳戶的任何使用者通過SSH登入。
3.驗證防火牆設定:
· 如果啟用了防火牆,則需要確保它允許SSH連線。
· 轉到系統首選項>安全和隱私>防火牆。
·單擊Firewall Options按鈕。
· 檢查Remote Login或SSH是否已列出並允許。如果未列出,請按一下Add按鈕(+)進行新增。
4.透過終端機開啟連線埠22(如有必要):
·從應用程式>實用程式中開啟終端應用程式。
·使用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. Save and Exit:
·如果您使用的是預設編輯器(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"'
· 無需提示輸入密碼即可執行這些命令。