通过代理执行策略

默认情况下,安装在工作负载上的代理具有执行策略的功能,但执行已被禁用。准备就绪后,您就可以启用这些代理,根据配置的意图在选定的主机上执行策略。

当代理执行策略时,它会应用一组有序的规则,根据源、目标、端口、协议和方向等参数,指定防火墙应 ALLOW 还是 DROP 特定网络流量。有关策略的详细信息,请参阅在 Cisco Secure Workload 中管理策略生命周期

使用代理来执行

  • 代理通过安全的 TCP 或 SSL 通道来接收策略。

  • 代理在特权域中运行。在 Linux 计算机上,代理以 root 身份运行;在 Windows 计算机上,代理以 SYSTEM 身份运行。

  • 根据平台的不同,启用策略执行后,代理可以完全控制防火墙,也可以使用现有的配置规则。

  • 有关策略执行选项的详细信息,以及如何启用和配置代理以执行策略,请参阅创建代理配置文件

高级详细信息

启用执行后,将制定黄金规则,允许代理连接到控制器。代理通过使用 TLS 或 SSL 协议的双向安全通道与控制器的执行前端 (EFE) 进行通信。来自控制器的消息由策略生成器签名,并由代理验证。

代理从控制器接收平台无关模式的策略。代理会将这些独立于平台的策略转换为特定于平台的策略,并在终端上对防火墙进行编程。

代理会主动监控防火墙状态。如果代理检测到执行的策略有任何偏差,它会再次将缓存的策略执行到防火墙中。代理还会监控自身对 CPU 和内存等系统资源的消耗情况。

代理使用 EFE 定期向控制器发送状态和统计信息报告。状态报告包括最新编程策略的状态,如成功、失败或错误(如有)。统计信息报告包括策略统计,如允许和丢弃的数据包,以及字节数,具体取决于平台。

Linux 平台上的代理执行

在 Linux 平台上,支持同时执行 IPv4 和 IPv6 策略。代理使用 iptables 或 ip6tables 和 ipset 来执行网络策略。在主机上启用代理后,默认情况下,它会控制和编程 iptables。如果启用了 IPv6 网络堆栈,则代理会使用 ip6tables 来控制 IPv6 防火墙。

Linux iptables 或 ip6tables

Linux 内核具有 iptables 和 ip6tables,用于设置、维护和检查 IPv4 和 IPv6 数据包过滤规则表。iptables 和 ip6tables 包含许多预定义的表。每个表都包含预定义的链,也可以包含用户定义的链。这些链包含规则集,而每个规则指定了数据包的匹配条件。预定义表包括 raw、mhole、filter 和 NAT。预定义链包括 INPUT、OUTPUT、FORWARD、PREROUTING 和 POSTROUTING。

Cisco Secure Workload 代理对包含允许或丢弃数据包的规则的过滤表进行编程。过滤器表由预定义链 INPUT、OUTPUT 和 FORWARD 组成。除此以外,代理还会添加自定义 TA 链,以便对来自控制器的策略进行分类和管理。这些 TA 链包含从策略派生的 Cisco Secure Workload 规则以及代理生成的规则。当代理收到与平台无关的规则时,它会将其解析并转换为 iptable、ip6table 或 ipset 规则,并将这些规则插入 TA 在过滤表中定义的链中。在对防火墙进行编程后,代理会监控防火墙是否有任何规则或策略偏差,如有,则会重新对防火墙进行编程。它会跟踪防火墙中编程的策略,并定期向控制器报告其统计信息。

以下是一个描述这种行为的示例:

独立于平台的网络策略消息中的典型策略包括:

source set id: “test-set-1”
destination set id: “test-set-2”
source ports: 20-30
destination ports: 40-50
ip protocol: TCP
action: ALLOW
. . .
set_id: “test-set-1”
     ip_addr: 1.2.0.0
     prefix_length: 16
     address_family: IPv4
set_id: “test-set-2”
     ip_addr: 3.4.0.0
     prefix_length: 16
     address_family: IPv4

代理会处理该策略和其他信息,并将其转换为特定平台的 ipset 和 iptables 规则:

ipset rule:
Name: ta_f7b05c30ffa338fc063081060bf3
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 1
Members:
1.2.0.0/16
Name: ta_1b97bc50b3374829e11a3e020859
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 1
Members:
3.4.0.0/16
iptables rule:
TA_INPUT -p tcp -m set --match-set ta_f7b05c30ffa338fc063081060bf3 src -m set --match-
˓→set ta_1b97bc50b3374829e11a3e020859 dst -m multiport --sports 20:30 -m multiport --
˓→dports 40:50 -j ACCEPT

警告

ipset 内核模块

当在代理配置文件中启用执行并禁用保留规则时,在 Linux 主机上运行的代理会确保 ipset 内核模块有足够大的 max_sets 配置。如需更改,代理会使用新的 max_sets 值来重新加载 ipset 内核模块。如果启用了保留规则,代理会检查当前 ipset 模块 max_sets 值,但不会进行任何更改。当前配置的 max_sets 值可在 cat /sys/module/ip_set/parameters/max_sets 中找到。

主机防火墙备份

首次在代理配置文件中启用执行时,Linux 主机上运行的代理会在控制主机防火墙之前将 ipset 和 ip[6]tables 的当前内容存储在 /opt/cisco/tetration/backup 中。

执行配置的连续禁用或启用转换不会生成备份。在卸载代理后不会删除该目录。

