与 IPS 或 NGFW 作为内联设备集成

诸如入侵防御系统 (IPS) 和下一代防火墙 (NGFW) 之类的安全设备会保护服务器免受网络攻击。这些设备可以检查实时流量, 通常在2层串联模式下部署。当访问 Internet 上的资源时,Citrix Secure Web Gateway (SWG) 提供用户和企业网络的安全性。

可以将 Citrix SWG 设备与一个或多个内联设备相集成, 以防止出现威胁并提供高级安全保护。内联设备可以是任何安全设备, 例如 IPS 和 NGFW。

在某些情况下, 您可以通过使用 Citrix SWG 设备和内联设备集成来获益:

  • 检查加密流量:大多数 IPS 和 NGFW 设备会绕过加密流量, 这可能会使服务器受到攻击。Citrix SWG 设备可以解密通信并将其发送到内联设备以进行检查。此集成增强了客户的网络安全。

  • 从 TLS/SSL 处理卸载内嵌设备:TLS/SSL 处理非常昂贵, 在 IPS 或 NGFW 设备中, 如果它们还解密了流量, 则会导致 CPU 使用率非常高。Citrix SWG 设备可以帮助从内联设备中卸载 TLS/SSL 处理。因此, 内联设备可以检查更高流量的流量。

  • 负载平衡内联设备:如果您配置了多个内联设备来管理大量流量, 则 Citrix SWG 设备可以对这些设备平均负载平衡和分发流量。

  • 智能选择流量:设备会对流量进行智能选择, 而不是将所有流量发送到内联设备以进行检查。例如, 它跳过将文本文件发送给内联设备以进行检查。

Citrix SWG 与内联设备集成

下图显示了如何将 Citrix SWG 与串联安全设备相集成。

ips 概述

当您将嵌入式设备与 Citrix SWG 设备集成时, 这些组件将按如下所示进行交互:

  1. 客户端向 Citrix SWG 设备发送请求。

  2. 设备将数据发送到嵌入式设备, 以便根据策略评估来检查内容。对于 HTTPS 流量, 设备将解密数据, 并以纯文本格式将其发送给内联设备以进行内容检查。

    注意:

    如果有两个或更多串联设备, 设备将对设备进行负载平衡并发送流量。

  3. 内联设备会检查数据是否有威胁, 并决定是否丢弃、重置数据或将数据发送回设备。

  4. 如果存在安全威胁, 设备将修改数据并将其发送到设备。

  5. 对于 HTTPS 流量, 设备将重新加密数据并将请求转发到后端服务器。

  6. 后端服务器将响应发送到设备。

  7. 设备将再次解密数据并将其发送到内联设备以进行检查。

  8. 内嵌设备将检查数据。如果存在安全威胁, 设备将修改数据并将其发送到设备。

  9. 设备将重新加密数据并将响应发送给客户端。

配置内联设备集成

可以通过三种不同的方式为 Citrix SWG 设备配置内嵌设备, 如下所示:

场景 1: 使用单个内嵌设备

要在串联模式下集成安全设备 (IPS 或 NGFW), 必须在 SWG 设备上的全局模式下启用内容检查和基于 MAC 的转发 (MBF)。然后, 添加内容检查配置文件 (TCP 服务), 一项用于串联设备的内容检查操作, 以根据检测情况重置、阻止或丢弃流量。另外, 请添加一个内容检查策略, 设备会使用该策略来确定要发送到内联设备的通信的子集。最后,配置在服务器上启用了 2 层连接的代理虚拟服务器,并将内容检查策略绑定到此代理虚拟服务器。

单点插入设备

执行以下步骤:

  1. 启用基于 MAC 的转发 (MPF) 模式。

  2. 启用内容检查功能。

  3. 为服务添加内容检查配置文件。内容检查配置文件中包含用于将 SWG 设备与内嵌设备相集成的内联设备设置。

  4. 选择性添加 TCP 监视器。

    注意:

    透明设备没有 IP 地址。因此, 要执行运行状况检查, 必须显式绑定监视器。

  5. 添加服务。服务代表内嵌设备。

  6. 选择性将服务绑定到 TCP 监视器。

  7. 为服务添加内容检查操作。

  8. 添加内容检查策略并指定操作。

  9. 添加 HTTP 或 HTTPS 代理 (内容交换) 虚拟服务器。

  10. 将内容检查策略绑定到虚拟服务器。

使用 CLI 进行配置

