2
这个楼主还没有留下简介。
当前还没有回复,欢迎成为第一个参与讨论的人。
第 10、11 篇分别介绍了操作系统和 MFA 检查。本篇继续使用 windows-laptop 与 local-web,为 Dial 策略增加一项进程检查:客户端必须运行指定程序,例如企业安全代理或运维组件,才能访问服务。
进程检查可以验证客户端上指定路径的程序是否正在运行;还可以配置程序的 SHA-256 哈希或 Windows 代码签名者指纹,进一步核对程序文件。OpenZiti Posture Check 文档列出了检查字段和 CLI 示例。
检查使用的是可执行文件路径,不只是任务管理器里显示的进程名称。先确认目标程序在 Windows 客户端上的实际位置,例如:
textC:\Program Files\Vendor\Agent\agent.exe
上面只是格式示例,请替换成实际路径。路径会随软件安装方式或版本变化,配置前应在目标客户端上确认。
在 ZAC 的 Posture Checks 页面新建检查:
text名称:require-endpoint-agent 角色属性:endpoint-agent-running 类型:Process Check 操作系统:Windows Path:C:\Program Files\Vendor\Agent\agent.exe
如果要检查多个程序,则选择 Process Multi Check:
如需验证程序文件本身,可以配置 SHA-256 哈希或签名证书指纹;不配置时,检查侧重于指定路径上的进程是否运行。相关字段和配置方法见官方 Process Check 创建指南。
也可以通过 ziti CLI 创建单进程检查。以下路径仍是示例:
bashziti edge create posture-check process-multi endpoint-agent AnyOf \
"Windows" \
"C:\\Program Files\\Vendor\\Agent\\agent.exe" \
-a endpoint-agent-running
在 ZAC 的 Policies / Ziti Policies → Service Policies 中编辑原有的 local-web-dial,将 #endpoint-agent-running 加入 Posture Check Attributes。
前几篇中如果已经添加了 Windows 版本和 MFA 检查,就保留它们:
textService:@local-web Identity:#windows-client Posture Checks: #windows-minimum #mfa-required #endpoint-agent-running Type:Dial
CLI 更新时也要保留已有检查属性:
bashziti edge update service-policy local-web-dial \
--posture-check-roles "#windows-minimum,#mfa-required,#endpoint-agent-running"
如果你的策略没有配置 Windows 版本或 MFA 检查,就只填写实际使用的属性。OpenZiti 将 Posture Check 关联到 Service Policy;检查通过后,身份才满足这条策略的授权条件。
先确认进程检查的角色属性已关联到策略:
bashziti edge list service-policies
然后在 Windows 客户端确认目标程序正在运行,并测试服务:
powershellcurl.exe -v http://hello.ziti/
如果策略生效且其他授权条件也满足,请求应能到达 local-web。可以在非生产环境中用一个无害的测试程序验证失败情况:程序未运行时,客户端应无法通过这条带有进程检查的策略访问服务。
程序正在运行,但检查仍失败
核对进程检查配置的操作系统和完整路径。若设置了哈希或签名指纹,也要确认它们与客户端上的实际文件一致。
服务仍然可以访问
检查是否还有另一条匹配同一身份和服务、但没有进程检查的 Dial 策略。前文提到,同一服务若存在另一条可通过的策略,受限策略可能不会成为唯一的授权路径。
使用多进程检查时结果不符合预期
检查语义选项:AllOf 要求所有程序都运行;AnyOf 只要求至少一个程序运行。
进程检查能验证指定程序的运行状态,但单独通过它并不能证明整台设备满足所有安全要求。本文的示例把程序检查、Windows 版本和 MFA 条件组合到同一条服务策略中。下一篇可以介绍 Windows 域 Posture Check,限制只有加入指定域的设备才能访问服务。