将 IPS 或 NGFW 作为内联设备进行集成
入侵防御系统 (IPS) 和下一代防火墙 (NGFW) 等安全设备可保护服务器免受网络攻击。这些设备可以检查实时流量,通常部署在第 2 层内联模式下。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 如何与内联安全设备集成。

当您将内联设备与 Citrix SWG 设备集成时,组件的交互方式如下:
-
客户端向 Citrix SWG 设备发送请求。
-
设备根据策略评估将数据发送到内联设备进行内容检查。对于 HTTPS 流量,设备会解密数据并以纯文本形式将其发送到内联设备进行内容检查。
注意:
如果存在两个或更多内联设备,设备会对这些设备进行负载均衡并发送流量。
-
内联设备检查数据是否存在威胁,并决定是丢弃、重置还是将数据发送回设备。
-
如果存在安全威胁,设备会修改数据并将其发送到设备。
-
对于 HTTPS 流量,设备会重新加密数据并将请求转发到后端服务器。
-
后端服务器将响应发送到设备。
-
设备再次解密数据并将其发送到内联设备进行检查。
-
内联设备检查数据。如果存在安全威胁,设备会修改数据并将其发送到设备。
-
设备重新加密数据并将响应发送到客户端。
配置内联设备集成
您可以通过以下三种不同方式配置 Citrix SWG 设备与内联设备的集成:
场景 1:使用单个内联设备
要在内联模式下集成安全设备(IPS 或 NGFW),您必须在 SWG 设备上全局启用内容检查和基于 MAC 的转发 (MBF)。然后,添加内容检查配置文件、TCP 服务、用于内联设备根据检查重置、阻止或丢弃流量的内容检查操作。还要添加设备用于决定要发送到内联设备的流量子集的内容检查策略。最后,配置代理虚拟服务器,并在服务器上启用第 2 层连接,并将内容检查策略绑定到此代理虚拟服务器。

执行以下步骤:
-
启用基于 MAC 的转发 (MBF) 模式。
-
启用内容检查功能。
-
为服务添加内容检查配置文件。内容检查配置文件包含将 SWG 设备与内联设备集成的内联设备设置。
-
(可选)添加 TCP 监视器。
注意:
透明设备没有 IP 地址。因此,要执行健康检查,您必须显式绑定一个监视器。
-
添加服务。服务代表一个内联设备。
-
(可选)将服务绑定到 TCP 监视器。
-
为服务添加内容检查操作。
-
添加内容检查策略并指定操作。
-
添加 HTTP 或 HTTPS 代理(内容切换)虚拟服务器。
-
将内容检查策略绑定到虚拟服务器。
使用 CLI 进行配置
在命令提示符下键入以下命令。大多数命令后都提供了示例。
-
启用 MBF。
enable ns mode mbf <!--NeedCopy--> -
启用该功能。
enable ns feature contentInspection <!--NeedCopy--> -
添加内容检查配置文件。
add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>] <!--NeedCopy-->示例:
add contentInspection profile ipsprof -type InlineInspection -ingressinterface "1/2" -egressInterface "1/3" <!--NeedCopy--> -
添加服务。指定一个不属于任何设备(包括内联设备)的虚拟 IP 地址。将
use source IP address(USIP) 设置为 YES。将useproxyport设置为 NO。关闭健康监视器。仅当您将此服务绑定到 TCP 监视器时才开启健康监视。如果您将监视器绑定到服务,则将监视器中的 TRANSPARENT 选项设置为 ON。add service <service_name> <IP> TCP <Port> - contentinspectionProfileName <Name> -healthMonitor NO -usip YES –useproxyport NO <!--NeedCopy-->示例:
add service ips_service 198.51.100.2 TCP * -healthMonitor YES -usip YES -useproxyport NO -contentInspectionProfileName ipsprof <!--NeedCopy--> -
添加内容检查操作。
add contentInspection action <name> -type INLINEINSPECTION -serverName <string> <!--NeedCopy-->示例:
add contentInspection action ips_action -type INLINEINSPECTION -serverName ips_service <!--NeedCopy--> -
添加内容检查策略。
add contentInspection policy <name> -rule <expression> -action <string> <!--NeedCopy-->示例:
add contentInspection policy ips_pol -rule "HTTP.REQ.METHOD.NE(\"CONNECT\")" -action ips_action <!--NeedCopy--> -
添加代理虚拟服务器。
add cs vserver <name> PROXY <IPAddress> <port> -cltTimeout <secs> -Listenpolicy <expression> -authn401 ( ON | OFF ) -authnVsName <string> -l2Conn ON <!--NeedCopy-->示例:
add cs vserver transparentcs PROXY * * -cltTimeout 180 -Listenpolicy exp1 -authn401 on -authnVsName swg-auth-vs-trans-http -l2Conn ON <!--NeedCopy--> -
将策略绑定到虚拟服务器。
bind cs vserver <name> -policyName <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type REQUEST <!--NeedCopy-->示例:
bind cs vserver explicitcs -policyName ips_pol -priority 1 -gotoPriorityExpression END -type REQUEST <!--NeedCopy-->
使用 GUI 进行配置
-
导航到 “系统”>“设置”。在 “模式和功能” 中,单击 “配置模式”。


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


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