WAF 模式下 Windows 平台上的代理执行

在 Windows 平台的 Web 应用防火墙 (WAF) 模式下,Cisco Secure Workload代理会使用 Windows 防火墙执行网络策略支持同时执行 IPv4 和 IPv6 策略。

高级安全 Windows 防火墙

Windows 上的本地组件(高级安全 Windows 防火墙)根据以下类型的设置来调节网络流量:

  • 监管入站网络流量的规则。

  • 监管出站网络流量的规则。

  • 根据网络流量源和目标的身份验证状态来覆盖规则。

  • 适用于 IPsec 流量和 Windows 服务的规则。

使用入站和出站防火墙规则对 Cisco Secure Workload 网络策略进行编程。

Cisco Secure Workload 规则和 Windows 防火墙

在 Windows 平台上,Cisco Secure Workload 网络策略按如下方式执行:

  1. Cisco Secure Workload 网络策略中独立于平台的防火墙规则将转换为 Windows 防火墙规则。

  2. 规则将在 Windows 防火墙中编程。

  3. Windows 防火墙执行规则。

  4. 系统将监控 Windows 防火墙及其规则集。如果检测到更改,系统会报告偏差,并在 Windows 防火墙中重置 Cisco Secure Workload Network 策略。

安全配置文件

Windows 防火墙会根据主机连接的网络对规则进行分组。这些规则组被称为配置文件,共有三个此类配置文件:

  • 域配置文件

  • 专用配置文件

  • 公共配置文件

Cisco Secure Workload 规则会被编程到所有配置文件中,但只会持续监控活动配置文件中的规则。

有效设置和混合列表策略

Windows 防火墙中的规则集未根据优先级进行排序。当多个规则与数据包匹配时,最严格的规则将生效,这意味着 DENY 规则优先于 ALLOW 规则。有关详细信息,请参阅 Microsoft TechNet 上的文章。

请考虑“执行代理”部分中的混合列表(允许和拒绝)策略示例:
1. ALLOW 1.2.3.30 tcp port 80
2. ALLOW 1.2.3.40 udp port 53
3. BLOCK 1.2.3.0/24 ip
4. ALLOW 1.2.0.0/16 ip
5. Catch-all: DROP ingress, ALLOW egress

当流向主机 1.2.3.30 TCP 端口 80 的数据包到达防火墙时,它会匹配所有规则,但其中最严格的规则 3 将被执行,数据包将被丢弃。这种行为违背了按顺序评估规则、执行规则 1 以及允许数据包的预期。

由于上述 Windows 防火墙的设计,这种行为差异在 Windows 平台上是意料之中的。在具有不同规则操作的重叠规则的混合列表策略中,可以观察到这种行为。

例如,

1. ALLOW 1.2.3.30 tcp
2. BLOCK 1.2.3.0/24 tcp

来自其他防火墙或策略的干扰

建议您授予代理对 Windows 防火墙的完全和排他性控制,以便按预期执行 Cisco Secure Workload 网络策略。在以下情况时,代理无法可靠地执行策略:

  • 存在第三方防火墙。(Windows 防火墙必须是主机上的活动防火墙产品。)

  • 为当前配置文件禁用了防火墙。

  • 使用组策略部署冲突的防火墙设置。一些冲突的设置包括:

    • 防火墙规则

    • 当前配置文件中与策略的捕获全部规则不同的默认入站或出站操作。

    • 为当前配置文件禁用了防火墙。

有状态的执行

Windows 高级防火墙被视为有状态的防火墙,即对于某些协议(例如 TCP),防火墙维护内部状态跟踪,以检测到达防火墙的新数据包是否属于已知连接。属于已知连接的数据包无需检查防火墙规则即可被允许。状态防火墙支持双向通信,而无需在 INBOUND 和 OUTBOUND 表中建立规则。

例如,请考虑适用于 Web 服务器的以下规则:Accept all TCP connections to port 443

这样做的目的是接受端口 443 上到服务器的所有 TCP 连接,并允许服务器与客户端进行通信。在这种情况下,INBOUND 表中只会插入一条规则,从而允许端口 443 上的 TCP 连接。无需在 OUTBOUND 表中插入任何规则。在 OUTBOUND 表中插入规则由 Windows 高级防火墙隐式执行。


Note


状态跟踪只适用于建立和维护显式连接的协议。对于其他协议,必须对 INBOUND 和 OUTBOUND 规则进行编程,以启用双向通信。


启用执行后,当协议为 TCP 时,给定的具体规则将被编程为有状态(代理会根据情景决定将该规则插入 INBOUND 表还是 OUTBOUND 表)。对于其他协议(包括 ANY),会同时编程 INBOUND 和 OUTBOUND 规则。

警告

主机防火墙备份

首次在代理配置文件中启用执行时,在 Windows 主机上运行的代理在控制主机防火墙之前,会将当前的 Windows 高级防火墙内容导出到 ProgramData\Cisco\Tetration\backup。执行配置的连续禁用或启用转换不会生成备份。代理卸载时不会删除该目录。

WFP 模式下 Windows 平台上的代理执行

在 Windows 筛选平台 (WFP) 模式 Windows 平台上,代理通过配置 Windows 筛选平台 (WFP) 筛选器执行网络策略。代理不会通过 Windows 高级防火墙配置网络策略。支持同时执行 IPv4 和 IPv6 策略。