在命令提示窗口中键入以下命令。示例在大多数命令之后提供。

  1. 启用 MBF。

    enable ns mode mbf
    
  2. 启用功能。

    enable ns feature contentInspection
    
  3. 添加内容检查配置文件。

    add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>]
    

    示例:

    add contentInspection profile ipsprof -type InlineInspection -ingressinterface "1/2" -egressInterface "1/3"
    
  4. 添加服务。指定不属于任何设备的虚拟 IP 地址, 包括内嵌设备。将use source IP address (USIP) 设置为 YES (是)。设置useproxyport为 NO (否)。关闭运行状况监视器。仅当您将此服务绑定到 TCP 显示器时, 才打开运行状况监视。如果将显示器绑定到某个服务, 请将显示器中的“透明”选项设置为“开”。

    add service <service_name>  <IP> TCP <Port> - contentinspectionProfileName <Name>  -healthMonitor NO  -usip YES –useproxyport NO
    

    示例:

    add service ips_service 198.51.100.2 TCP * -healthMonitor YES -usip YES -useproxyport NO -contentInspectionProfileName ipsprof
    
    
  5. 添加内容检查操作。

    add contentInspection action <name> -type INLINEINSPECTION -serverName <string>
    

    示例:

    add contentInspection action ips_action -type INLINEINSPECTION -serverName ips_service
    
  6. 添加内容检查策略。

    add contentInspection policy <name> -rule <expression> -action <string>
    

    示例:

    add contentInspection policy ips_pol -rule "HTTP.REQ.METHOD.NE("CONNECT")" -action ips_action
    
  7. 添加代理虚拟服务器。

    add cs vserver <name> PROXY <IPAddress> <port> -cltTimeout <secs> -Listenpolicy <expression> -authn401 ( ON | OFF ) -authnVsName <string> -l2Conn ON
    

    示例:

    add cs vserver transparentcs PROXY * * -cltTimeout 180 -Listenpolicy exp1 -authn401 on -authnVsName swg-auth-vs-trans-http -l2Conn ON
    
  8. 将策略绑定到虚拟服务器。

    bind cs vserver <name> -policyName <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type REQUEST
    

    示例:

    bind cs vserver explicitcs -policyName ips_pol -priority 1 -gotoPriorityExpression END -type REQUEST
    

使用 GUI 进行配置

  1. 导航到System > Settings (系统设置)。在模式和功能中, 单击配置模式

    系统设置

    启用基于 Mac 的转发

  2. 导航到System > Settings (系统设置)。在模式和功能中, 单击配置高级功能

    高级设置

    启用内容检查

  3. 导航到Secure Web Gateway > 内容检查 > 内容检查配置文件。单击添加

    内容检查配置文件

  4. 导航到负载平衡 > Services > 添加和添加服务。在 “高级设置” 中, 单击配置文件。在CI 配置文件名称列表中, 选择之前创建的内容检查配置文件。在Service Settings (服务设置) 中, 将使用来源 IP 地址设置为是, 并将代理端口设置为否。在Basic Settings (基本设置) 中, 将运行状况监视设置为否。仅当您将此服务绑定到 TCP 显示器时, 才打开运行状况监视。如果将显示器绑定到某个服务, 请将显示器中的“透明”选项设置为“开”。

    将内容检查配置文件链接到服务

    其他设置

    运行状况监视设置

  5. 导航到Secure Web Gateway > Proxy Virtual server > Add (添加)。指定名称、IP 地址和端口。在 “高级设置” 中, 选择策略。单击 + 号。

    添加策略

  6. 选择策略中, 选择内容检查。单击 Continue(继续)。

    内容检查策略

  7. 单击添加。指定一个名称。在 “操作” 中, 单击添加

    添加操作

  8. 指定一个名称。在Type (类型) 中, 选择INLINEINSPECTION。在Server Name (服务器名称) 中, 选择之前创建的 TCP 服务。

    内容检查操作

  9. 单击创建。指定规则,然后单击创建

    添加策略规则

  10. 单击 Bind(绑定)。

  11. 单击完成

场景 2: 对使用专用接口的多个内嵌设备执行负载平衡

如果您使用的是两个或多个内联设备, 则可以使用专用接口的不同内容检查服务对设备进行负载平衡。在这种情况下, Citrix SWG 设备将通过专用接口对发送到每个设备的流量的子集进行负载平衡。子集根据配置的策略确定。例如, 可能不会发送 TXT 或 image 文件以检查内嵌设备。

多个内联设备

