URL 分类

URL 分类限制用户访问特定网站和网站类别。作为 Citrix Secure Web Gateway™ (SWG) 提供的一项订阅服务,此功能使企业客户能够通过使用商业分类数据库来筛选 Web 流量。该数据库包含大量(数十亿)URL,这些 URL 分为不同的类别,例如社交网络、赌博、成人内容、新媒体和购物。除了分类之外,每个 URL 都有一个信誉评分,该评分根据网站的历史风险配置文件保持最新。要筛选流量,您可以根据类别、类别组(例如恐怖主义、非法药物)或网站信誉评分配置高级策略。

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

Citrix ADC 从预配置的 NetSTAR 设备 nsv10.netstar-inc.com 上传或下载数据,并且 incompasshybridpc.netstar-inc.com 默认用作云主机,用于云分类请求。设备使用其 NSIP 地址作为源 IP 地址,使用 443 作为通信的目标端口。

URL 分类的工作原理

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

URL 分类流程图

组件交互如下:

  1. 客户端发送互联网绑定 URL 请求。

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

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

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

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

  6. 源服务器将请求的数据响应给 SWG 设备。

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

用例:企业在公司合规性下的互联网使用

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

先决条件

URL 分类功能仅在 Citrix SWG 平台上具有可选订阅服务(包含 URL 筛选功能和 Citrix Secure Web™ Gateway 的威胁情报)时才有效。该订阅允许客户下载网站的最新威胁分类,然后将这些类别强制应用于 Secure Web Gateway。该订阅适用于 Secure Web Gateway 的硬件设备和软件 (VPX) 版本。 在启用和配置此功能之前,您必须安装以下许可证: CNS_WEBF_SSERVER_Retail.lic

CNS_XXXXX_SERVER_SWG_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 格式不正确,则返回值为“Unknown”。
  3. <url_category>. CATEGORY_GROUP() - 返回标识对象类别组的字符串。这是更高级别的类别分组,在需要有关 URL 类别较少详细信息的操作中很有用。如果 URL 没有类别,或者 URL 格式不正确,则返回值为“Unknown”。
  4. <url_category>. REPUTATION() - 返回 0 到 5 之间的信誉评分,其中 5 表示风险最高的信誉。如果类别为“Unknown”,则信誉值为 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 信誉评分 确定网站的信誉评分,并允许您根据管理员设置的信誉评分阈值级别控制访问。

配置 URL 分类

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

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

步骤 1:启用 URL 筛选

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

使用 Citrix SWG CLI 启用 URL 分类

在命令提示符下,键入:

enable ns feature URLFiltering

disable ns feature URLFiltering

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

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

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

使用 Citrix SWG CLI 添加代理服务器

在命令提示符下,键入:

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

示例:

add cs vserver starcs PROXY 10.102.107.121 80 -cltTimeout 180
<!--NeedCopy-->

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

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

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

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

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

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

在命令提示符下,键入:

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

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

在命令提示符下,键入:

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

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

在命令提示符下,键入:

set ssl vserver <vServer name>  -sslProfile ssl_profile_interception
<!--NeedCopy-->

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

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

在命令提示符下,键入:

set cache parameter [-memLimit <megaBytes>]
<!--NeedCopy-->

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

步骤 5:配置 URL 分类参数

使用 Citrix SWG CLI 配置 URL 分类参数

在命令提示符下,键入:

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

示例

Set urlfiltering parameter –urlfilt_hours_betweenDB_updates 20
<!--NeedCopy-->

步骤 6:使用 Citrix SWG 向导配置 URL 分类

使用 Citrix SWG GUI 配置 URL 分类

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

有关 URL 分类策略的更多信息,请参阅如何创建 URL 分类策略主题。

步骤 7:使用 SWG 向导配置 URL 分类参数

使用 Citrix SWG GUI 配置 URL 分类参数

  1. 登录到 Citrix SWG 设备,然后导航到“安全 Web 网关 > 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
<!--NeedCopy-->

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

您现在可以配置种子数据库路径和云查找服务器名称,以手动设置云查找服务器名称和种子数据库路径。为此,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