Windows 过滤平台

Windows 过滤平台 (WFP) 是 Microsoft 提供的一组 API,用于配置过滤器以处理网络流量。网络流量处理过滤器使用内核级 API 和用户级 API 进行配置。WFP 过滤器可在各个层进行配置:网络层、传输层、应用层执行 (ALE)。Cisco Secure Workload WFP 过滤器在 ALE 层配置,类似于 Windows 防火墙规则。每个层都有多个子层,按权重从高到低排序。在每个子层中,过滤器按权重从高到低排序。网络数据包会遍历所有子层。在每个子层,网络数据包都会根据权重从高到低穿过匹配过滤器,并返回相应的操作:允许或阻止。通过所有子层后,数据包将根据“阻止”操作优先于“允许”操作的规则进行处理。

WFP 相对于 WAF 的优势

  • 避免 Windows 防火墙配置依赖关系。

  • 克服 GPO 限制。

  • 确保轻松迁移和策略恢复。

  • 允许您控制策略排序。

  • 避免 Windows 防火墙的严格阻止优先策略顺序。

  • 减少策略更新时的 CPU 开销。

  • 创建高效的 1:1 策略规则过滤器。

  • 确保更快的单步更新。

WFP 的代理支持

当执行配置为使用 WFP 时,Cisco Secure Workload 过滤器会覆盖 Windows 防火墙规则。

在 WFP 模式下,代理配置以下 WFP 对象:

  • 提供者具有 GUID 和名称,用于过滤器管理,不会影响数据包过滤

  • 子层具有 GUID、名称和权重。Cisco Secure Workload 子层配置的权重高于 Windows 高级防火墙子层。

  • 过滤器具有名称、GUID、ID、权重、层 ID、子层密钥、操作 (PERMIT/BLOCK) 和条件。为 Golder 规则、自身规则和策略规则配置 WFP 过滤器。代理还会配置端口扫描防护过滤器。Cisco Secure Workload 过滤器配置了 FWPM_FILTER_FLAG_CLEAR_ACTION_RIGHT 标志。此标志可确保 Cisco Secure Workload 过滤器不会被 Microsoft 防火墙规则覆盖。对于每个 Cisco Secure Workload 网络策略规则,系统会根据方向(入站或出站)和协议来配置一个或多个 WFP 过滤器。


    Note


    向主机发送端口扫描探测包时,对应流量的状态会在“策略分析”页面显示为 PERMITTED:REJECTED。请注意,该规则适用于 3.10.2.11 及更早的所有代理版本。


对于 TCP 入站策略,

id: 14 , TCP Allow 10.195.210.184 Dir=In localport=3389

配置的 WFP 过滤器如下:

Filter Name:                  Cisco Secure Workload Rule 14
------------------------------------------------------
EffectiveWeight:                       18446744073709551589
LayerKey:                              FWPM_LAYER_ALE_AUTH_LISTEN_V4
Action:                                Permit
Local Port:                            3389
Filter Name:                           Cisco Secure Workload Rule 14
------------------------------------------------------
EffectiveWeight:                       18446744073709551589
LayerKey:                              FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4
Action:                                Permit
RemoteIP:                              10.195.210.184-10.195.210.184

Cisco Secure Workload 代理分别为入站和出站捕获全部策略配置 Cisco Secure Workload 默认入站Cisco Secure Workload 默认出站过滤器。

代理 WFP 支持和 Windows 防火墙

  • 代理不监控 WAF 规则或 WAF 配置文件。

  • 代理不监控防火墙状态。

  • 代理不需要启用防火墙状态。

  • 代理不与 GPO 策略冲突

有效设置和混合列表策略

WFP 模式下的代理执行支持混合列表或灰名单策略。

请考虑“执行代理”部分中的混合列表(允许和拒绝)策略示例:


1. ALLOW 1.2.3.30 tcp port 80-            wt1000
2. BLOCK 1.2.3.0/24 ip-                   wt998
3. ALLOW 1.2.0.0/16 ip-                   wt997
4. Catch-all: DROP ingress, ALLOW egress - wt996

当发向主机 1.2.3.30 tcp 端口 80 的数据包到达防火墙时,它会匹配过滤器 1 并被允许。但由于过滤器 2,流向主机 1.2.3.10 的数据包会被阻止。过滤器 3 允许发往主机 1.2.2.10 的数据包。

有状态的执行

Cisco Secure Workload WFP 过滤器在 ALE 层进行配置。网络流量会针对套接字 connect()、listen() 和 accept() 操作进行过滤。建立连接后,与 L4 连接相关的网络数据包不会被过滤。

已配置的 WFP 过滤器的可视性

您可以使用 c:\program files\tetration\tetenf.exe 来查看已配置的 Cisco Secure Workload WFP 过滤器。支持的选项:

  • 使用管理权限运行 cmd.exe

  • 运行 c:\program files\tetration\tetenf.exe -l -f <-verbose> <-output=outfile.txt>

  • 使用管理权限运行 cmd.exe

  • 运行 netsh wfp show filters

  • 查看 filters.xml 文件以获取已配置的 Cisco Secure Workload 过滤器。

在 WFP 模式下禁用隐身模式过滤器

隐蔽模式是 Windows 系统的一项默认安全功能。该功能会阻止操作系统在无活动侦听器的端口收到连接请求时,发送的出站控制数据包。当 Cisco Secure Workload 代理在 Windows 工作负载的 WFP 模式下执行策略时,会配置筛选器以实现隐蔽模式的功能。

