当前防火墙弹框
原因
- windows管理应用的网络访问控制,需要联网的应用需要防火墙允许。
- 对于可视柜台,需要网络访问的包含:
- spshell,在启动vtmloader后,触发配置下载,获取token
- sphost,访问服务
- guardian, 自行获取token,上传日志
- cefclient, 访问网页。
防火墙配置细则
- 需要以完整路径指示准确的程序位置
- 原程序使用netsh advfirewall firewall add rule name的方式添加防火墙规则
实现方案:
- 主要通过检查,不需要每次都删除和添加防火墙策略
- 原有的方式为通过cmd命令行执行,比较不好管理防火墙策略和路径;目前准备通过 Windows Filtering Platform (WFP) API来实现更加精细化的控制
- 提供一个API用于检查和更新防火墙策略
- 根目录认定:如在环境下,路径为D:\Run\version\x.x.x.x, 则认为根目录为D:\Run
- 添加策略:基于根目录,创建策略Run_spshell, Run_sphost, Run_guardian, Run_cefclient
- 如生产环境:v2.30|Action=Allow|Active=TRUE|Dir=Out|App=D:\Run\version\7.5.1.1\bin\guardian.exe|Name=Run_guardian|
- 如ST环境:v2.30|Action=Allow|Active=TRUE|Dir=Out|App=D:\Run-st\version\7.5.1.1\bin\guardian.exe|Name=Run-st_guardian|
- 如UAT环境:v2.30|Action=Allow|Active=TRUE|Dir=Out|App=D:\Run-uat\version\7.5.1.1\bin\guardian.exe|Name=Run-uat_guardian|
- 不是说ST环境就是Run-st,UAT环境就是Run-uat,而是根据根目录路径来创建。
- 删除策略:基于根目录,删除策略Run_spshell, Run_sphost, Run_guardian, Run_cefclient
- 策略存在列表:基于根目录下的所有版本文件夹
- API调用策略:
- 在升级的时候,会添加新的防火墙,这时候可以主动调用该API。
- 对于在回退情况下,因为目录下所有的程序都在防火墙策略中,所以不需要做任何处理。
- 终端VTM启动时,正常而言,已经存在防火墙策略;调用API,检查是否在路径中,如果不在路径,则添加进路径。(可能会单次增加启动时间)