Citrix ADC

URL 分类

URL 分类会限制用户对特定 Web 站点和 Web 站点类别的访问权限。作为与 NetSTAR 合作的订阅服务,该功能使企业客户能够使用商业分类数据库筛选 Web 流量。NetSTAR 数据库中有大量(数十亿)的 URL 分为不同类别,例如社交网络、赌博、成人内容、新媒体和购物。除了分类之外,每个 URL 都有一个基于站点的历史风险概况保持最新的信誉评分。我们可以根据类别、类别组(例如恐怖主义、非法药物)或站点信誉评分配置高级策略,使用 NetSTAR 数据过滤流量。

例如,您可能会阻止对危险站点(例如已知受恶意软件感染的站点)的访问,并有选择地限制企业用户对成人内容或娱乐流媒体等内容的访问。还可以捕获用户的事务详细信息以及用于监视 Citrix ADM 服务器上的 Web 流量分析的出站流量详细信息。

URL 分类的工作原理

下图显示了 Citrix ADC URL 分类服务如何与商业 URL 分类数据库和云服务集成以实现频繁更新。

本地化后的图片

组件的交互方式如下:

  1. 客户端发送 Internet 绑定的 URL 请求。

  2. SSL 转发代理根据从 URL 分类数据库中检索的类别详细信息(如类别、类别组和站点信誉评分)对请求应用策略强制执行。如果数据库返回类别详细信息,则该过程将跳转到步骤 5。

  3. 如果数据库未找到分类详细信息,则请求将发送到由 URL 分类供应商维护的基于云的查找服务。但是,设备不等待响应,而是将 URL 标记为未分类并执行策略强制执行(跳转到步骤 5)。设备继续监视云查询反馈并更新缓存,以便将来的请求可以从云查找中受益。

  4. ADC 设备从基于云的服务接收 URL 类别详细信息(类别、类别组和信誉评分),并将其存储在分类数据库中。

  5. 策略允许 URL,请求将发送到源服务器。否则,设备会删除、重定向或使用自定义 HTML 页面进行响应。

  6. 源服务器以请求的数据响应 ADC 设备。

  7. 设备将响应发送到客户端。

用例:企业合规下的 Internet 使用情况

您可以使用 URL 筛选功能来检测和实施合规性策略,以阻止违反公司合规性的站点。这些网站可以是成人、流媒体、社交网络等网站,这些网站可以被视为非生产性或在企业网络中消耗过多的互联网带宽。阻止访问这些网站可以提高员工的工作效率,降低带宽使用的运营成本,并减少网络消耗的开销。

必备条件

仅当 Citrix ADC 平台具有具有 URL 筛选功能和 SSL 转发代理威胁情报的可选订阅服务时,URL 分类功能才适用于该平台。订阅允许客户下载最新的 Web 站点威胁分类,然后在 Secure Web Gateway 上实施这些类别。在启用和配置功能之前,您必须安装以下许可证:

  • CNS_WEBF_SSERVER_Retail.lic

  • CNS_XXXX_SERVER_PLT_Retail.lic

其中,XXXXX 是平台类型,例如:V25000

响应程序策略表达式

下表列出了可用于验证是否必须允许、重定向或阻止传入 URL 的不同策略表达式。

  1. <text>. URL_CATEGORIZE (<min_reputation>, <max_reputation>) -返回一个 URL_CATEGORY 对象。如果大<min_reputation> 于 0,则返回的对象不包含信誉低于的类别<min_reputation> 。如果大<max_reputation> 于 0,则返回的对象不包含信誉高于的类别<max_reputation> 。如果类别未能及时解析,则返回 undef 值。
  2. <url_category>. CATEGORY() -返回此对象的类别字符串。如果 URL 没有类别,或者 URL 格式不正确,则返回的值为“未知”。
  3. <url_category>. CATEGORY_GROUP() -返回标识对象类别组的字符串。这是一个较高级别的类别分组,在需要较少详细的 URL 类别信息的操作中非常有用。如果 URL 没有类别,或者 URL 格式不正确,则返回的值为“未知”。
  4. <url_category>. REPUTATION() -以 0 到 5 的数字形式返回信誉评分,其中 5 表示风险最高的信誉。如果类别为“未知”,则信誉值为 1。