尽管不建议此操作,但在特殊场景下,管理员可能需要禁用该功能。当 Cisco Secure Workload 代理在工作负载上执行策略时,可按照以下步骤禁用隐蔽模式筛选器。

如需禁用隐蔽模式筛选器(端口扫描筛选器),请执行以下操作:

过程


步骤 1

编辑 \conf\enforcer.cfg

步骤 2

添加 disable_wfp_stealth_mode:1

步骤 3

保存文件。

步骤 4

使用管理权限,通过以下方式重启 CswAgent 服务:

  1. 运行命令:sc.exe cswagent 以停止 CswAgent 服务。

  2. 运行命令:sc.exe cswagent 以启动 CswAgent 服务。

步骤 5

验证:

  1. 使用管理权限运行 cmd.exe

  2. 运行命令:c:\program files\tetration\tetenf.exe -l -f -verbose -output=outfile.txt


 
“Tetration Internal Rule block portscan” filters are not configured.


当 Cisco Secure Workload 代理升级至新版本后,禁用隐蔽模式筛选器的功能将被自动移除。


有关在 Windows 系统中禁用隐蔽模式的详细说明,请参阅如何禁用隐蔽模式 - Windows Server | Microsoft Learn

删除已配置的 WFP 过滤器

您可以使用 c:\program files\tetration\tetenf.exe 来删除已配置的 Cisco Secure Workload WFP 过滤器。为避免意外删除过滤器,当您运行 delete 命令时,请以 <yyyymm> 格式指定令牌,其中 yyyy 是当前年份,mm 是当前月份的数字形式。例如,如果今天的日期是 2021/01/21,则令牌为 -token=202101

支持的选项包括:

  • 使用管理权限运行 cmd.exe

  • 要删除所有已配置的 Cisco Secure Workload 过滤器,请运行 c:\program files\tetration\tetenf.exe -d -f -all - token=<yyyymm>

  • 要删除所有已配置的 Cisco Secure Workload WFP 对象,请运行 c:\program files\tetration\tetenf.exe -d -all -token=<yyyymm>

  • 要按名称删除 Cisco Secure Workload WFP 过滤器,请运行 c:\program files\tetration\tetenf.exe -d -name=<WFP filter name> -token=<yyyymm>

WFP 模式下的已知限制

  • 将“执行模式”(Enforcement Mode) 设置为 WFP 时,代理配置文件中的保留规则 (Preserve Rules) 设置将不起作用。

为 Windows 属性配置策略

要在基于 Windows 的工作负载上执行策略时更精细地执行策略,则可以通过以下方式来过滤网络流量:

  • 应用名称

  • 服务名称

  • 带或不带用户组的用户名

WAF 和 WFP 模式均支持此选项。基于 Windows 操作系统的过滤器在生成的网络策略中分为使用者过滤器提供者过滤器。使用者过滤器会过滤在使用者工作负载上发起的网络流量,而提供者过滤器会过滤发往提供者工作负载的网络流量。

开始之前

此程序假定您要修改现有的策略。如果尚未创建要添加基于 Windows 操作系统的过滤器的策略,请先创建该策略。


重要


有关涉及 Windows 属性的策略,请参阅警告已知限制


过程


步骤 1

在导航窗格中,点击防御 (Defend) > 分段 (Segmentation)

步骤 2

点击包含要为其配置基于 Windows 操作系统的过滤器的策略的范围。

步骤 3

点击要在其中编辑策略的工作空间。

步骤 4

点击管理策略 (Manage Policies)

步骤 5

选择要编辑的策略。

重要

 

使用者和提供者必须仅包含 Windows 工作负载。

步骤 6

在要编辑的策略的表行中,点击协议和端口 (Protocols and Ports) 列中的现有值。

步骤 7

在右侧窗格中,点击协议和端口 (Protocols and Ports)下的现有值。

在本示例中,点击 TCP : 22 (SSH)

步骤 8

点击显示高级选项 (Show advanced options)

步骤 9

根据应用名称、服务名称或用户名配置使用者过滤器。

  • 应用名称必须是完整路径名。

  • 服务名称必须是短服务名称。

  • 用户名可以是本地用户名(例如,tetter)或域用户名(例如,sensor-dev@sensor-dev.com 或 sensor-dev\sensor-dev)

  • 用户组可以是本地用户组(例如,Administrators)或域用户组(例如,domain users\sensor-dev)

  • 可以指定多个用户名和/或用户组名并以“,”分隔。(例如,sensor-dev\@sensor-dev.com,domain users\sensor-dev)

  • 服务名称和用户名不能同时配置。

步骤 10

根据应用名称、服务名称或用户名配置提供者过滤器。

遵循上一步中为使用者过滤器提供的相同准则。

步骤 11

输入二进制文件的路径(如适用)。

例如,输入 c:\test\putty.exe

步骤 12

点击更新


建议的基于 Windows 操作系统的策略配置

尽可能在策略中指定端口和协议;建议不要允许任何端口、任何协议。

例如,生成的具有端口和协议限制的策略可能如下所示:



     dst_ports {
      start_port: 22
      end_port: 22
      consumer_filters {
        application_name: "c:\\test\\putty.exe"
      }
     }}
     ip_protocol: TCP