-
导航到 “负载均衡”>“服务”>“添加” 并添加服务。在 “高级设置” 中,单击 “配置文件”。在 “CI 配置文件名称” 列表中,选择之前创建的内容检查配置文件。在 “服务设置” 中,将 “使用源 IP 地址” 设置为 YES,将 “使用代理端口” 设置为 No。在 “基本设置” 中,将 “健康监视” 设置为 NO。仅当您将此服务绑定到 TCP 监视器时才开启健康监视。如果您将监视器绑定到服务,则将监视器中的 TRANSPARENT 选项设置为 ON。



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

-
在 “选择策略” 中,选择 “内容检查”。单击 “继续”。

-
单击 “添加”。指定名称。在 “操作” 中,单击 “添加”。

-
指定名称。在 “类型” 中,选择 “INLINEINSPECTION”。在 “服务器名称” 中,选择之前创建的 TCP 服务。

-
单击 “创建”。指定规则并单击 “创建”。

-
单击 “绑定”。
-
单击 “完成”。
场景 2:使用专用接口对多个内联设备进行负载均衡
如果您正在使用两个或更多内联设备,则可以使用具有专用接口的不同内容检查服务对设备进行负载均衡。在这种情况下,Citrix SWG 设备通过专用接口对发送到每个设备的流量子集进行负载均衡。该子集是根据配置的策略决定的。例如,TXT 或图像文件可能不会发送到内联设备进行检查。

基本配置与场景 1 相同。但是,您必须为每个内联设备创建一个内容检查配置文件,并在每个配置文件中指定入站和出站接口。为每个内联设备添加一个服务。添加一个负载均衡虚拟服务器并在内容检查操作中指定它。执行以下额外步骤:
-
为每个服务添加内容检查配置文件。
-
为每个设备添加服务。
-
添加负载均衡虚拟服务器。
-
在内容检查操作中指定负载均衡虚拟服务器。
使用 CLI 进行配置
在命令提示符下键入以下命令。每个命令后都提供了示例。
-
启用 MBF。
enable ns mode mbf <!--NeedCopy--> -
启用该功能。
enable ns feature contentInspection <!--NeedCopy--> -
为服务 1 添加配置文件 1。
add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>] <!--NeedCopy-->示例:
add contentInspection profile ipsprof1 -type InlineInspection -ingressInterface "1/2" -egressInterface "1/3" <!--NeedCopy--> -
为服务 2 添加配置文件 2。
add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>] <!--NeedCopy-->示例:
add contentInspection profile ipsprof2 -type InlineInspection -ingressInterface "1/4" -egressInterface "1/5" <!--NeedCopy--> -
添加服务 1。指定一个不属于任何设备(包括内联设备)的虚拟 IP 地址。将
use source IP address(USIP) 设置为 YES。将useproxyport设置为 NO。关闭健康监视器。仅当您将此服务绑定到 TCP 监视器时才开启健康监视。如果您将监视器绑定到服务,则将监视器中的 TRANSPARENT 选项设置为 ON。add service <service_name> <IP> TCP <Port> - contentinspectionProfileName <Name> -healthMonitor NO -usip YES –useproxyport NO <!--NeedCopy-->示例:
add service ips_service1 192.168.10.2 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof1 <!--NeedCopy--> -
添加服务 2。指定一个不属于任何设备(包括内联设备)的虚拟 IP 地址。将
use source IP address(USIP) 设置为 YES。将useproxyport设置为 NO。关闭健康监视器。仅当您将此服务绑定到 TCP 监视器时才开启健康监视。如果您将监视器绑定到服务,则将监视器中的 TRANSPARENT 选项设置为 ON。add service <service_name> <IP> TCP <Port> - contentinspectionProfileName <Name> -healthMonitor NO -usip YES –useproxyport NO <!--NeedCopy-->示例:
add service ips_service2 192.168.10.3 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof2 <!--NeedCopy--> -
添加负载均衡虚拟服务器。
add lb vserver <LB_VSERVER_NAME> TCP <IP> <port> <!--NeedCopy-->示例:
add lb vserver lb_inline_vserver TCP 192.0.2.100 * <!--NeedCopy--> -
将服务绑定到负载均衡虚拟服务器。
bind lb vserver <LB_VSERVER_NAME> <service_name> bind lb vserver <LB_VSERVER_NAME> <service_name> <!--NeedCopy-->示例:
bind lb vserver lb_inline_vserver ips_service1 bind lb vserver lb_inline_vserver ips_service2 <!--NeedCopy--> -
在内容检查操作中指定负载均衡虚拟服务器。
add contentInspection action <name> -type INLINEINSPECTION -serverName <string> <!--NeedCopy-->示例:
add contentInspection action ips_action -type INLINEINSPECTION -serverName lb_inline_vserver <!--NeedCopy--> -
添加内容检查策略。在策略中指定内容检查操作。
add contentInspection policy <name> -rule <expression> -action <string> <!--NeedCopy-->示例:
add contentInspection policy ips_pol -rule "HTTP.REQ.METHOD.NE(\"CONNECT\")" -action ips_action <!--NeedCopy--> -
添加代理虚拟服务器。
add cs vserver <name> PROXY <IPAddress> <port> -l2Conn ON <!--NeedCopy-->示例:
add cs vserver transparentcs PROXY * * -l2Conn ON <!--NeedCopy--> -
将内容检查策略绑定到虚拟服务器。
bind cs vserver <name> -policyName <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type REQUEST <!--NeedCopy-->示例:
bind cs vserver explicitcs -policyName ips_pol -priority 1 -gotoPriorityExpression END -type REQUEST <!--NeedCopy-->
使用 GUI 进行配置
-
导航到 “系统”>“设置”。在 “模式和功能” 中,单击 “配置模式”。


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


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

