Citrix ADC

使用 SSL 转发代理与 IPS 或 NGFW 作为内联设备集成

入侵防护系统 (IPS) 和下一代防火墙 (NGFW) 等安全设备可保护服务器免受网络攻击。这些设备可以检查实时流量,并且通常以第 2 层内联模式部署。SSL 转发代理设备在访问 Internet 上的资源时为用户和企业网络提供安全性。

SSL 转发代理设备可与一个或多个内联设备集成,以防止威胁并提供高级安全保护。内联设备可以是任何安全设备,例如 IPS 和 NGFW。

您可以通过使用 SSL 转发代理设备和内联设备集成获益的一些用例包括:

  • 检查加密流量: 大多数 IPS 和 NGFW 设备都会绕过加密流量,这可能会使服务器容易受到攻击。SSL 转发代理设备可以解密流量并将其发送到内联设备进行检查。这种集成增强了客户的网络安全性。

  • 从 TLS/SSL 处理中卸载内联设备: TLS/SSL 处理费用昂贵,如果 IPS 或 NGFW 设备也解密流量,可能会导致 CPU 利用率高。SSL 转发代理设备有助于从内联设备中卸下 TLS/SSL 处理的负载。因此,内联设备可以检查更高的流量。

  • 载平衡内联设备: 如果您配置了多个内联设备来管理大量流量,则 SSL 转发代理设备可以平衡负载并均匀地将流量分配到这些设备。

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

SSL 转发代理与内联设备集成

下图显示了 SSL 转发代理如何与内联安全设备集成。

IPS 概述

当您将内联设备与 SSL 转发代理设备集成时,组件会按以下方式进行交互:

  1. 客户端向 SSL 转发代理设备发送请求。

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

    注意:

    如果有两个或多个内联设备,则设备负载平衡设备并发送流量。

  3. 添加内容交换或 HTTP/HTTPS 负载平衡虚拟服务器。

  4. 内联设备检查数据是否存在威胁,并决定是删除、重置或将数据发回设备。

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

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

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

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

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

  10. 设备会重新加密数据并将响应发送到客户端。

配置内联设备集成

您可以通过以下三种不同的方式配置 SSL 转发代理设备,具有内联设备:

方案 1:使用单个内联设备

要在内联模式下集成安全设备(IPS 或 NGFW),必须在 SSL 转发代理设备上以全局模式启用内容检查和基于 MAC 的转发 (MBF)。然后,添加内容检查配置文件、TCP 服务、内联设备的内容检查操作,以便根据检查重置、阻止或删除流量。此外,还添加内容检查策略,设备用于决定要发送到内联设备的流量子集。最后,配置在服务器上启用了 2 层连接的代理虚拟服务器,并将内容检查策略绑定到此代理虚拟服务器。

单个内联设备

执行以下步骤:

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

  2. 启用内容检查功能。

  3. 为服务添加内容检查配置文件。内容检查配置文件包含将 SSL 转发代理设备与内联设备集成的内联设备设置。

  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) 设置为是。设置useproxyport 为否。默认情况下,运行状况监视为开,将服务绑定到运行状况监视器,并将监视器中的透明选项设置为开。

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

示例:

    add service ips_service 198.51.100.2 TCP * -healthMonitor YES -usip YES -useproxyport NO -contentInspectionProfileName ipsprof

  1. 添加运行状况监视器。默认情况下,运行状况监视器处于打开状态,您还可以选择将其禁用(如有必要)。在命令提示窗口中,键入:

    add lb monitor <name> TCP -destIP <ip address> -destPort 80 -transparent <YES, NO>

示例:

add lb monitor ips_tcp TCP -destIP 192.168.10.2 -destPort 80 -transparent YES

  1. 将服务绑定到运行状况监视器

配置运行状况监视器后,必须将服务绑定到运行状况监视器。在命令提示窗口中,键入:

bind service <name> -monitorName <name>

示例:

bind service ips_svc -monitorName ips_tcp

  1. 添加内容检查操作。

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

    示例:

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

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

    示例:

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

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

    注意:

    还支持 HTTP/SSL 类型的负载平衡虚拟服务器。

    示例:

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

    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. 导航到系统”>“设置”。在模式和功能中,单击配置模式

    系统设置

    启用基于 Mac 的转发

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

    高级设置

    启用内容检查

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

    内容检查配置文件

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

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

    其他设置

    运行状况监视设置

  5. 导航到 Secure Web Gateway > 代理虚拟服务器 > 添加。指定名称、IP 地址和端口。在高级设置中,选择策略。点击“+”符号。

    添加策略

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

    内容检查策略

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

    添加操作

  8. 指定名称。在类型中,选择“在 线检查。在“服务 器名称中,选择之前创建的 TCP 服务。

    内容检查操作

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

    添加策略规则

  10. 单击 Bind(绑定)。

  11. 单击完成

场景 2:具有专用接口的多个内联设备负载平衡

如果您使用的是两个或多个内联设备,则可以使用具有专用接口的不同内容检测服务对设备进行负载平衡。在这种情况下,SSL 转发代理设 备负载平衡通过专用接口发送到每个设备的流量子集。子集是根据配置的策略决定的。例如,TXT 或图像文件可能不会被发送到内联设备以进行检查。

多个内联设备

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

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

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

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

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

使用 CLI 进行配置

在命令提示符处键入以下命令。每个命令之后都会给出示例。

  1. 启用 MBF。

    enable ns mode mbf
    
  2. 启用功能。

    enable ns feature contentInspection
    
  3. 为服务 1 添加配置文件 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 添加配置文件 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) 设置为是。设置useproxyport 为否。关闭运行状况监视器。仅当您将此服务绑定到 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. 添加服务 2。指定不属于任何设备(包括内联设备)所拥有的虚拟 IP 地址。将use source IP address (USIP) 设置为是。设置useproxyport 为否。关闭运行状况监视器。仅当您将此服务绑定到 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. 导航到系统”>“设置”。在模式和功能中,单击配置模式

    系统设置

    启用基于 Mac 的转发

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

    高级设置

    启用内容检查

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

    内容检查配置文件

    指定入口和导出接口。

    指定入口和导出接口

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

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

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

    其他设置

    运行状况监视设置

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

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

    负载平衡虚拟服务器

    单击确定

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

    点击箭头

    选择要绑定的服务

    将服务绑定到虚拟服务器

  7. 导航到 Secure Web Gateway > 代理虚拟服务器 > 添加。指定名称、IP 地址和端口。在高级设置中,选择策略。点击“+”符号。

    添加策略

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

    内容检查策略

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

    添加操作

  10. 指定名称。在类型中,选择“在 线检查。在服务器名称中,选择之前创建的负载平衡虚拟服务器。

    内容检查操作

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

    添加策略规则

  12. 单击 Bind(绑定)。

  13. 单击完成

场景 3:具有共享接口的多个内联设备负载平衡

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

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

基本配置与场景 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 添加配置文件 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 添加配置文件 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. 添加服务 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. 导航到系统”>“设置”。在模式和功能中,单击配置模式

    系统设置

    启用基于 Mac 的转发

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

    高级设置

    启用内容检查

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

    创建 VLAN 100

    创建 VLAN 200

    创建 VLAN 300

    创建 VLAN 400

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

    内容检查配置文件

    指定入站和出站 VLAN。

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

    创建另一个配置文件。在第二个配置文件中指定不同的入口和导出 VLAN。

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

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

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

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

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

    其他设置

    运行状况监视设置

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

    负载平衡虚拟服务器

    单击确定

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

    点击箭头

    选择要绑定的服务

    将服务绑定到虚拟服务器

  8. 导航到 Secure Web Gateway > 代理虚拟服务器 > 添加。指定名称、IP 地址和端口。在高级设置中,选择策略。点击“+”符号。

    添加策略

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

    内容检查策略

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

    添加操作

  11. 指定名称。在类型中,选择“在 线检查。在服务器名称中,选择之前创建的负载平衡虚拟服务器。

    内容检查操作

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

    添加策略规则

  13. 单击 Bind(绑定)。

  14. 单击完成

使用 SSL 转发代理与 IPS 或 NGFW 作为内联设备集成