Citrix ADC 设备与 NetSTAR 之间的通信可能需要域名服务器。您可以从设备使用简单的控制台或 telnet 连接进行测试。

示例:

root@ns# telnet nsv10.netstar-inc.com 443
Trying 1.1.1.1...
Connected to nsv10.netstar-inc.com.
Escape character is '^]'.

root@ns# telnet incompasshybridpc.netstar-inc.com 443
Trying 10.10.10.10...
Connected to incompasshybridpc.netstar-inc.com.
Escape character is '^]'.
<!--NeedCopy-->

配置审核日志消息

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

  • 源 IP 地址(发出请求的客户端的 IP 地址)。
  • 目标 IP 地址(请求的服务器的 IP 地址)。
  • 包含架构、主机和域名 (http://www.example.com) 的请求 URL。
  • 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 分类功能、设置分类参数或结束分类服务时发生错误。
  • 检索故障。如果设备检索请求的分类详细信息时发生错误。

通过命令行界面显示 URL 分类结果

URL 分类使您能够输入 URL 并从 NetSTAR 第三方 URL 分类数据库中检索分类结果(例如类别、组和信誉评分)。

当您输入 URL 时,URL 筛选功能会在命令行界面上检索并显示分类结果。当您输入更多 URL 时,设备会从列表中排除较旧的 URL,并显示最新三个 URL 的结果。

要显示最多三个 URL 的 URL 类别结果,请完成以下步骤:

  1. 添加 URL 分类 URL
  2. 显示最多三个 URL 的 URL 分类详细信息
  3. 清除 URL 分类数据。

添加 URL 筛选分类 URL

要添加 URL 并检索其分类详细信息,请执行以下操作: 在命令提示符下,键入:

add urlfiltering categorization –Url <string>

示例:

add urlfiltering categorization –Url www.facebook.com

显示最多三个 URL 的 URL 分类详细信息

在命令提示符下,键入:

> show urlfiltering categorization

示例:

show urlfiltering categorization
Url: http://www.facebook.com    Categorization: Facebook,Social Networking,1
Url: http://www.google.com      Categorization: Search Engines & Portals,Search,1
Url: http://www.citrix.com      Categorization: Computing & Internet,Computing & Internet,1
Done
<!--NeedCopy-->

示例配置:

add urlfiltering categorization -url www.facebook.com
Done
show urlfiltering categorization
Url: http://www.facebook.com    Categorization: Facebook,Social Networking,1
Done

add urlfiltering categorization -url www.google.com
Done
show urlfiltering categorization
Url: http://www.facebook.com    Categorization: Facebook,Social Networking,1
Url: http://www.google.com      Categorization: Search Engines & Portals,Search,1
Done

add urlfiltering categorization -url www.citrix.com
Done
show urlfiltering categorization
Url: http://www.facebook.com    Categorization: Facebook,Social Networking,1
Url: http://www.google.com      Categorization: Search Engines & Portals,Search,1
Url: http://www.citrix.com      Categorization: Computing & Internet,Computing & Internet,1
Done

add urlfiltering categorization -url www.in.gr
Done
show urlfiltering categorization
Url: http://www.google.com      Categorization: Search Engines & Portals,Search,1
Url: http://www.citrix.com      Categorization: Computing & Internet,Computing & Internet,1
Url: http://www.in.gr   Categorization: Search Engines & Portals,Search,1 Done
<!--NeedCopy-->

清除 URL 分类结果

在命令提示符下,键入:

clear urlfiltering categorization
done

show urlfiltering categorization
done
<!--NeedCopy-->

通过 GUI 界面显示 URL 分类结果

  1. 在导航窗格中,展开“安全 Web 网关”>“URL 筛选”。
  2. 在详细信息窗格中,从“工具”部分单击“URL 筛选搜索分类”链接。
  3. 在“URL 筛选搜索分类”页面中,输入 URL 请求,然后单击“搜索”。

    显示 URL 分类搜索结果

  4. 设备显示请求的 URL 和前两个 URL 请求的类别结果。