指定入站和出站接口。

创建两个配置文件。在第二个配置文件中指定不同的入站和出站接口。
-
导航到 “负载均衡”>“服务”>“添加” 并添加服务。在 “高级设置” 中,单击 “配置文件”。在 “CI 配置文件名称” 列表中,选择之前创建的内容检查配置文件。在 “服务设置” 中,将 “使用源 IP 地址” 设置为 YES,将 “使用代理端口” 设置为 No。在 “基本设置” 中,将 “健康监视” 设置为 NO。仅当您将此服务绑定到 TCP 监视器时才开启健康监视。如果您将监视器绑定到服务,则将监视器中的 TRANSPARENT 选项设置为 ON。



创建两个服务。指定不属于任何设备(包括内联设备)的虚拟 IP 地址。
-
导航到 “负载均衡”>“虚拟服务器”>“添加”。创建 TCP 负载均衡虚拟服务器。

单击 “确定”。
-
单击 “负载均衡虚拟服务器服务绑定” 部分内部。在 “服务绑定” 中,单击 “选择服务” 中的箭头。选择之前创建的两个服务,然后单击 “选择”。单击 “绑定”。



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

-
在 “选择策略” 中,选择 “内容检查”。单击 “继续”。

-
单击 “添加”。指定名称。在 “操作” 中,单击 “添加”。

-
指定名称。在 “类型” 中,选择 “INLINEINSPECTION”。在 “服务器名称” 中,选择之前创建的负载均衡虚拟服务器。

-
单击 “创建”。指定规则并单击 “创建”。

-
单击 “绑定”。
-
单击 “完成”。
场景 3:使用共享接口对多个内联设备进行负载均衡
如果您正在使用两个或更多内联设备,则可以使用具有共享接口的不同内容检查服务对设备进行负载均衡。在这种情况下,Citrix SWG 设备通过共享接口对发送到每个设备的流量子集进行负载均衡。该子集是根据配置的策略决定的。例如,TXT 或图像文件可能不会发送到内联设备进行检查。