相反,如果您允许 iperf.exe 使用任何协议和任何端口发起的网络连接,则生成的策略将如下所示:


  match_set {
    dst_ports {
      end_port: 65535
      consumer_filters {
        application_name: "c:\\test\\iperf.exe"
      }
    }
    address_family: IPv4
    inspection_point: EGRESS
    match_comment: "PolicyId=61008290755f027a92291b9d:61005f90497d4f47cedacb86:"
  }

对于上述过滤器,Cisco Secure Workload 创建一条策略规则以允许提供者上的网络流量,如下所示:


  match_set {
      dst_ports {
      end_port: 65535
    }
    address_family: IPv4
    inspection_point: INGRESS
    match_comment: "PolicyId=61008290755f027a92291b9d:61005f90497d4f47cedacb86:"
  }

此网络规则会打开提供者上的所有端口。我们强烈建议不要使用 Any 协议来创建基于操作系统的过滤器。

已知限制

  • Windows 2008 R2 不支持基于 Windows 操作系统的过滤策略。

  • 可以使用单个用户名来配置网络策略,而 MS 防火墙 UI 支持多个用户。

警告

  • 在使用基于 Windows 操作系统的策略时,使用者/提供者范围或过滤器应仅包含 Windows 代理。否则,非 Windows 操作系统(Linux、AIX)会跳过策略并在“执行状态”(Enforcement Status) 中报告同步错误。

  • 避免创建过滤条件宽松的 Windows 操作系统过滤器。此类条件可能会打开不需要的网络端口。

  • 如果操作系统过滤器是为使用者配置的,那么策略只适用于使用者,同样,如果是为提供者配置的,那么策略只适用于提供者。

  • 由于对网络流的进程上下文、用户上下文或服务上下文了解有限或一无所知,如果策略采用基于 Windows 操作系统的过滤器,策略分析就会出现偏差。

使用基于 Windows 操作系统的过滤属性对策略进行验证和故障排除

如果使用基于 Windows 操作系统的过滤属性,则以下主题将为您提供验证和故障排除信息。

思科 TAC 可以根据需要使用这些信息来对此类策略进行故障排除。

基于应用名称的策略

使用以下信息验证 Windows 操作系统工作负载上基于应用名称的策略并排除故障。

以下部分介绍策略在输入为 c:\test\putty.exe 的应用二进制文件的工作负载上应如何显示。

基于应用名称的示例策略
dst_ports {
start_port: 22
end_port: 22
consumer_filters {
application_name: “c:\test\putty.exe”
}
}}
ip_protocol: TCP
address_family: IPv4
inspection_point: EGRESS
生成的防火墙规则
使用 netsh生成的过滤器

要使用本地 Windows 工具验证过滤器是否已添加到高级策略中,请执行以下操作:

  • 使用管理权限运行 cmd.exe

  • 运行 netsh wfp show filters

  • 在当前目录中生成输出文件 filters.xml

  • 检查 FWPM_CONDITION_ALE_APP_ID 以获取输出文件中的应用名称:filters.xml。

<fieldKey>FWPM_CONDITION_ALE_APP_ID</fieldKey>
                     <matchType>FWP_MATCH_EQUAL</matchType>
                     <conditionValue>
                            <type>FWP_BYTE_BLOB_TYPE</type>
                            <byteBlob>
                                   <data>
˓→5c006400650076006900630065005c0068006100720064006400690073006b0076006f006
˓→</data>
                                  <asString>\device\harddiskvolume2\temp\putty.exe</
˓→asString>
               </byteBlob>
       </conditionValue>
使用 tetenf.exe -l -f 生成的 WFP 过滤器
Filter Name:                   Cisco Secure Workload Rule 1
------------------------------------------------------
EffectiveWeight:               18446744073709551592
LayerKey:                      FWPM_LAYER_ALE_AUTH_CONNECT_V4
Action:                        Permit
RemoteIP:                      10.195.210.15-10.195.210.15
Remote Port:                   22
Protocol:                      6
AppID:                         \device\harddiskvolume2\test\putty.exe
无效的应用名称
  • 在 WAF 模式下,为无效的应用名称创建了防火墙规则。

  • 在 WFP 模式下,不会为无效的应用名称创建 WFP 过滤器,但不会拒绝 NPC。代理会记录警告消息并配置其余策略规则。

基于服务名称的策略

使用以下信息会根据 Windows 操作系统工作负载上的服务名称来验证策略并进行故障排除。

以下各节介绍策略应在工作负载上显示的方式。

基于服务名称的示例策略
    dst_ports {
             start_port: 22
             end_port: 22
             provider_filters {
                    service_name: “sshd”
             }
         }}
         ip_protocol: TCP
         address_family: IPv4
         inspection_point: INGRESS
生成的防火墙规则
使用 netsh生成的过滤器

要使用本地 Windows 工具验证是否已为高级策略添加过滤器,请执行以下操作:

  • 使用管理权限运行 cmd.exe

  • 运行 netsh wfp show filters

  • 在当前目录中生成输出文件 filters.xml

  • 检查 FWPM_CONDITION_ALE_USER_ID 以获取输出文件 filters.xml 中的用户名。

    <item>
                         <fieldKey>FWPM_CONDITION_ALE_USER_ID</fieldKey>
                         <matchType>FWP_MATCH_EQUAL</matchType>
                         <conditionValue>
                                    <type>FWP_SECURITY_DESCRIPTOR_TYPE</type>
                                    <sd>O:SYG:SYD:(A;;CCRC;;;S-1-5-80-3847866527-469524349-687026318-
    →516638107)</sd>
                         </conditionValue>
    </item>
