ADC

URL 分类

注意:

在此版本中,URL 过滤功能中的 URL 分类已过时。

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

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

NetScaler 从预配置的 NetSTAR 设备 nsv10.netstar-inc.com 上载或下载数据,默认情况下用作云分类请求的云主机。 incompasshybridpc.netstar-inc.com 这些 URL 必须可通过防火墙访问,URL 过滤才能正常工作。设备使用其 NSIP 地址作为源 IP 地址,443 用作通信的目标端口。

URL 分类的工作原理

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

URL 分类的工作原理

组件的交互方式如下:

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

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

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

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

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

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

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

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

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

必备条件

只有在 NetScaler 平台具有具有 URL 过滤功能和针对 SSL 转发代理的威胁情报的可选订阅服务时,URL 分类功能才适用于 NetScaler 平台。该订阅允许客户下载网站的最新威胁分类,然后将这些类别强制执行到 SSL 转发代理。在启用和配置该功能之前,必须安装以下许可证:

  • 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 格式错误,则返回值为“Unknown”。
  3. <url_category>. CATEGORY_GROUP() -返回标识对象类别组的字符串。此分组是更高级别的类别分组,这在需要较少详细的 URL 类别信息的操作中非常有用。如果 URL 没有类别,或者 URL 格式错误,则返回值为“Unknown”。
  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 信誉分数 确定网站的信誉分数,并允许您根据管理员设置的信誉分数阈值级别控制访问权限。

配置 URL 分类

要在 NetScaler 设备上配置 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 流量配置代理服务器

NetScaler 设备支持透明和显式代理虚拟服务器。要在显式模式下为 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. 登录 NetScaler 设备并导航到 安全 > SSL 转发代理 页面。
  2. 在详细信息窗格中,执行以下操作之一:
    1. 单击 SSL 转发代理向导 以创建新配置。
    2. 选择现有配置,然后单击 编辑
  3. 在“URL 过滤”部分中,单击“编辑”
  4. 选中 URL 分类 复选框以启用该功能。
  5. 选择一个 URL 分类 策略,然后单击 绑定
  6. 单击 继续,然后单击 完成

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

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

  1. 登录 NetScaler 设备并导航到 安全 > 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-->

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

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

在命令提示符下,键入:

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

NetScaler 设备之间的通信 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 分类过程任何阶段的条件或情况。当 NetScaler 设备收到传入 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 筛选过程的任何阶段,如果出现系统级故障,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).

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

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

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

  • 初始化失败。如果在初始化 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 警报

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

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

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

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

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

使用 NetScaler GUI 启用 SNMP 警报

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

使用 CLI 配置 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 主题