基本配置与场景 2 相同。对于此场景,将接口绑定到不同的 VLAN 以隔离每个内联设备的流量。在内容检查配置文件中指定 VLAN。执行以下额外步骤:
-
将共享接口绑定到不同的 VLAN。
-
在内容检查配置文件中指定入站和出站 VLAN。
使用 CLI 进行配置
在命令提示符下键入以下命令。每个命令后都提供了示例。
-
启用 MBF。
enable ns mode mbf <!--NeedCopy--> -
启用该功能。
enable ns feature contentInspection <!--NeedCopy--> -
将共享接口绑定到不同的 VLAN。
bind vlan <id> -ifnum <interface> -tagged <!--NeedCopy-->示例:
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 <!--NeedCopy--> -
为服务 1 添加配置文件 1。在配置文件中指定入站和出站 VLAN。
add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>] <!--NeedCopy-->示例:
add contentInspection profile ipsprof1 -type InlineInspection -egressInterface "1/3" -ingressinterface "1/2" –egressVlan 100 -ingressVlan 300 <!--NeedCopy--> -
为服务 2 添加配置文件 2。在配置文件中指定入站和出站 VLAN。
add contentInspection profile <name> -type InlineInspection -egressInterface <interface_name> -ingressInterface <interface_name>[-egressVlan <positive_integer>] [-ingressVlan <positive_integer>] <!--NeedCopy-->示例:
add contentInspection profile ipsprof2 -type InlineInspection -egressInterface "1/3" -ingressinterface "1/2" –egressVlan 200 -ingressVlan 400 <!--NeedCopy--> -
添加服务 1。
add service <service_name> <IP> TCP <Port> - contentinspectionProfileName <Name> -healthMonitor NO -usip YES –useproxyport NO <!--NeedCopy-->示例:
add service ips_service1 192.168.10.2 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof1 <!--NeedCopy--> -
添加服务 2。
add service <service_name> <IP> TCP <Port> - contentinspectionProfileName <Name> -healthMonitor NO -usip YES –useproxyport NO <!--NeedCopy-->示例:
add service ips_service2 192.168.10.3 TCP * -healthMonitor NO -usip YES -useproxyport NO -contentInspectionProfileName ipsprof2 <!--NeedCopy--> -
添加负载均衡虚拟服务器。
add lb vserver <LB_VSERVER_NAME> TCP <IP> <port> <!--NeedCopy-->示例:
add lb vserver lb_inline_vserver TCP 192.0.2.100 * <!--NeedCopy--> -
将服务绑定到负载均衡虚拟服务器。
bind lb vserver <LB_VSERVER_NAME> <service_name> bind lb vserver <LB_VSERVER_NAME> <service_name> <!--NeedCopy-->示例:
bind lb vserver lb_inline_vserver ips_service1 bind lb vserver lb_inline_vserver ips_service2 <!--NeedCopy--> -
在内容检查操作中指定负载均衡虚拟服务器。
add contentInspection action <name> -type INLINEINSPECTION -serverName <string> <!--NeedCopy-->示例:
add contentInspection action ips_action -type INLINEINSPECTION -serverName lb_inline_vserver <!--NeedCopy--> -
添加内容检查策略。在策略中指定内容检查操作。
add contentInspection policy <name> -rule <expression> -action <string> <!--NeedCopy-->示例:
add contentInspection policy ips_pol -rule "HTTP.REQ.METHOD.NE(\"CONNECT\")" -action ips_action <!--NeedCopy--> -
添加代理虚拟服务器。
add cs vserver <name> PROXY <IPAddress> <port> -l2Conn ON <!--NeedCopy-->示例:
add cs vserver transparentcs PROXY * * -l2Conn ON <!--NeedCopy--> -
将内容检查策略绑定到虚拟服务器。
bind cs vserver <name> -policyName <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type REQUEST <!--NeedCopy-->示例:
bind cs vserver explicitcs -policyName ips_pol -priority 1 -gotoPriorityExpression END -type REQUEST <!--NeedCopy-->
使用 GUI 进行配置
-
导航到 “系统”>“设置”。在 “模式和功能” 中,单击 “配置模式”。


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


-
导航到 “系统”>“网络”>“VLAN”>“添加”。添加四个 VLAN 并将其标记到接口。




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

指定入站和出站 VLAN。

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

-
导航到 “负载均衡”>“服务”>“添加” 并添加服务。在 “高级设置” 中,单击 “配置文件”。在 “CI 配置文件名称” 列表中,选择之前创建的内容检查配置文件。在 “服务设置” 中,将 “使用源 IP 地址” 设置为 YES,将 “使用代理端口” 设置为 No。在 “基本设置” 中,将 “健康监视” 设置为 NO。
创建两个服务。指定不属于任何设备(包括内联设备)的虚拟 IP 地址。在服务 1 中指定配置文件 1,在服务 2 中指定配置文件 2。




-
导航到 “负载均衡”>“虚拟服务器”>“添加”。创建 TCP 负载均衡虚拟服务器。

单击 “确定”。
-
单击 “负载均衡虚拟服务器服务绑定” 部分内部。在 “服务绑定” 中,单击 “选择服务” 中的箭头。选择之前创建的两个服务,然后单击 “选择”。单击 “绑定”。



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

-
在 “选择策略” 中,选择 “内容检查”。单击 “继续”。

-
单击 “添加”。指定名称。在 “操作” 中,单击 “添加”。

-
指定名称。在 “类型” 中,选择 “INLINEINSPECTION”。在 “服务器名称” 中,选择之前创建的负载均衡虚拟服务器。

-
单击 “创建”。指定规则并单击 “创建”。

-
单击 “绑定”。
-
单击 “完成”。