使用 tetenf.exe -l -f 生成的 WFP 过滤器
Filter Name:       Cisco Secure Workload Rule 3
------------------------------------------------------
EffectiveWeight:            18446744073709551590
LayerKey:                   FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4
Action:                     Permit
Local Port:                 22
Protocol:                   6
User or Service:            NT SERVICE\sshd
无效的服务名称
  • 在 WAF 模式下,系统会为不存在的服务名称创建防火墙规则。

  • 在 WFP 模式下,系统不会为不存在的服务名称创建 WFP 过滤器。

  • 服务 SID 类型必须为不受限制 (Unrestricted)受限制 (Restricted)。如果服务类型为无 (None),则可以添加防火墙规则和 WFP 过滤器,但它们不起作用。

    要验证 SID 类型,请运行以下命令:

    sc qsidtype <service name>

基于用户组或用户名的策略

使用以下信息会根据 Windows 操作系统工作负载上的用户名(带和不带用户组名称)来验证策略并进行故障排除。

本主题中的部分介绍策略应在工作负载上显示的方式。

本主题中的示例基于使用以下信息配置的策略:

Figure 1. 基于用户组或用户名的策略
基于用户名的策略示例
dst_ports {
          start_port: 30000
          end_port: 30000
          provider_filters {
               user_name: “sensor-dev\sensor-dev”
           }
}}
ip_protocol: TCP
address_family: IPv4
inspection_point: EGRESS
基于用户组和用户名的策略示例
dst_ports {
start_port: 30000
end_port: 30000
provider_filters {
user_name: “sensor-dev\domain users,sensor-dev\sensor-dev”
}
}}
ip_protocol: TCP
address_family: IPv4
inspection_point: EGRESS
生成的防火墙规则

基于用户名的防火墙规则

示例:基于用户名 sensor-dev\sensor-dev 的防火墙规则

基于用户组和用户名的防火墙规则

示例:基于用户名 sensor-dev\sensor-dev 和用户组 domain users\sensor-dev 的防火墙规则

使用 netsh生成的过滤器

要使用本地 Windows 工具验证是否已为高级策略添加过滤器,请执行以下操作:

  • 使用管理权限运行 cmd.exe

  • 运行 netsh wfp show filters

  • 在当前目录中生成输出文件 filters.xml

  • 检查 FWPM_CONDITION_ALE_USER_ID 以获取输出文件 filters.xml 中的用户名。

    <item>
                <fieldKey>FWPM_CONDITION_ALE_USER_ID</fieldKey>
                <matchType>FWP_MATCH_EQUAL</matchType>
                <conditionValue>
                       <type>FWP_SECURITY_DESCRIPTOR_TYPE</type>
                       <sd>O:LSD:(A;;CC;;;S-1-5-21-4172447896-825920244-2358685150)</sd>
                </conditionValue>
    </item>
使用 tetenf.exe -l -f 生成的 WFP 过滤器

基于用户名过滤

示例:基于用户名 SENSOR-DEV\sensor-dev 的 WFP 规则

Filter Name:                   Cisco Secure Workload Rule 1
------------------------------------------------------
EffectiveWeight:               18446744073709551590
LayerKey:                      FWPM_LAYER_ALE_AUTH_CONNECT_V4
Action:                        Permit
RemoteIP:                      10.195.210.15-10.195.210.15
Remote Port:                   30000
Protocol:                      6
User or Service:               SENSOR-DEV\sensor-dev

基于用户组和用户名过滤

示例:基于用户名 SENSOR-DEV\sensor-dev 和用户组名 SENSOR-DEV\Domain Users 的 WFP 规则

Filter Name:         Cisco Secure Workload Rule 1
------------------------------------------------------
EffectiveWeight:             18446744073709551590
LayerKey:                    FWPM_LAYER_ALE_AUTH_CONNECT_V4
Action:                      Permit
RemoteIP:                    10.195.210.15-10.195.210.15
Remote Port:                 30000
Protocol:                    6
User or Service:             SENSOR-DEV\Domain Users, SENSOR-DEV\sensor-dev

无法为网络策略规则配置服务名称和用户名。


Note


如果用户名或用户组无效,则网络策略会被 Windows 代理拒绝。


在 Windows 节点上执行 Kubernetes Pod

在 Windows 工作节点上安装 Kubernetes 守护进程集代理后,它会在 AKS 环境中捕获来自 Windows 工作节点和 Kubernetes Pod 的网络流。

要求

  • 在具有 Windows 节点的 AKS 环境中支持执行 Kubernetes Pod。

  • 执行模式必须为 WFP,并将保留规则 (Preserve Rules) 设置为“关”(Off)。

  • 支持 Microsoft Windows Server 2019 和 Windows Server 2022。

这些策略在 vSwitch 上针对使用 VFP 连接到 Pod 的端口执行。虚拟过滤平台 (VFP) 是 vSwitch 的一个组件,用于配置过滤器以处理网络流量。执行策略时,“保留模式”(Preserve Mode) 处于关闭状态。