基本配置与场景1中的配置保持一致。但是, 您必须为每个内嵌设备创建内容检查配置文件, 并在每个配置文件中指定入站和出站接口。为每个内嵌设备添加一个服务。添加负载平衡虚拟服务器, 并在内容检查操作中指定该服务器。执行以下额外的步骤:

  1. 为每项服务添加内容检查配置文件。

  2. 为每个设备添加一个服务。

  3. 添加负载平衡虚拟服务器。

  4. 在内容检查操作中指定负载平衡虚拟服务器。

使用 CLI 进行配置

在命令提示窗口中键入以下命令。示例在每个命令之后提供。

  1. 启用 MBF。

    enable ns mode mbf
    
  2. 启用功能。

    enable ns feature contentInspection
    
  3. 为服务1添加 profile 1。

    add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>]
    

    示例:

    add contentInspection profile ipsprof1 -type InlineInspection -ingressInterface "1/2" -egressInterface "1/3"
    
  4. 为服务2添加 profile 2。

    add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>]
    

    示例:

    add contentInspection profile ipsprof2 -type InlineInspection -ingressInterface "1/4" -egressInterface "1/5"
    
  5. 添加服务1。指定不属于任何设备的虚拟 IP 地址, 包括内嵌设备。将use source IP address (USIP) 设置为 YES (是)。设置useproxyport为 NO (否)。关闭运行状况监视器。仅当您将此服务绑定到 TCP 显示器时, 才打开运行状况监视。如果将显示器绑定到某个服务, 请将显示器中的“透明”选项设置为“开”。

    add service <service_name>  <IP> TCP <Port> - contentinspectionProfileName <Name>  -healthMonitor NO  -usip YES –useproxyport NO
    

    示例:

    add service ips_service1 192.168.10.2 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof1
    
  6. 添加 service 2。指定不属于任何设备的虚拟 IP 地址, 包括内嵌设备。将use source IP address (USIP) 设置为 YES (是)。设置useproxyport为 NO (否)。关闭运行状况监视器。仅当您将此服务绑定到 TCP 显示器时, 才打开运行状况监视。如果将显示器绑定到某个服务, 请将显示器中的“透明”选项设置为“开”。

    add service <service_name>  <IP> TCP <Port> - contentinspectionProfileName <Name>  -healthMonitor NO  -usip YES –useproxyport NO
    

    示例:

    add service ips_service2 192.168.10.3 TCP * -healthMonitor NO -usip YES -useproxyport NO  -contentInspectionProfileName ipsprof2
    
  7. 添加负载平衡虚拟服务器。

    add lb vserver <LB_VSERVER_NAME> TCP <IP> <port>
    

    示例:

    add lb vserver lb_inline_vserver TCP 192.0.2.100 *
    
  8. 将服务绑定到负载平衡虚拟服务器。

    bind lb vserver <LB_VSERVER_NAME> <service_name>
    bind lb vserver <LB_VSERVER_NAME> <service_name>
    

    示例:

    bind lb vserver lb_inline_vserver ips_service1
    bind lb vserver lb_inline_vserver ips_service2
    
  9. 在内容检查操作中指定负载平衡虚拟服务器。

    add contentInspection action <name> -type INLINEINSPECTION -serverName <string>
    

    示例:

    add contentInspection action ips_action -type INLINEINSPECTION -serverName lb_inline_vserver
    
  10. 添加内容检查策略。在策略中指定内容检查操作。

    add contentInspection policy <name> -rule <expression> -action <string>
    

    示例:

    add contentInspection policy ips_pol -rule "HTTP.REQ.METHOD.NE("CONNECT")" -action ips_action
    
  11. 添加代理虚拟服务器。

    add cs vserver <name> PROXY <IPAddress> <port> -l2Conn ON
    

    示例:

    add cs vserver transparentcs PROXY * * -l2Conn ON
    
  12. 将内容检查策略绑定到虚拟服务器。

    bind cs vserver <name> -policyName <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type REQUEST
    

    示例:

    bind cs vserver explicitcs -policyName ips_pol -priority 1 -gotoPriorityExpression END -type REQUEST
    