策略类型

  1. 为搜索引擎中的 URL 类别选择请求的策略 - add responder policy p1 ‘HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0,0). CATEGORY().EQ(“Search Engine”)
  2. 选择“成人”类别组中 URL 的请求的策略 - add responder policy p1 ‘HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0,0). CATEGORY_GROUP().EQ(“Adult”)’
  3. 选择信誉得分低于 4 的搜索引擎 URL 请求时使用的策略 - add responder policy p2 ‘HTTP.REQ.HOSTNAME.APPEND (HTTP.REQ.URL).URL_CATEGORIZE(4,0).HAS_CATEGORY(“Search Engine”)
  4. 用于选择请求搜索引擎和购物 URL 的策略 - add responder policy p3 ‘HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0,0).CATEGORY().EQ (“good_categories”)
  5. 为信誉分数等于或高于 4 的搜索引擎 URL 选择请求数的策略 - add responder policy p5 ‘CLIENT.SSL.DETECTED_DOMAIN.URL_CATEGORIZE(4,0). CATEGORY().EQ(“Search Engines”)
  6. 为搜索引擎类别中的 URL 选择请求并将其与 URL 集进行比较的策略 - ‘HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0,0). CATEGORY().EQ(“Search Engine”) && HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL).URLSET_MATCHES_ANY(“u1”)’

响应程序策略类型

URL 分类功能中使用的策略有两种类型,每种策略类型如下所示:

策略类型 说明
URL 类别 对 Web 流量进行分类,并根据评估结果块、允许或重定向流量。
URL 信誉评分 确定 Web 站点的信誉分数,并允许您根据管理员设置的信誉分数阈值级别控制访问。

配置 URL 分类

要在 Citrix ADC 设备上配置 URL 分类,请执行以下操作:

  1. 启用 URL 筛选。
  2. 为 Web 流量配置代理服务器。
  3. 在显式模式下为 Web 流量配置 SSL 拦截。
  4. 配置共享内存以限制缓存内存。
  5. 配置 URL 分类参数。
  6. 使用 Citrix SSL 转发代理向导配置 URL 分类。
  7. 使用 SSL 转发代理向导配置 URL 分类参数。
  8. 配置种子数据库路径和云服务器名称

步骤 1:启用 URL 筛选

要启用 URL 分类,请启用 URL 筛选功能并启用 URL 分类模式。

使用 CLI 启用 URL 分类

在命令提示窗口中,键入:

enable ns feature URLFiltering

disable ns feature URLFiltering

步骤 2:在显式模式下为 Web 流量配置代理服务器

Citrix ADC 设备支持透明和显式的代理虚拟服务器。要在显式模式下为 SSL 流量配置代理虚拟服务器,请执行以下操作:

  1. 添加代理服务器。
  2. 将 SSL 策略绑定到代理服务器。

使用 CLI 添加代理服务器

在命令提示窗口中,键入:

add cs vserver <name> [-td <positive_integer>] <serviceType>  [-cltTimeout <secs>]

示例:

add cs vserver starcs PROXY 10.102.107.121 80 -cltTimeout 180

使用 CLI 将 SSL 策略绑定到代理虚拟服务器

bind ssl vserver <vServerName> -policyName <string> [-priority <positive_integer>]

步骤 3:为 HTTPS 流量配置 SSL 拦截

要为 HTTPS 流量配置 SSL 拦截,请执行以下操作:

  1. 将 CA 证书密钥对绑定到代理虚拟服务器。
  2. 使用 SSL 参数配置默认 SSL 配置文件。
  3. 将前端 SSL 配置文件绑定到代理虚拟服务器,并在前端 SSL 配置文件中启用 SSL 拦截。

使用 CLI 将 CA 证书密钥对绑定到代理虚拟服务器

在命令提示窗口中,键入:

bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName> -CA –skipCAName

使用 CLI 配置默认 SSL 配置文件

在命令提示窗口中,键入:

set ssl profile <name> -denySSLReneg <denySSLReneg> -sslInterception (ENABLED | DISABLED) -ssliMaxSessPerServer positive_integer>

使用 CLI 将前端 SSL 配置文件绑定到代理虚拟服务器

在命令提示窗口中,键入:

set ssl vserver <vServer name>  -sslProfile ssl_profile_interception

步骤 4:配置共享内存以限制缓存内存

使用 CLI 配置共享内存以限制缓存内存

在命令提示窗口中,键入:

set cache parameter [-memLimit <megaBytes>]

