使用 ICAP 进行远程内容检查

Internet 内容适配协议 (ICAP) 是一种简单的轻型开放协议。通常用于在代理与提供反恶意软件支持和数据泄漏预防服务的设备之间传输 HTTP 消息。ICAP 创建了一个标准接口, 用于适应内容, 从而在内容分发和提供增值服务时有更大的灵活性。ICAP 客户端将 HTTP 请求和响应转发给 ICAP 服务器以进行处理。ICAP 服务器对请求执行某些转换, 并向 ICAP 客户端回发响应, 并对请求或响应执行相应的操作。

在 Citrix Secure Web Gateway 设备上使用 ICAP

注意

内容检查功能要求使用 SWG 版本的许可证。

Citrix Secure Web Gateway (SWG) 设备用作 ICAP 客户端, 并且使用策略与 ICAP 服务器进行交互。设备与专用于某些功能的第三方 ICAP 服务器通信, 例如, 反恶意软件和数据泄漏防御 (DLP)。在 SWG 设备上使用 ICAP 时, 还会扫描加密的文件。安全供应商在以前绕过了这些文件。设备会执行 SSL 截获,对客户端流量进行解密,然后将其发送到 ICAP 服务器。ICAP 服务器检查病毒、恶意软件、间谍软件检测、数据泄漏检查或任何其他内容适配服务。设备用作代理, 从原始服务器解密响应, 并以纯文本格式将其发送给 ICAP 服务器以进行检查。配置策略以选择要发送到 ICAP 服务器的流量。

请求模式流的工作原理如下:

本地化后的图片

(1) Citrix SWG 设备截获来自客户端的请求。(2) 设备会根据设备上配置的策略将这些请求转发到 ICAP 服务器。(3) ICAP 服务器通过一条指示 “无需改写”、”错误” 或 “已修改的请求” 的消息作出响应。设备 (4) 将内容转发到客户端请求的源服务器, 或 (5) 向客户端返回适当的消息。

响应模式的工作流程如下:

本地化后的图片

(1) 原服务器对 Citrix SWG 设备作出响应。(2) 设备根据设备上配置的策略将响应转发给 ICAP 服务器。(3) ICAP 服务器以指示 “无需适应”、”错误” 或 “已修改的请求” 的消息作出响应。(4) 根据 ICAP 服务器的响应, 设备将请求的内容转发到客户端, 或发送一条适当的消息。

在 Citrix Secure Web Gateway 设备上配置 ICAP

以下步骤介绍了如何在 Citrix SWG 设备上配置 ICAP。

  1. 启用内容检查功能。
  2. 配置代理服务器。
  3. 配置表示 ICAP 服务器的 TCP 服务。要在 SWG 设备与 ICAP service 之间建立安全连接, 请将服务类型指定为 SSL_TCP。有关 secure ICAP 的详细信息, 请参阅本页面后面的“保护 ICAP 安全”部分。
  4. (可选) 添加负载平衡虚拟服务器以对 ICAP 服务器进行负载平衡, 并将 ICAP 服务绑定到该虚拟服务器。
  5. 配置自定义 ICAP 配置文件。配置文件中必须包含 ICAP 服务的 URI 或服务路径以及 ICAP 模式 (请求或响应)。不存在与 HTTP 和 TCP 默认配置文件类似的 ICAP 默认配置文件。
  6. 配置内容检查操作并指定 ICAP 配置文件的名称。在 server name (服务器名称) 参数中指定负载平衡虚拟服务器名称或 TCP/SSL_TCP 服务名称。
  7. 配置内容检查策略以评估客户端流量并将其绑定到代理服务器。在此策略中指定内容检查操作。

使用 CLI 配置 ICAP