使用 GUI 进行配置

  1. 导航到System > Settings (系统设置)。在模式和功能中, 单击配置模式

    系统设置

    启用基于 Mac 的转发

  2. 导航到System > Settings (系统设置)。在模式和功能中, 单击配置高级功能

    高级设置

    启用内容检查

  3. 导航到Secure Web Gateway > 内容检查 > 内容检查配置文件。单击添加

    内容检查配置文件

    指定入站和出站接口。

    指定入站和出站接口

    创建两个配置文件。在第二个配置文件中指定不同的入站和出站接口。

  4. 导航到负载平衡 > Services > 添加和添加服务。在 “高级设置” 中, 单击配置文件。在CI 配置文件名称列表中, 选择之前创建的内容检查配置文件。在Service Settings (服务设置) 中, 将使用来源 IP 地址设置为是, 并将代理端口设置为否。在Basic Settings (基本设置) 中, 将运行状况监视设置为否。仅当您将此服务绑定到 TCP 显示器时, 才打开运行状况监视。如果将显示器绑定到某个服务, 请将显示器中的“透明”选项设置为“开”。

    将内容检查配置文件链接到服务

    其他设置

    运行状况监视设置

    创建两个服务。指定不属于任何设备 (包括内联设备) 都所拥有的虚拟 IP 地址。

  5. 导航到要添加的负载平衡 > 虚拟服务器 >。创建 TCP 负载平衡虚拟服务器。

    负载平衡虚拟服务器

    单击确定

  6. 负载平衡 Virtual Server Service Binding (负载平衡虚拟服务器服务绑定) 部分中单击。在服务绑定中, 单击Select Service (选择服务) 中的箭头。选择之前创建的两个服务, 然后单击Select (选择)。单击 Bind(绑定)。

    单击箭头

    选择要绑定的服务

    将服务绑定到虚拟服务器

  7. 导航到Secure Web Gateway > Proxy Virtual server > Add (添加)。指定名称、IP 地址和端口。在 “高级设置” 中, 选择策略。单击 + 号。

    添加策略

  8. 选择策略中, 选择内容检查。单击 Continue(继续)。

    内容检查策略

  9. 单击添加。指定一个名称。在 “操作” 中, 单击添加

    添加操作

  10. 指定一个名称。在Type (类型) 中, 选择INLINEINSPECTION。在Server Name (服务器名称) 中, 选择之前创建的负载平衡虚拟服务器。

    内容检查操作

  11. 单击创建。指定规则,然后单击创建

    添加策略规则

  12. 单击 Bind(绑定)。

  13. 单击完成

场景 3: 对包含共享接口的多个内嵌设备执行负载平衡

如果您使用的是两个或多个内联设备, 则可以对设备使用共享接口的不同内容检查服务进行负载平衡。在这种情况下, Citrix SWG 设备将通过共享接口对发送到每个设备的流量的子集进行负载平衡。子集根据配置的策略确定。例如, 可能不会发送 TXT 或 image 文件以检查内嵌设备。

具有共享接口的多个内嵌设备

基本配置与场景2中的配置保持相同。在这种情况下,请将接口绑定到不同的 VLAN,以便为每个内嵌设备分离流量。在内容检查配置文件中指定 VLAN。执行以下额外的步骤:

  1. 将共享接口绑定到不同的 VLAN。

  2. 在内容检查配置文件中指定入站和出站 VLAN。

使用 CLI 进行配置

在命令提示窗口中键入以下命令。示例在每个命令之后提供。

  1. 启用 MBF。

    enable ns mode mbf
    
  2. 启用功能。

    enable ns feature contentInspection
    
  3. 将共享接口绑定到不同的 VLAN。

    bind vlan <id> -ifnum <interface> -tagged
    

    示例:

    bind vlan 100 –ifnum 1/2 tagged
    bind vlan 200 –ifnum 1/3 tagged
    bind vlan 300 –ifnum 1/2 tagged
    bind vlan 400 –ifnum 1/3 tagged
    
  4. 为服务1添加 profile 1。在配置文件中指定入站和出站 VLAN。

    add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>]
    

    示例:

    add contentInspection profile ipsprof1 -type InlineInspection -egressInterface "1/3" -ingressinterface "1/2" –egressVlan 100 -ingressVlan 300
    
  5. 为服务2添加 profile 2。在配置文件中指定入站和出站 VLAN。

    add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>]
    

    示例:

    add contentInspection profile ipsprof2 -type InlineInspection -egressInterface "1/3" -ingressinterface "1/2" –egressVlan 200 -ingressVlan 400
    
  6. 添加服务1。

    add service <service_name>  <IP> TCP <Port> - contentinspectionProfileName <Name>  -healthMonitor NO  -usip YES –useproxyport NO
    

    示例:

    add service ips_service1 192.168.10.2 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof1
    
  7. 添加 service 2。

    add service <service_name>  <IP> TCP <Port> - contentinspectionProfileName <Name>  -healthMonitor NO  -usip YES –useproxyport NO
    

    示例:

    add service ips_service2 192.168.10.3 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof2
    
  8. 添加负载平衡虚拟服务器。

    add lb vserver <LB_VSERVER_NAME> TCP <IP> <port>
    

    示例:

    add lb vserver lb_inline_vserver TCP 192.0.2.100 *
    
  9. 将服务绑定到负载平衡虚拟服务器。

    bind lb vserver <LB_VSERVER_NAME> <service_name>
    bind lb vserver <LB_VSERVER_NAME> <service_name>
    

    示例:

    bind lb vserver lb_inline_vserver ips_service1
    bind lb vserver lb_inline_vserver ips_service2
    
  10. 在内容检查操作中指定负载平衡虚拟服务器。

    add contentInspection action <name> -type INLINEINSPECTION -serverName <string>
    

    示例:

    add contentInspection action ips_action -type INLINEINSPECTION -serverName lb_inline_vserver
    
  11. 添加内容检查策略。在策略中指定内容检查操作。

    add contentInspection policy <name> -rule <expression> -action <string>
    

    示例:

    add contentInspection policy ips_pol -rule "HTTP.REQ.METHOD.NE("CONNECT")" -action ips_action
    
  12. 添加代理虚拟服务器。

    add cs vserver <name> PROXY <IPAddress> <port> -l2Conn ON
    

    示例:

    add cs vserver transparentcs PROXY * * -l2Conn ON
    
  13. 将内容检查策略绑定到虚拟服务器。

    bind cs vserver <name> -policyName <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type REQUEST
    

    示例:

    bind cs vserver explicitcs -policyName ips_pol -priority 1 -gotoPriorityExpression END -type REQUEST
    