每个过滤器具有以下属性:

  • Id:过滤器名称

  • Direction:传入或传出

  • RuleType:交换机或主机。

    • 当类型为“交换机”时,则在 vSwitch 上配置过滤器。

    • 当类型为“主机”时,则创建 WFP 过滤器。

  • Action:允许或阻止

  • LocalPorts:这可以是端口或范围。例如,80 或 100-200。

  • RemotePorts:与本地端口相同。

  • LocalAddresses:它是地址或范围。例如,10.224.0.5、10.224.1.0/24(不允许使用 10.224.1.1-10.224.1.10)。

  • RemoteAddress:与本地地址相同

  • Protocol:ICMP/TCP/UDP/IGMP 协议 255 为 IPPROTO_RAW,256 – PROTO_MAX

只能为 UDP 和 TCP 指定端口,并且除非指定了协议,否则策略中不允许使用端口。

在虚拟端口上配置策略是一项基于事务的操作。如果其中一个过滤器无效,则整个策略的执行就会失败。

这是有状态的执行。当前不支持基于应用、用户或服务的策略。

与 Calico 的兼容性

Pod 执行在“保留规则”关闭模式下工作。当 Windows 代理在 Pod 上执行规则时,它会删除已配置的策略。如果 Calico 插件在代理之后执行网络策略,则代理将其识别为偏差,并删除由 Calico 配置的网络策略,并重新执行代理策略。


Note


在 Windows 节点上卸载 Windows 代理时,将删除已执行的策略。


已配置 VFP 过滤器的可视性

使用 Cisco Secure Workload 列出 Pod 过滤器的选项不可用。在 AKS 环境中,可以使用内置 PowerShell 脚本。运行以下 PowerShell 脚本:c:\k\debug\collectlogs.ps1。查看已配置过滤器的输出文件 vfpoutput.txthnsdiag.txt

删除 Windows 代理配置的 VFP 过滤器

  1. 使用管理权限运行 cmd.exe

  2. 运行命令:<installation folder>\tetenf.exe -d -f -pods -token=<yyyymm>


Note


命令会删除所有 Pod 的 VFP 过滤器。


对执行的策略和网络流进行故障排除

  1. 运行命令:netsh wfp start capture keywords=19

  2. 运行网络流量。

  3. 停止捕获流:netsh wfp stop capture

  4. wfpdiag.cab 文件中提取 wfpdiag.xml。查看已丢弃的流。

要将允许或丢弃的网络流映射到 Pod 策略,请执行以下操作:

  1. 启动 ETW 会话:logman start <session name> -p Microsoft-Windows-Hyper-V-VfpExt -o <output file.etl> -ets

  2. 运行网络流量。

  3. 停止捕获流:logman stop <session name>

  4. 在命令提示符中,运行:tracerpt <output file.etl>。命令会创建 dumpfile.xml 文件。查看网络流。

AIX 平台上的代理执行

在 AIX 平台上,Cisco Secure Workload 代理会使用 IPFilter 实用程序来执行网络策略。默认情况下,启用执行后,代理会控制并配置 IPv4 过滤表。不支持 IPv6 执行。

IPFilter

从 Cisco Secure Workload 3.10 版本开始,软件代理安装包括思科 IPFilter 应用,以便为 AIX 平台提供防火墙服务。

它作为内核扩展模块 /usr/lib/drivers/ipf 进行加载。它包括用于编程 ipfilter 规则的 ipf、ippool、ipfstat、ipmon、ipfs 和 ipnat 实用程序,每个规则指定数据包的匹配条件。有关详细信息,请参阅 AIX 手册中的 IPFilter 页面。

启用执行时,代理使用 IPFilter 对包含允许或丢弃 IPv4 数据包的规则的 IPv4 过滤表进行编程。代理会将这些规则分组,以使用控制器来对策略进行分类和管理。这些规则包括从策略派生的 Cisco Secure Workload 规则和代理生成的规则。

当代理收到独立于平台的规则时,它会解析这些规则并将其转换为 ipfilter 或 ippool 规则,并将这些规则插入过滤器表中。对防火墙进行编程后,执行代理会监控防火墙是否存在任何规则或策略偏差,如果是,则重新编程防火墙。代理会跟踪防火墙中编程的策略,并定期向控制器报告其状态。

独立于平台的网络策略消息中的典型策略包括:


      source set id: "test-set-1"
      destination set id: "test-set-2"
      source ports: 20-30
      destination ports: 40-50
      ip protocol: TCP
      action: ALLOW
      ...
      set_id: "test-set-1"
         ip_addr: 1.2.0.0
         prefix_length: 16
         address_family: IPv4
      set_id: "test-set-2"
         ip_addr: 5.6.0.0
         prefix_length: 16
         address_family: IPv4

代理会与其他信息一起处理策略,并将其转换为特定于平台的 ippool 和 ipfilter 规则:


    table role = ipf type = tree number = 51400
    { 1.2.0.0/16; };

    table role = ipf type = tree number = 75966
    { 5.6.0.0/16; };

pass in quick proto tcp from pool/51400 port 20:30 to pool/75966 port 40:50 flags S/SA group TA_INPUT
pass out quick proto tcp from pool/75966 port 40:50 to pool/51400 port 20:30 flags A/A group TA_OUTPUT

警告

主机防火墙备份

首次在代理配置文件中启用执行时,在 AIX 主机上运行的代理在控制主机防火墙之前,会将 ippool 和 ipfilter 的当前内容存储到 /opt/cisco/tetration/backup 中。执行配置的连续禁用或启用转换不会生成备份。代理卸载时不会删除该目录。

卸载现有 IPFilter