配置以下实体:

  1. 启用功能。

    enable ns feature contentInspection

  2. 配置代理服务器。

    add cs vserver <name> PROXY <IPAddress>

    示例:

    add cs vserver explicitswg PROXY 192.0.2.100 80

  3. 配置 TCP 服务以表示 ICAP 服务器。

    add service <name> <IP> <serviceType> <port>

    指定服务类型为 SSL_TCP 以与 ICAP 服务器建立安全连接。

    示例:

    add service icap_svc1 203.0.113.100 TCP 1344

    add service icap_svc 203.0.113.200 SSL_TCP 11344

  4. 配置负载平衡虚拟服务器。

    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

  5. 添加自定义 ICAP 配置文件。

    add ns icapProfile <name> -uri <string> -Mode ( REQMOD | RESPMOD )

    示例:

    add icapprofile icapprofile1 -uri /example.com -Mode REQMOD

    参数

    名称

    ICAP 配置文件的名称。必须以 ASCII 字母数字或下划线 (\ _) 字符开头, 并且必须仅包含 ASCII 字母数字、下划线、哈希 (\ #)、句点 (。)、  空格、冒号 (:)、符号 (@)、等号 (=) 和连字符 (-)。
    
    CLI 用户: 如果名称中包含一个或多个空格, 请将名称用双引号括起来 (例如, "my icap profile" 或 "my icap profile")。
    
    最大长度: 127
    

    oma-uri

    代表 ICAP 服务路径的 URI。
    
    最大长度: 511 个字符
    

    模式

    ICAP 模式。可用设置的功能如下:
    
    • REQMOD: 在请求修改模式下, ICAP 客户端向 ICAP 服务器转发 HTTP 请求。

    • RESPMOD: 在响应修改模式下, ICAP 服务器向 ICAP 服务器转发来自源服务器的 HTTP 响应。

      可能的值: REQMOD、RESPMOD
      
  6. 配置策略返回 true 时要执行的操作。

    add contentInspection action <name> -type ICAP -serverName <string> -icapProfileName <string>

    示例:

    add contentInspection action CiRemoteAction -type ICAP -serverName lbicap -icapProfileName icapprofile1

  7. 配置用于评估流量的策略。

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

    示例:

    add contentInspection policy CiPolicy -rule true -action CiRemoteAction

  8. 将策略绑定到代理服务器。

    bind cs vserver <vServerName> -policyName <string> -priority <positive_integer> -type [REQUEST | RESPONSE]

    示例:

    bind cs vserver explicitswg -policyName CiPolicy -priority 200 -type REQUEST

使用 GUI 配置 ICAP

执行以下步骤:

  1. 导航到负载平衡> Services, 然后单击添加

    本地化后的图片

  2. 键入名称和 IP 地址。在Protocol (协议) 中, 选择TCP。在Port (端口) 中, 键入1344。单击确定

    对于与 ICAP 服务器的安全连接, 请选择 TCP_SSL 协议并将端口指定为11344。

    本地化后的图片

  3. 导航到Secure Web Gateway >代理虚拟服务器。添加代理虚拟服务器或选择虚拟服务器, 然后单击Edit (编辑)。输入详细信息后, 单击OK (确定)。

    本地化后的图片

    再次单击OK (确定)。

    本地化后的图片

  4. 在 “高级设置” 中, 单击策略

    本地化后的图片

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

    本地化后的图片

  6. Select Policy (选择策略) 中, 单击 + 号 (+) 以添加策略。

    本地化后的图片

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

    本地化后的图片

  8. 键入操作的名称。在Server Name (服务器名称) 中, 键入之前创建的 TCP 服务的名称。在ICAP profile (ICAP 配置文件) 中, 单击 “+” 符号以添加 ICAP 配置文件。

    本地化后的图片

  9. 键入配置文件名称 (URI)。在Mode (模式) 中, 选择REQMOD

    本地化后的图片

  10. 单击创建

    本地化后的图片

  11. 创建 ICAP 操作页面上,单击创建

    本地化后的图片

  12. 创建 ICAP 策略页面的表达式编辑器中,输入 true。然后,单击创建

    本地化后的图片

  13. 单击 Bind(绑定)。

    本地化后的图片

  14. 系统提示启用内容检查功能时, 选择Yes (是)。

    本地化后的图片

  15. 单击完成

    本地化后的图片

Secure ICAP

您可以在 SWG 设备与 ICAP 服务器之间建立安全连接。为此, 请创建一个 SSL_TCP service 而不是 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

使用 GUI 配置安全 ICAP

  1. 导航到负载平衡>虚拟服务器, 然后单击添加
  2. 指定虚拟服务器的名称、IP 地址和端口。将协议指定为 SSL_TCP。
  3. 单击确定
  4. 在 “负载平衡虚拟服务器服务绑定” 部分中单击以添加 ICAP 服务。
  5. 单击 “+” 以添加服务。
  6. 指定服务名称、IP 地址、协议 (SSL_TCP) 和端口 (默认情况下, secure ICAP 的端口为 11344)。
  7. 单击确定
  8. 单击完成
  9. 单击 Bind(绑定)。
  10. 单击Continue (继续) 两次。
  11. 单击完成

限制

以下功能不受支持:

  • ICAP 响应缓存。
  • 插入 X 身份验证用户 URI 标头。
  • 在 RESPMOD 中的 ICAP 请求中插入 HTTP 请求。