其中,为缓存配置的内存限制设置为 10 MB。

步骤 5:配置 URL 分类参数

使用 CLI 配置 URL 分类参数

在命令提示窗口中,键入:

set urlfiltering parameter [-HoursBetweenDBUpdates <positive_integer>] [-TimeOfDayToUpdateDB <HH:MM>]

示例

set urlfiltering parameter –urlfilt_hours_betweenDB_updates 20

步骤 6:使用 Citrix SSL 转发代理向导配置 URL 分类

  1. 登录到 Citrix ADC 设备并导航到安全 > SSL 转发代理页面。
  2. 在详细信息窗格中,执行以下操作之一:
    1. 单击 SSL 转发代理向导 以创建新配置。
    2. 选择现有配置,然后单击 编辑
  3. URL 过滤部分中,单击编辑
  4. 选中URL 分类复选框以启用该功能。
  5. 选择 URL 分类 策略,然后单击 绑定
  6. 点击 继续,然后点击 完成

有关 URL 分类策略的详细信息, 请参阅如何创建 URL 分类策略

步骤 7:使用 SSL 转发代理向导配置 URL 分类参数

  1. 登录到 Citrix ADC 设备,然后导航到安全”>“URL 筛选
  2. URL 筛选页面中,单击更改 URL 筛选设置链接。
  3. 配置 URL 筛选参 数”页面中,指定以下参数。
    1. 数据库更新之间的小时数。URL 过滤数据库更新之间的小时数。最小值:0,最大值:720。
    2. 更新数据库的一天时间。URL 过滤一天中的时间以更新数据库。
    3. 云主机。云服务器的 URL 路径。
    4. 种子数据库路径。种子数据库查找服务器的 URL 路径。
  4. 单击确定关闭

示例配置:

enable ns feature LB CS SSL IC RESPONDER AppFlow URLFiltering

enable ns mode FR L3 Edge USNIP PMTUD

set ssl profile ns_default_ssl_profile_frontend -denySSLReneg NONSECURE -sslInterception ENABLED -ssliMaxSessPerServer 100

add ssl certKey swg_ca_cert -cert ns_swg_ca.crt -key ns_swg_ca.key

set cache parameter -memLimit 100

add cs vserver starcs PROXY 10.102.107.121 80 -cltTimeout 180

add responder action act1 respondwith ""HTTP/1.1 200 OK\r\n\r\n" + http.req.url.url_categorize(0,0).reputation + "\n""

add responder policy p1 "HTTP.REQ.URL.URL_CATEGORIZE(0,0).CATEGORY.eq("Shopping/Retail") || HTTP.REQ.URL.URL_CATEGORIZE(0,0).CATEGORY.eq("Search Engines & Portals

")" act1

bind cs vserver starcs_PROXY -policyName p1 -priority 10 -gotoPriorityExpression END -type REQUEST

add dns nameServer 10.140.50.5

set ssl parameter -denySSLReneg NONSECURE -defaultProfile ENABLED -sigDigestType RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-SHA512 -ssliErrorCache ENABLED

-ssliMaxErrorCacheMem 100000000

add ssl policy pol1 -rule "client.ssl.origin_server_cert.subject.  URL_CATEGORIZE(0,0).CATEGORY.eq("Search Engines & Portals")"" -action INTERCEPT

add ssl policy pol3 -rule "client.ssl.origin_server_cert.subject.ne("citrix")" -action INTERCEPT

add ssl policy swg_pol -rule "client.ssl.client_hello.SNI.URL_CATEGORIZE(0,0).CATEGORY.ne("Uncategorized")" -action INTERCEPT

set urlfiltering parameter -HoursBetweenDBUpdates 3 -TimeOfDayToUpdateDB 03:00

配置种子数据库路径和云服务器名称

现在,您可以配置种子数据库路径和云查找服务器名称,以便手动设置云查找服务器名称和种子数据库路径。为此,在 URL 过滤参数中添加了两个新参数,“CloudHost”和“SeedDBPath”。

在命令提示窗口中,键入:

set urlfiltering parameter [-HoursBetweenDBUpdates <positive_integer>] [-TimeOfDayToUpdateDB <HH:MM>] [-LocalDatabaseThreads <positive_integer>] [-CloudHost <string>] [-SeedDBPath <string>]

示例:

set urlfiltering parameter -HoursBetweenDBUpdates 3 -TimeOfDayToUpdateDB 03:00 –CloudHost localhost –SeedDBPath /mypath