当强制执行从关闭转为开启时,如果主机上已经安装了非思科 IPfilter 软件包,则代理将用思科 IPfilter 内核扩展替换 IPfilter 内核扩展,并卸载非思科 IPfilter 软件包。

升级思科 IPFilter

当思科 IPfilter 的新版本发布时,安全工作负载代理将在执行从关闭过渡到开启的过程中升级系统。


Note


升级必须在代理执行关闭时进行,因为如果执行开启,可能会中断流量。


已知限制

不支持 IPv6 执行。

Solaris 11.4 平台上的代理执行

在 Solaris 11.4 平台上,Cisco Secure Workload 代理使用 PF(数据包过滤器)实用程序执行网络策略。支持同时执行 IPv4 和 IPv6 策略。

注意

共享 IP Solaris 区域的策略执行由安装在全局区域中的代理负责。

主机防火墙备份

首次在代理配置文件中启用执行时,在 Solaris 11.4 主机上运行的代理在控制主机防火墙之前,会将 ippool 和 pffilter 的当前内容存储到 /opt/cisco/tetration/backup 中。执行配置的连续禁用或启用转换不会生成备份。代理卸载时不会删除该目录。

Solaris 10 平台上的代理执行

在 Solaris 10 平台上,Cisco Secure Workload 代理使用 IPFilter 实用程序执行网络策略。默认情况下,启用执行后,代理会控制并配置 IPv4 过滤表。支持同时执行 IPv4 和 IPv6 策略。

IPFilter

Solaris 10 上的 IPFilter 软件包用于提供防火墙服务,并在 Solaris 10 上作为内核扩展包提供。它作为内核扩展模块 /usr/lib/drivers/ipf 进行加载。它包括用于编程 ipfilter 规则的 ipf、ippool、ipfstat、ipmon、ipfs 和 ipnat 实用程序,每个规则指定数据包的匹配条件。

启用执行时,代理使用 IPFilter 对包含允许或丢弃 IPv4 数据包的规则的 IPv4 过滤表进行编程。代理会将这些规则分组,以使用控制器来对策略进行分类和管理。这些规则包括从策略派生的 Cisco Secure Workload 规则和代理生成的规则。

当代理收到独立于平台的规则时,它会解析这些规则并将其转换为 ipfilter 或 ippool 规则,并将这些规则插入过滤器表中。对防火墙进行编程后,执行代理会监控防火墙是否存在任何规则或策略偏差,如果是,则重新编程防火墙。代理会跟踪防火墙中已编程的策略,并定期向执行前端 (EFE) 报告其状态。

独立于平台的网络策略消息中的典型策略包括:


      source set id: "test-set-1"
      destination set id: "test-set-2"
      source ports: 20-30
      destination ports: 40-50
      ip protocol: TCP
      action: ALLOW
      ...
      set_id: "test-set-1"
         ip_addr: 1.2.0.0
         prefix_length: 16
         address_family: IPv4
      set_id: "test-set-2"
         ip_addr: 5.6.0.0
         prefix_length: 16
         address_family: IPv4

代理会与其他信息一起处理策略,并将其转换为特定于平台的 ippool 和 ipfilter 规则:


    table role = ipf type = tree number = 51400
    { 1.2.0.0/16; };

    table role = ipf type = tree number = 75966
    { 5.6.0.0/16; };

pass in quick proto tcp from pool/51400 port 20:30 to pool/75966 port 40:50 flags S/SA group TA_INPUT
pass out quick proto tcp from pool/75966 port 40:50 to pool/51400 port 20:30 flags A/A group TA_OUTPUT

警告

主机防火墙备份

首次在代理配置文件中启用执行时,在 Solaris 10 主机上运行的代理在控制主机防火墙之前,会将 ippool 和 ipfilter 的当前内容存储到 /opt/cisco/tetration/backup 中。执行配置的连续禁用或启用转换不会生成备份。代理卸载时不会删除该目录。

检查代理状态和统计信息

Procedure


Step 1

从导航窗格中,依次选择管理 (Manage) > 工作负载 (Workloads) > 代理 (Agents)

Step 2

点击分布 (Distribution) 选项卡。

Step 3

点击页面顶部的代理类型。

Step 4

在此页面上,您可以检查 CPU 开销、带宽开销、代理运行状况、软件更新状态、代理软件版本分布和代理操作系统分布。

有关此页面的详细信息,请参阅“代理状态和统计信息”部分。

Figure 2. “代理分布”(Agent Distribution) 页面

Note

 

代理运行状况:代理会每 10-30 分钟定期检查一次。如果超过 1 小时 30 分钟未签入,则代理处于非活动状态。为减少误报,如果签入间隔在 1 小时到 1 小时 30 分钟之间,代理运行状态将被设置为间歇性而非不活动状态。


有关执行状态的详细信息,请参阅“执行状态”部分。

查看代理详细信息

以下步骤提供用于导航至“工作负载配置文件”(Workload Profile) 页面的可用选项之一,该页面显示有关工作负载及其已安装代理的详细信息。

Procedure


Step 1

在导航窗格中,点击整理 (Organize) > > 范围和资产 (Scopes and Inventory)

Step 2

搜索要查看其详细信息的工作负载。

Step 3

点击 IP 地址以查看详细信息,例如代理运行状况、IP 地址、范围、资产类型、执行组、试验组、用户标签和流量(总字节数/总数据包数)。


有关详细信息,请参阅适用的工作负载