ADC

代理模式

NetScaler 设备充当客户端的代理,用于连接到互联网和 SaaS 应用程序。作为代理,它接受所有流量并确定流量的协议。除非流量是 HTTP 或 SSL,否则它将按原样转发到目的地。当设备收到来自客户端的请求时,它会拦截请求并执行某些操作,例如用户身份验证、站点分类和重定向。它使用策略来确定允许哪些流量和阻止哪些流量。

设备维护两个不同的会话,一个在客户端和代理之间,另一个在代理和原始服务器之间。该代理依赖于客户定义的策略来允许或阻止 HTTP 和 HTTPS 流量。因此,必须定义策略以绕过敏感数据,例如财务信息。该设备提供了一组丰富的第 4 层到第 7 层流量属性和用户身份属性,用于创建流量管理策略。

对于 SSL 流量,代理验证源服务器的证书并与服务器建立合法连接。然后,它模拟服务器证书,使用安装在 NetScaler 上的 CA 证书对其进行签名,并将创建的服务器证书提供给客户端。必须将 CA 证书作为可信证书添加到客户端的浏览器中,才能成功建立 SSL 会话。

该设备支持透明和显式代理模式。在显式代理模式下,客户端必须在浏览器中指定 IP 地址,除非组织将设置推送到客户端的设备上。此地址是在 ADC 设备上配置的代理服务器的 IP 地址。所有客户端请求都发送到此 IP 地址。对于显式代理,必须配置 PROXY 类型的内容交换虚拟服务器并指定 IP 地址和有效端口号。此外,当默认 HTTP 配置文件上的 markconnReqInval 参数全局设置为 ON 时,必须将另一个 markconnReqInval 设置为 OFF 的 HTTP 配置文件绑定到内容交换虚拟服务器。

将自定义 HTTP 配置文件绑定到代理内容交换虚拟服务器的示例:

add ns httpprofile custom_http_profile1 -markconnReqInval OFF
set cs vserver swgVS -httpprofileName custom_http_profile1
<!--NeedCopy-->

顾名思义,透明代理对客户端是透明的。也就是说,客户端可能不知道代理服务器正在调解他们的请求。ADC 设备配置为内联部署,透明地接受所有 HTTP 和 HTTPS 流量。对于透明代理,您必须配置一个内容交换虚拟服务器的 PROOPE 类型,并使用星号 (*) 作为 IP 地址和端口。在 GUI 中使用 SSL 转发代理向导 时,不必指定 IP 地址和端口。

注意

要在透明代理模式下拦截 HTTP 和 HTTPS 以外的协议,必须添加侦听策略并将其绑定到代理服务器。

使用 CLI 配置 SSL 转发代理

在命令提示符下,键入:

add cs vserver <name> PROXY <ipaddress> <port>
<!--NeedCopy-->

参数

名称

代理服务器的名称。必须以 ASCII 字母数字或下划线 (_) 字符开头,且必须仅包含 ASCII 字母数字、下划线、哈希 (#)、句点 (.)、空格、冒号 (:)、at (@)、等于 (=) 和连字符 (-)。创建 CS 虚拟服务器后无法更改。

以下要求仅适用于 CLI:

如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的服务器”或“我的服务器”)。

这个参数是强制性的。最大长度:127

IP 地址

代理服务器的 IP 地址。

端口

代理服务器的端口号。最小值:1

显式代理示例

add cs vserver swgVS PROXY 192.0.2.100 80
<!--NeedCopy-->

透明代理的示例:

add cs vserver swgVS PROXY * *
<!--NeedCopy-->

使用 GUI 向透明代理服务器添加监听策略

  1. 导航到安全 > SSL 转发代理 > 代理虚拟服务器。选择透明代理服务器,然后单击 编辑
  2. 编辑 基本设置,然后单击 更多
  3. 监听优先级中,输入 1。
  4. 监听策略表达式中,输入以下表达式:

    (CLIENT.TCP.DSTPORT.EQ(80)||CLIENT.TCP.DSTPORT.EQ(443))
    <!--NeedCopy-->
    

注意

此表达式假定 HTTP 和 HTTPS 流量的标准端口。如果您配置了不同的端口,例如用于 HTTP 的 8080 或用于 HTTPS 的 8443,请修改前面的表达式以指定这些端口。

封锁特权上游端口

要使用正向代理阻止除端口 80 和 443 之外的特权上游端口 (<1024) 访问,请在显式模式下将以下响应器策略绑定到正向代理内容交换虚拟服务器。

使用 CLI

在命令提示符下,键入:

add responder policy web_only "(HTTP.REQ.METHOD.EQ(CONNECT) && (HTTP.REQ.HOSTNAME.PORT.LT(1024) && HTTP.REQ.HOSTNAME.PORT.NE(":80") && HTTP.REQ.HOSTNAME.PORT.NE(":443") && HTTP.REQ.HOSTNAME.PORT.LENGTH.NE(0))  || (HTTP.REQ.URL.AFTER_STR(":").TYPECAST_NUM_AT.NE(80) &&
HTTP.REQ.URL.AFTER_STR(":").TYPECAST_NUM_AT.NE(443) && HTTP.REQ.URL.AFTER_STR(":").TYPECAST_NUM_AT.LE(1024) ) )" RESET
bind cs vserver <proxy_vs_name> -policyName web_only -priority 9 -gotoPriorityExpression END -type REQUEST
<!--NeedCopy-->

使用 GUI

  1. 导航到 安全 > SSL 转发代理 > 代理虚拟服务器
  2. 添加代理虚拟服务器或选择虚拟服务器,然后单击“编辑”。
  3. 在“高级设置”中,单击“策略”。
  4. 在“选择策略”中,选择“响应者”。单击继续
  5. 单击 Add Binding(添加绑定)。
  6. 在“策略绑定”中,单击“单击选择”
  7. 单击添加添加新策略。
  8. 指定策略名称,将操作选择为 RESET,然后相应地更新 GUI 的表达式。
  9. 单击创建
  10. 单击 Select(选择)。
  11. 在“策略绑定”下,分配优先级,然后单击“绑定”。
  12. 单击关闭
  13. 单击 Done(完成)。
代理模式