使用 ICAP 进行远程内容检查
Internet 内容适配协议 (ICAP) 是一种简单、轻量级的开放协议。它通常用于在代理和提供反恶意软件支持及数据泄露防护服务的设备之间传输 HTTP 消息。ICAP 创建了一个内容适配标准接口,以实现内容分发的更大灵活性并提供增值服务。ICAP 客户端将 HTTP 请求和响应转发到 ICAP 服务器进行处理。ICAP 服务器对请求执行一些转换,并将响应发送回 ICAP 客户端,同时对请求或响应执行适当的操作。
在 Citrix Secure Web Gateway™ 设备上使用 ICAP
注意
内容检查功能需要 SWG Edition 许可证。
Citrix Secure Web™ Gateway (SWG) 设备充当 ICAP 客户端,并使用策略与 ICAP 服务器交互。该设备与专门提供反恶意软件和数据泄露防护 (DLP) 等功能的第三方 ICAP 服务器通信。在 SWG 设备上使用 ICAP 时,加密文件也会被扫描。安全供应商此前会绕过这些文件。该设备执行 SSL 拦截,解密客户端流量,并将其发送到 ICAP 服务器。ICAP 服务器检查病毒、恶意软件或间谍软件检测、数据泄露检查或任何其他内容适配服务。该设备充当代理,解密来自源服务器的响应,并以纯文本形式将其发送到 ICAP 服务器进行检查。配置策略以选择发送到 ICAP 服务器的流量。
请求模式流程如下所示:

- Citrix® SWG 设备拦截来自客户端的请求。
- 设备根据设备上配置的策略,将这些请求转发到 ICAP 服务器。
- ICAP 服务器响应一条消息,指示“无需适配”、错误或修改后的请求。
- 设备要么将内容转发到客户端请求的源服务器,要么向客户端返回适当的消息。
响应模式流程如下所示:

- 源服务器响应 Citrix SWG 设备。
- 设备根据设备上配置的策略,将响应转发到 ICAP 服务器。
- ICAP 服务器响应一条消息,指示“无需适配”、错误或修改后的请求。
- 根据 ICAP 服务器的响应,设备要么将请求的内容转发到客户端,要么发送适当的消息。
在 Citrix Secure Web Gateway 设备上配置 ICAP
以下步骤说明如何在 Citrix SWG 设备上配置 ICAP。
- 启用内容检查功能。
- 配置代理服务器。
- 配置表示 ICAP 服务器的 TCP 服务。要建立 SWG 设备与 ICAP 服务之间的安全连接,请将服务类型指定为 SSL_TCP。有关安全 ICAP 的更多信息,请参阅本页后面的“安全 ICAP”部分。
- (可选)添加负载平衡虚拟服务器以对 ICAP 服务器进行负载平衡,并将 ICAP 服务绑定到此虚拟服务器。
- 配置自定义 ICAP 配置文件。配置文件必须包含 ICAP 服务的 URI 或服务路径,以及 ICAP 模式(请求或响应)。没有类似于 HTTP 和 TCP 默认配置文件的 ICAP 默认配置文件。
- 配置内容检查操作并指定 ICAP 配置文件名称。在服务器名称参数中指定负载平衡虚拟服务器名称或 TCP/SSL_TCP 服务名称。
- 配置内容检查策略以评估客户端流量并将其绑定到代理服务器。在此策略中指定内容检查操作。
使用 CLI 配置 ICAP
配置以下实体:
-
启用该功能。
enable ns feature contentInspection -
配置代理服务器。
add cs vserver <name> PROXY <IPAddress>示例:
add cs vserver explicitswg PROXY 192.0.2.100 80 -
配置 TCP 服务以表示 ICAP 服务器。
add service <name> <IP> <serviceType> <port>将服务类型指定为 SSL_TCP,以便与 ICAP 服务器建立安全连接。
示例:
add service icap_svc1 203.0.113.100 TCP 1344add service icap_svc 203.0.113.200 SSL_TCP 11344 -
配置负载平衡虚拟服务器。
add lb vserver <name> <serviceType> <IPAddress> <port>示例:
add lbvserver lbicap TCP 0.0.0.0 0将 ICAP 服务绑定到负载平衡虚拟服务器。
bind lb vserver <name> <serviceName>示例:
bind lb vserver lbicap icap_svc -
添加自定义 ICAP 配置文件。
add ns icapProfile <name> -uri <string> -Mode ( REQMOD | RESPMOD )示例:
add icapprofile icapprofile1 -uri /example.com -Mode REQMOD参数
name
ICAP 配置文件的名称。必须以 ASCII 字母数字或下划线 (_) 字符开头,并且只能包含 ASCII 字母数字、下划线、井号 (#)、句点 (.)、空格、冒号 (:)、at 符号 (@)、等号 (=) 和连字符 (-) 字符。
CLI 用户:如果名称包含一个或多个空格,请将名称用双引号或单引号引起来(例如,“my icap profile”或 ‘my icap profile’)。
最大长度:127
uri
表示 ICAP 服务路径的 URI。
最大长度:511 个字符
Mode
ICAP 模式。可用设置的功能如下:
-
REQMOD:在请求修改模式下,ICAP 客户端将 HTTP 请求转发到 ICAP 服务器。
-
RESPMOD:在响应修改模式下,ICAP 服务器将来自源服务器的 HTTP 响应转发到 ICAP 服务器。
可能的值:REQMOD、RESPMOD
-
-
配置策略返回 true 时要执行的操作。
add contentInspection action <name> -type ICAP -serverName <string> -icapProfileName <string>示例:
add contentInspection action CiRemoteAction -type ICAP -serverName lbicap -icapProfileName icapprofile1 -
配置评估流量的策略。
add contentInspection policy <name> -rule <expression> -action <string>示例:
add contentInspection policy CiPolicy -rule true -action CiRemoteAction -
将策略绑定到代理服务器。
bind cs vserver <vServerName> -policyName <string> -priority <positive_integer> -type [REQUEST | RESPONSE]示例:
bind cs vserver explicitswg -policyName CiPolicy -priority 200 -type REQUEST
使用 GUI 配置 ICAP
执行以下步骤:
-
导航到“负载平衡”>“服务”,然后单击“添加”。

-
键入名称和 IP 地址。在“协议”中,选择 TCP。在“端口”中,键入 1344。单击“确定”。
要与 ICAP 服务器建立安全连接,请选择 TCP_SSL 协议并将端口指定为 11344。

-
导航到“Secure Web Gateway”>“代理虚拟服务器”。添加代理虚拟服务器或选择虚拟服务器,然后单击“编辑”。输入详细信息后,单击“确定”。

再次单击“确定”。

-
在“高级设置”中,单击“策略”。

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

-
在“选择策略”中,单击“+”号以添加策略。

-
输入策略名称。在“操作”中,单击“+”号以添加操作。

-
键入操作名称。在“服务器名称”中,键入之前创建的 TCP 服务的名称。在“ICAP 配置文件”中,单击“+”号以添加 ICAP 配置文件。

-
键入配置文件名称、URI。在“模式”中,选择 REQMOD。

-
单击“创建”。

-
在“创建 ICAP 操作”页面中,单击“创建”。

-
在“创建 ICAP 策略”页面中,在“表达式编辑器”中输入 true。然后,单击“创建”。

-
单击“绑定”。

-
当系统提示启用内容检查功能时,选择“是”。

-
单击“完成”。

安全 ICAP
您可以在 SWG 设备与 ICAP 服务器之间建立安全连接。为此,请创建 SSL_TCP 服务而不是 TCP 服务。配置类型为 SSL_TCP 的负载平衡虚拟服务器。将 ICAP 服务绑定到负载平衡虚拟服务器。
使用 CLI 配置安全 ICAP
在命令提示符下,键入:
add service <name> <IP> SSL_TCP <port>add lb vserver <name> <serviceType> <IPAddress> <port>bind lb vserver <name> <serviceName>
示例:
add service icap_svc 203.0.113.100 SSL_TCP 1344
add lbvserver lbicap SSL_TCP 0.0.0.0 0
bind lb vserver lbicap icap_svc
<!--NeedCopy-->
使用 GUI 配置安全 ICAP
- 导航到“负载平衡”>“虚拟服务器”,然后单击“添加”。
- 指定虚拟服务器的名称、IP 地址和端口。将协议指定为 SSL_TCP。
- 单击“确定”。
- 单击“负载平衡虚拟服务器服务绑定”部分内部以添加 ICAP 服务。
- 单击“+”以添加服务。
- 指定服务名称、IP 地址、协议 (SSL_TCP) 和端口(安全 ICAP 的默认端口为 11344)。
- 单击“确定”。
- 单击“完成”。
- 单击“绑定”。
- 连续单击两次“继续”。
- 单击“完成”。
限制
不支持以下功能:
- ICAP 响应缓存。
- 插入 X-Auth-User-URI 标头。
- 在 RESPMOD 中将 HTTP 请求插入 ICAP 请求。