配置审核日志消息

审核日志记录使您能够在 URL 分类过程的任何阶段查看条件或情况。当 Citrix ADC 设备收到传入 URL 时,如果响应方策略具有 URL 筛选表达式,则审核日志功能将收集 URL 中的 URL 集信息,并将其存储为审核日志记录允许的任何目标的日志消息。

  • 源 IP 地址(发出请求的客户端的 IP 地址)。

  • 目标 IP 地址(请求服务器的 IP 地址)。

  • 请求的包含架构、主机和域名的 URL (http://www.example.com)。

  • URL 过滤框架返回的 URL 类别。

  • URL 筛选框架返回的 URL 类别组。

  • URL 筛选框架返回的 URL 信誉号。

  • 策略执行的审核日志操作。

要配置 URL 列表功能的审核日志记录,您必须完成以下任务:

  1. 启用审核日志。
  2. 创建审核日志消息操作。
  3. 使用审核日志消息操作设置 URL 列表响应程序策略。

有关详细信息, 请参阅 审核日志记录主题。

使用 SYSLOG 消息传递存储失败错误

在 URL 筛选过程的任何阶段,如果出现系统级故障,Citrix ADC 设备将使用审核日志机制将日志存储在 ns.log 文件中。错误以 SYSLOG 格式存储为文本消息,以便管理员稍后可以按事件发生的时间顺序查看错误。这些日志也会发送到外部 SYSLOG 服务器进行存档。有关详细信息,请参阅文章 CTX229399

例如,如果初始化 URL 筛选 SDK 时发生故障,错误消息将以以以下消息格式存储。

Oct 3 15:43:40 <local0.err> ns URLFiltering[1349]: Error initializing NetStar SDK (SDK error=-1). (status=1).

Citrix ADC 设备将错误消息存储在四个不同的故障类别中:

  • 下载失败。如果您尝试下载分类数据库时发生错误。

  • 集成失败。如果将更新集成到现有分类数据库中时发生错误。

  • 初始化失败。如果初始化 URL 分类功能、设置分类参数或结束分类服务时发生错误。

  • 检索失败。如果设备检索请求的分类详细信息时发生错误。

为 NetStar 事件配置 SNMP 陷阱

如果出现以下情况,URL 过滤功能会生成 SNMP 陷阱:

  • NetStar 数据库更新失败或成功。
  • NetStar SDK 初始化失败或成功。

设备具有一组名为 SNMP 警报的条件实体。当满足 SNMP 警报中的条件时,设备会生成陷阱并将其发送到指定陷阱目标。例如,如果 NetStar SDK 初始化失败,则会生成一个 SNMP OID 1.3.6.1.4.1.5951.1.1.0.183 并将其发送到陷阱目标。

要使设备生成陷阱,必须首先启用和配置 SNMP 警报。然后,指定设备将生成的陷阱消息发送到的陷阱目标

启用 SNMP 警报

Citrix ADC 设备仅为已启用的 SNMP 警报生成陷阱。某些警报在默认情况下处于启用状态,但您可以禁用它们。

启用 SNMP 警报时,URL 筛选功能会在发生成功或失败事件时生成陷阱消息。默认情况下某些警报处于启用状态。

要使用命令行界面启用 SNMP 警报,请执行以下操作:

在命令提示窗口中,键入以下命令来设置参数并验证配置:

enable snmp alarm <trapName> show snmp alarm <trapName>

使用 Citrix ADC GUI 启用 SNMP 警报

  1. 导航到 系统 > SNMP > 警报 ,然后选择警报。
  2. 单击 操作 并选择 启用

使用命令行界面配置 SNMP 警报

在命令提示窗口中,键入以下命令来设置参数并验证配置:

set snmp alarm <trapName> [-thresholdValue <positive_integer> [-normalValue <positive_integer>]] [-time <secs>] [-state ( ENABLED | DISABLED )] [-severity <severity>] [-logging ( ENABLED | DISABLED )]

示例:

set snmp alarm URL-FIL-DB-UPDATE-STATUS –state ENABLED set snmp alarm URL-FIL-INIT-SDK –state ENABLED

使用 GUI 配置 SNMP 警报

导航到系统 > SNMP > 报”,选择一个警报并配置警报参数。

有关 SNMP 陷阱的详细信息,请参阅 SNMP 主题