使用 GUI 进行配置

  1. 导航到System > Settings (系统设置)。在模式和功能中, 单击配置模式

    系统设置

    启用基于 Mac 的转发

  2. 导航到System > Settings (系统设置)。在模式和功能中, 单击配置高级功能

    高级设置

    启用内容检查

  3. 导航到系统 > 网络 > VLAN > 添加。添加四个 VLAN 并将其标记为接口。

    创建 VLAN 100

    创建 VLAN 200

    创建 VLAN 300

    创建 VLAN 400

  4. 导航到Secure Web Gateway > 内容检查 > 内容检查配置文件。单击添加

    内容检查配置文件

    指定入站和出站 VLAN。

    为配置文件 1 指定接口和 VLAN

    创建其他配置文件。在第二个配置文件中指定不同的入站和出站 VLAN。

    为配置文件 2 指定接口和 VLAN

  5. 导航到负载平衡 > Services > 添加和添加服务。在 “高级设置” 中, 单击配置文件。在CI 配置文件名称列表中, 选择之前创建的内容检查配置文件。在Service Settings (服务设置) 中, 将使用来源 IP 地址设置为是, 并将代理端口设置为否。在Basic Settings (基本设置) 中, 将运行状况监视设置为否。

    创建两个服务。指定不属于任何设备 (包括内联设备) 都所拥有的虚拟 IP 地址。在 service 1 中指定 profile 1, 在 service 2 中指定 profile 2。

    将内容检查 profile 1 链接到服务1

    将内容检查 profile 2 链接到服务2

    其他设置

    运行状况监视设置

  6. 导航到要添加的负载平衡 > 虚拟服务器 >。创建 TCP 负载平衡虚拟服务器。

    负载平衡虚拟服务器

    单击确定

  7. 负载平衡 Virtual Server Service Binding (负载平衡虚拟服务器服务绑定) 部分中单击。在服务绑定中, 单击Select Service (选择服务) 中的箭头。选择之前创建的两个服务, 然后单击Select (选择)。单击 Bind(绑定)。

    单击箭头

    选择要绑定的服务

    将服务绑定到虚拟服务器

  8. 导航到Secure Web Gateway > Proxy Virtual server > Add (添加)。指定名称、IP 地址和端口。在 “高级设置” 中, 选择策略。单击 + 号。

    添加策略

  9. 选择策略中, 选择内容检查。单击 Continue(继续)。

    内容检查策略

  10. 单击添加。指定一个名称。在 “操作” 中, 单击添加

    添加操作

  11. 指定一个名称。在Type (类型) 中, 选择INLINEINSPECTION。在Server Name (服务器名称) 中, 选择之前创建的负载平衡虚拟服务器。

    内容检查操作

  12. 单击创建。指定规则,然后单击创建

    添加策略规则

  13. 单击 Bind(绑定)。

  14. 单击完成

与 IPS 或 NGFW 作为内联设备集成