PoC 指南:在 Azure 中使用 Secure Browser 和 Citrix ADC 进行 URL 重定向
概述
下面是使用最新的 Citrix ADC 市场模板设置 ADC、配置 SSL 转发代理和 SSL 拦截的配置步骤。通过 ADC 的 URL 重定向到 Secure Browser 功能,管理员能够定义要自动从本地浏览器重定向到 Secure Browser 的特定 Web 站点类别。Citrix ADC 充当中间代理,在本地浏览与 Internet 之间进行拦截,从而实现 Web 隔离并保护公司网络。此功能可在不影响用户体验的情况下提高安全性。
概念体系结构
Scope(范围)
本概念证明指南描述了以下内容:
- 获取 Secure Browser 试用版帐户
- 在 Azure 中设置 ADC
- 将Citrix ADC 设备设置为代理
- 设置 SSL 拦截
- 设置重写策略和操作
部署步骤
第 1 部分:获取 Secure Browser 试用版帐户
申请 Secure Browser 试用版
导航到您的 Citrix Cloud 帐户并输入用户名和密码
单击“Sign In”(登录)。如果您的帐户管理多个客户,请选择相应的客户
双击Secure Browser 磁贴。
如果您知道您的客户团队是谁,请联系他们以批准试用。如果您不确定您的客户团队是谁,请继续执行下一步。
单击Request a Call(请求通话)
(请求通话)
输入您的详细信息,然后在Comments(评论)部分中指定Secure Browser service trial(Secure Browser 服务试用版)。
单击Submit(提交)。
(申请通话表单)
注意:
Citrix 销售人员将与您联系以授予您访问该服务所需的权限。这不是立即发生的,Citrix 销售代表将与您联系
Secure Browser 试用版获得批准后,请参阅Citrix Doc 的发布 Secure Browser部分以发布 Secure Browser 应用程序。
启用 URL 参数
在 Citrix Cloud 订阅中,双击Secure Browser磁贴
在您发布的浏览器(在本示例中称为“浏览器”)上,单击三个点并选择Policies(策略)
在您发布的浏览器上启用URL Parameters policy(URL 参数策略)
第 2 部分:在 Azure 中设置 ADC
可以在选择的任何云中设置 ADC。在此示例中,Azure 是我们的首选云。
配置 ADC 实例
导航到All Resources(所有资源)并单击+ Add(+ 添加)按钮,搜索“Citrix ADC”
选择Citrix ADC template(Citrix ADC 模板)
根据您的要求选择软件计划(在本示例中为“自带许可证”)
单击Create(创建)
配置 NIC 卡
导航到All Resources(所有资源),然后选择 ADC 实例的 NIC 卡
选择IP Configurations(IP 配置),记下ADC management address(ADC 管理地址)
启用“IP Forwarding Settings”(IP 转发设置),保存更改。
配置虚拟 IP
单击Add(添加),将
virtualip
设置为新配置的名称选择Static(静态)并在管理地址之后添加新 IP 地址
启用“Public address”(公用地址)选项并创建新的公用 IP 地址
保存更改
在客户端上设置 FQDN
导航到为
virtualip
配置创建的公用 IP 地址资源单击Configuration(配置),然后添加 DNS 标签(在本示例中为
urlredirection.eastus.cloudapp.azure.com
)
设置网络连接规则
添加以下网络连接规则
注意:
您可以选择在配置完成后关闭端口 22 和 443,因为只有出于配置目的登录到管理控制台才需要这些端口。
此时Azure 中的 ADC 实例已设置完毕
第 3 部分:将 Citrix ADC 设备设置为代理
将ADC 设置为代理,将流量从客户端浏览器路由到 Internet。
登录到 ADC 管理控制台
在浏览器的搜索栏中输入实例的公用 IP 地址,导航到 Citrix ADC 管理控制台
注意:
请使用您在前面的步骤中配置的计算机的 IP 地址,在本示例中为
https://40.88.150.164/
输入您在前面的步骤中设置的用户名和密码,登录控制台
在初始配置屏幕中,单击Continue(继续)
上载许可证
导航到System(系统)> Licenses(许可证)> Manage Licenses(管理许可证)
上载 ADC 所需的许可证。
注意:
您携带的许可证必须支持“配置基本功能”和“配置高级功能”下的步骤 11 和 13 中突出显示的功能(例如 CNS_V3000_SERVER_PLT_Retail.lic 和 CNS_WEBF_SSERVER_Retail.lic)
上载两个许可证后重新启动服务器。
重新启动后,再次登录到管理层
导航到System(系统)> Settings(设置)> Configure Modes(配置模式)。
只有两个选项必须启用,即Mac based forwarding(基于 Mac 的转发)和Path MTU Discovery(路径 MTU 发现)
导航到System(系统)> Settings(设置)> Configure Basic Features(配置基本功能)
选择:
SSL Offloading
、Load Balancing
、Rewrite
、Authentication, Authorization, and Auditing
、Content Switching
和Integrated Caching
导航到System(系统)> Settings(设置)> Configure Advanced Features(配置高级功能)
选择:
Cache Redirection
、IPv6 Protocol Translation
、AppFlow
、Reputation
、Forward Proxy
、Content Inspection
、Responder
、URL Filtering
和SSL Interception
设置 NTP 服务器
导航到国家结核控制规划服务器系统(系统)>(国家结核控制规划服务器)>添加(添加)。
创建服务器,例如,
pool.ntp.org
出现提示时启用 NTP,并将服务器设置为已启用
“从管理门户保存配置”保存操作
打开到 ADC 管理地址的 SSH 会话,使用您在从 Azure 预配 ADC 时使用的凭据登录
设置 TCP 配置文件和虚拟服务器
从第 2 部分中的步骤中获取
virtualip
并在命令中输入(在本示例中为 10.1.0.5)使用
sslproxy
地址运行以下命令,例如virtualip
:要添加 TCP 配置文件,请执行以下操作:
add ns tcpProfile proxy-tcpprofile01 -dynamicReceiveBuffering ENABLED -KA ENABLED -mptcp ENABLED -mptcpDropDataOnPreEstSF ENABLED -mptcpSessionTimeout 360 -builtin MODIFIABLE
添加虚拟服务器
add cs vserver sslproxy01 PROXY 10.1.0.5 8080 -cltTimeout 360 -tcpProfileName proxy-tcpprofile01 -persistenceType NONE bind cs vserver sslproxy01 -lbvserver azurelbdnsvserver add netProfile proxy-netprofile01 -srcIP 10.1.0.5 -srcippersistency ENABLED -MBF ENABLED -proxyProtocol ENABLED -proxyProtocoltxversion V2 set cs vserver sslproxy01 -netProfile proxy-netprofile01 set ssl vserver sslproxy01 -sslProfile ns_default_ssl_profile_frontend save ns config
要更改Cache settings(缓存设置),请返回浏览器上的管理会话
导航到Optimization(优化)> Integrated Caching(集成缓存)
导航到Settings(设置)> Change cache settings(更改缓存设置)
(更改缓存设置)
将Memory Usage Limit(内存使用限制)设置为
250 MB
,然后单击OK(确定)(内存使用限制)
设置客户端进行 URL 重定向
在客户端上,例如 Firefox
将浏览器代理配置为您在第 2 部分中配置的
virtualip
、公用 IP 或 FQDN: 8080(例如,urlredirection.eastus.cloudapp.azure.com:8080
)(配置浏览器代理)
现在我们已经设置了 ADC,可以使用 ADC 作为代理来测试浏览器中的任何 Web 站点连接。
第 4 部分:设置 SSL 拦截
SSL 拦截使用一种策略来指定要拦截、阻止或允许的流量。Citrix 建议您配置一个通用策略来拦截流量,并配置更具体的策略来绕过某些流量。
参考:
创建 RSA 密钥
导航到Traffic management(流量管理)> SSL > SSL Files(SSL 文件)> Keys(密钥)
选择Create RSA Key(创建 RSA 密钥)
选择密钥文件名和所需的密钥大小
创建密钥后,下载
.key
文件以备将来使用
创建证书签名请求 (CSR)
导航到Traffic management(流量管理)> SSL > SSL Files(SSL 文件)> CSRs(CSR)> Create Certificate Signing Request (CSR)(创建证书签名请求(CSR))。
命名请求文件,例如
semesec_req1.req
单击Key Filename(密钥文件名)> Appliance(设备),密钥文件名是在上一步中创建的密钥文件名,在本示例中为
smesec_key1.key
选择密钥后,继续填写所需的空白:“Common Name”(公用名)、“Organization Name”(组织名称)和“State or Province”(州或省/自治区/直辖市)
单击“Create”(创建)
创建证书
导航到Traffic management(流量管理)> SSL > SSL Files(SSL 文件)> Certificates(证书)> Create Certificate(创建证书)。
为证书命名,然后选择在前面的步骤中创建的证书请求文件 (
.req
) 和密钥文件名 (.key
)单击“Create”(创建)
创建证书后,下载
.cert
文件以备将来使用
创建 SSL 拦截策略
导航到Traffic management(流量管理)> SSL > Policies(策略)
单击“添加”(添加)
为策略命名并选择“INTERCEPT”(拦截)操作
拦截新闻的表达式:
client.ssl.detected_domain.url_categorize(0,0).category.eq("News")
单击“Create”(创建)
要将“Intercept”(绕过)策略绑定到虚拟服务器,请导航到Security(安全性)> SSL Forward Proxy(SSL 转发代理)> Proxy Virtual Servers(代理虚拟服务器)
选择虚拟服务器,在此示例中为
sslproxy01
选择add SSL Policies(添加 SSL 策略),然后单击No SSL Policy Binding(无 SSL 策略绑定)
绑定拦截策略:
创建 SSL 绕过策略
导航到Traffic management(流量管理)> SSL > Policies(策略)
单击“添加”(添加)
为策略命名并选择“NOOP”(空操作)操作 - 没有“BYPASS”(绕过)选项,请参阅下一步
绕过策略的表达式:
CLIENT.SSL.DETECTED_DOMAIN.CONTAINS("cloud")
导航到Security(安全性)> SSL Forward Proxy(SSL 转发代理)> SSL Interception Policies(SSL 拦截策略)
选择策略进行编辑
将操作从“NOOP”(空操作)更改为“BYPASS”(绕过)
单击“OK”(确定)
仔细检查“Action”(操作)现在是否为“BYPASS”(绕过)
返回Traffic management(流量管理)> SSL > Policies(策略)仔细检查更改
要将“Bypass”(绕过)策略绑定到虚拟服务器,请导航到Security(安全性)> SSL Forward Proxy(SSL 转发代理)> Proxy Virtual Servers(代理虚拟服务器)
双击虚拟服务器,在此示例中为
sslproxy01
选择add SSL Policies(添加 SSL 策略),然后单击SSL Policy Binding(SSL 策略绑定)
Bind the bypass policy(绑定绕过策略)> Add(添加)
单击“Bind”(绑定)
注意:
创建此策略的目的是绕过 ADC 拦截流向 Secure Browser
launch.cloud.com
的流量
创建 SSL 配置文件
导航到System(系统)> Profiles(配置文件)> SSL Profile(SSL 配置文件)> Add(添加)
通过为其命名来创建配置文件,在此示例中为
smesec_swg_sslprofile
(SSL 配置文件名称)
选中该复选框以启用 SSL 会话拦截,然后单击“OK”(确定)
单击“OK”(确定)创建 SSL 配置文件
必须安装证书密钥对
确保之前有证书密钥对的
.pfx
格式。有关如何从您之前下载的.cert
和.key
文件生成.pfx
文件的指导,请参阅以下步骤。
准备证书密钥对
将
openssl
安装路径添加到系统环境变量中在 PowerShell 中,运行以下命令:
openssl pkcs12 -export -out smesec_cert1.pfx -inkey smesec.key1.key -in smesec.cert1.cert
将SSL 拦截 CA 证书绑定到 SSL 配置文件
导航到System(系统)> Profiles(配置文件)> SSL Profile(SSL 配置文件)
选择之前创建的配置文件
单击+ Certificate Key(+ 证书密钥)
单击“Install”(安装)
选择之前准备的 .pfx 文件
创建密码(稍后需要)
单击“Install”(安装)
将SSL 配置文件绑定到虚拟服务器
导航到Security(安全性)> SSL Forward Proxy(SSL 转发代理)> Proxy Virtual Servers(代理虚拟服务器)
选择虚拟服务器,在此示例中为
sslproxy01
单击以编辑 SSL 配置文件
选择之前创建的 SSL 配置文件,在本示例中为
smesec_swg_sslprofile
完成
第 5 部分:设置重写策略和操作
重写策略由规则和操作组成。规则确定应用重写的流量,操作确定 Citrix ADC 要执行的操作。重写策略是根据在浏览器中输入的 URL 类别(在本示例中为“新闻”)对 Secure Browser 进行 URL 重定向所必需的。
创建重写策略和操作
导航到AppExpert > Rewrite(重写)> Policy(策略)
单击“添加”(添加)
通过为其命名(在此示例中为 cloud_pol)来创建策略并使用以下表达式:
HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0,0).CATEGORY.EQ("News")
单击“create”(创建)
在 PuTTy 中创建操作
运行以下命令:
add rewrite action cloud_act REPLACE_HTTP_RES q{"HTTP/1.1 302 Found" + "\r\n" + "Location: https://launch.cloud.com/
/ ?url=https://" + HTTP.REQ.HOSTNAME.APPEND(HTTP.REQ.URL.PATH) + "\r\n\r\n\" "} 注意:
在命令中,将
替换为您的 Citrix Cloud 客户帐户名称,将
替换为启用了 URL 参数策略的 Secure Browser 已发布的应用程序名称。指您在第 1 部分中创建的已发布应用程序。
将重写策略绑定到虚拟服务器
返回到 ADC 管理控制台
导航到AppExpert > Rewrite(重写)> Policy(策略)
转到策略 cloud_pol 并将操作更改为 cloud_act(之前创建的操作)
要选择重写策略的类型,请导航到Security(安全性)> SSL Forward Proxy(SSL 转发代理)> Proxy Virtual Servers(代理虚拟服务器)
选择“+ Policies”(+ 策略)。
策略:重写
类型:响应
选择创建的策略,在此示例中为
cloud_pol
优先级:10
绑定
单击“done”(完成)
保存配置
将证书密钥绑定到配置文件
导航到System(系统)> Profiles(配置文件)> SSL Profile(SSL 配置文件)
选择创建的配置文件,例如
smesec_swg_sslprofile
双击+ Certificate Key(+ 证书密钥)
选择证书密钥,例如
smesec_cert_overall
- 单击“Select”(选择)
- 单击“Bind”(绑定)
- 单击“Done”(完成)
- 保存配置
将证书文件导入到浏览器中
将证书上载到 Firefox 中(以我们的“新闻”类别 Web 站点为例)
在您选择的浏览器中转到选项,在本例中为 Firefox
搜索“certs”(证书)> 单击“View Certificates”(查看证书)
在“Certificate Manager”(证书管理器)窗口中,单击“Import…”(导入…)
浏览您的证书并单击“open”(打开),在本示例中为
smesec_cert1.cert
输入您在制作证书时创建的密码
必须正确安装您的证书颁发机构
演示版
本地浏览器中的“新闻”Web 站点会自动重定向到 Secure Browser。请观看下面的演示
总结
在本 PoC 指南中,您学习了如何在 Azure 中设置 Citrix ADC 以及配置“SSL Forward Proxy”(SSL 转发代理)和“SSL Interception”(SSL 拦截)。这种集成允许通过将浏览重定向到 Secure Browser 服务来动态交付资源。因此,在不牺牲用户体验的情况下保护公司网络。